blob: 84ec0fe837bda75776cea7d0ff0c3cf2eb97e069 [file] [log] [blame]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001{
2 "header_types" : [
3 {
4 "name" : "scalars_0",
5 "id" : 0,
6 "fields" : [
Daniele Moro5a2de712019-09-24 14:34:07 -07007 ["tmp_0", 16, false],
8 ["tmp_1", 16, false],
9 ["tmp_2", 4, false],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -070010 ["tmp", 32, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070011 ["tmp_3", 32, false],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -070012 ["bng_ingress_upstream_tmp", 1, false],
13 ["bng_ingress_downstream_tmp", 1, false],
14 ["bng_ingress_upstream_hasReturned", 1, false],
15 ["egress_next_tmp", 1, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070016 ["fabric_metadata_t._ip_eth_type0", 16, false],
17 ["fabric_metadata_t._vlan_id1", 12, false],
18 ["fabric_metadata_t._vlan_pri2", 3, false],
19 ["fabric_metadata_t._vlan_cfi3", 1, false],
20 ["fabric_metadata_t._push_double_vlan4", 1, false],
21 ["fabric_metadata_t._inner_vlan_id5", 12, false],
22 ["fabric_metadata_t._inner_vlan_pri6", 3, false],
23 ["fabric_metadata_t._inner_vlan_cfi7", 1, false],
24 ["fabric_metadata_t._mpls_label8", 20, false],
25 ["fabric_metadata_t._mpls_ttl9", 8, false],
26 ["fabric_metadata_t._skip_forwarding10", 1, false],
27 ["fabric_metadata_t._skip_next11", 1, false],
28 ["fabric_metadata_t._fwd_type12", 3, false],
29 ["fabric_metadata_t._next_id13", 32, false],
30 ["fabric_metadata_t._is_multicast14", 1, false],
31 ["fabric_metadata_t._is_controller_packet_out15", 1, false],
32 ["fabric_metadata_t._ip_proto16", 8, false],
33 ["fabric_metadata_t._l4_sport17", 16, false],
34 ["fabric_metadata_t._l4_dport18", 16, false],
35 ["fabric_metadata_t._bng_type19", 2, false],
36 ["fabric_metadata_t._bng_line_id20", 32, false],
37 ["fabric_metadata_t._bng_pppoe_session_id21", 16, false],
38 ["fabric_metadata_t._bng_ds_meter_result22", 32, false],
Daniele Morob3d199b2019-11-01 14:01:46 -070039 ["fabric_metadata_t._bng_s_tag23", 12, false],
40 ["fabric_metadata_t._bng_c_tag24", 12, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070041 ["_padding_0", 2, false]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -070042 ]
43 },
44 {
45 "name" : "standard_metadata",
46 "id" : 1,
47 "fields" : [
48 ["ingress_port", 9, false],
49 ["egress_spec", 9, false],
50 ["egress_port", 9, false],
51 ["clone_spec", 32, false],
52 ["instance_type", 32, false],
53 ["drop", 1, false],
54 ["recirculate_port", 16, false],
55 ["packet_length", 32, false],
56 ["enq_timestamp", 32, false],
57 ["enq_qdepth", 19, false],
58 ["deq_timedelta", 32, false],
59 ["deq_qdepth", 19, false],
60 ["ingress_global_timestamp", 48, false],
61 ["egress_global_timestamp", 48, false],
62 ["lf_field_list", 32, false],
63 ["mcast_grp", 16, false],
64 ["resubmit_flag", 32, false],
65 ["egress_rid", 16, false],
66 ["recirculate_flag", 32, false],
67 ["checksum_error", 1, false],
68 ["parser_error", 32, false],
69 ["priority", 3, false],
70 ["_padding", 2, false]
71 ]
72 },
73 {
74 "name" : "ethernet_t",
75 "id" : 2,
76 "fields" : [
77 ["dst_addr", 48, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070078 ["src_addr", 48, false]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -070079 ]
80 },
81 {
82 "name" : "vlan_tag_t",
83 "id" : 3,
84 "fields" : [
Daniele Moro5a2de712019-09-24 14:34:07 -070085 ["eth_type", 16, false],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -070086 ["pri", 3, false],
87 ["cfi", 1, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070088 ["vlan_id", 12, false]
89 ]
90 },
91 {
92 "name" : "eth_type_t",
93 "id" : 4,
94 "fields" : [
95 ["value", 16, false]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -070096 ]
97 },
98 {
99 "name" : "pppoe_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700100 "id" : 5,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700101 "fields" : [
102 ["version", 4, false],
103 ["type_id", 4, false],
104 ["code", 8, false],
105 ["session_id", 16, false],
106 ["length", 16, false],
107 ["protocol", 16, false]
108 ]
109 },
110 {
111 "name" : "mpls_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700112 "id" : 6,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700113 "fields" : [
114 ["label", 20, false],
115 ["tc", 3, false],
116 ["bos", 1, false],
117 ["ttl", 8, false]
118 ]
119 },
120 {
121 "name" : "ipv4_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700122 "id" : 7,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700123 "fields" : [
124 ["version", 4, false],
125 ["ihl", 4, false],
126 ["dscp", 6, false],
127 ["ecn", 2, false],
128 ["total_len", 16, false],
129 ["identification", 16, false],
130 ["flags", 3, false],
131 ["frag_offset", 13, false],
132 ["ttl", 8, false],
133 ["protocol", 8, false],
134 ["hdr_checksum", 16, false],
135 ["src_addr", 32, false],
136 ["dst_addr", 32, false]
137 ]
138 },
139 {
140 "name" : "tcp_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700141 "id" : 8,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700142 "fields" : [
143 ["sport", 16, false],
144 ["dport", 16, false],
145 ["seq_no", 32, false],
146 ["ack_no", 32, false],
147 ["data_offset", 4, false],
148 ["res", 3, false],
149 ["ecn", 3, false],
150 ["ctrl", 6, false],
151 ["window", 16, false],
152 ["checksum", 16, false],
153 ["urgent_ptr", 16, false]
154 ]
155 },
156 {
157 "name" : "udp_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700158 "id" : 9,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700159 "fields" : [
160 ["sport", 16, false],
161 ["dport", 16, false],
162 ["len", 16, false],
163 ["checksum", 16, false]
164 ]
165 },
166 {
167 "name" : "icmp_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700168 "id" : 10,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700169 "fields" : [
170 ["icmp_type", 8, false],
171 ["icmp_code", 8, false],
172 ["checksum", 16, false],
173 ["identifier", 16, false],
174 ["sequence_number", 16, false],
175 ["timestamp", 64, false]
176 ]
177 },
178 {
179 "name" : "packet_out_header_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700180 "id" : 11,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700181 "fields" : [
182 ["egress_port", 9, false],
183 ["_pad", 7, false]
184 ]
185 },
186 {
187 "name" : "packet_in_header_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700188 "id" : 12,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700189 "fields" : [
190 ["ingress_port", 9, false],
191 ["_pad", 7, false]
192 ]
193 }
194 ],
195 "headers" : [
196 {
197 "name" : "scalars",
198 "id" : 0,
199 "header_type" : "scalars_0",
200 "metadata" : true,
201 "pi_omit" : true
202 },
203 {
204 "name" : "standard_metadata",
205 "id" : 1,
206 "header_type" : "standard_metadata",
207 "metadata" : true,
208 "pi_omit" : true
209 },
210 {
211 "name" : "ethernet",
212 "id" : 2,
213 "header_type" : "ethernet_t",
214 "metadata" : false,
215 "pi_omit" : true
216 },
217 {
218 "name" : "vlan_tag",
219 "id" : 3,
220 "header_type" : "vlan_tag_t",
221 "metadata" : false,
222 "pi_omit" : true
223 },
224 {
225 "name" : "inner_vlan_tag",
226 "id" : 4,
227 "header_type" : "vlan_tag_t",
228 "metadata" : false,
229 "pi_omit" : true
230 },
231 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700232 "name" : "eth_type",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700233 "id" : 5,
Daniele Moro5a2de712019-09-24 14:34:07 -0700234 "header_type" : "eth_type_t",
235 "metadata" : false,
236 "pi_omit" : true
237 },
238 {
239 "name" : "pppoe",
240 "id" : 6,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700241 "header_type" : "pppoe_t",
242 "metadata" : false,
243 "pi_omit" : true
244 },
245 {
246 "name" : "mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -0700247 "id" : 7,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700248 "header_type" : "mpls_t",
249 "metadata" : false,
250 "pi_omit" : true
251 },
252 {
253 "name" : "ipv4",
Daniele Moro5a2de712019-09-24 14:34:07 -0700254 "id" : 8,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700255 "header_type" : "ipv4_t",
256 "metadata" : false,
257 "pi_omit" : true
258 },
259 {
260 "name" : "tcp",
Daniele Moro5a2de712019-09-24 14:34:07 -0700261 "id" : 9,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700262 "header_type" : "tcp_t",
263 "metadata" : false,
264 "pi_omit" : true
265 },
266 {
267 "name" : "udp",
Daniele Moro5a2de712019-09-24 14:34:07 -0700268 "id" : 10,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700269 "header_type" : "udp_t",
270 "metadata" : false,
271 "pi_omit" : true
272 },
273 {
274 "name" : "icmp",
Daniele Moro5a2de712019-09-24 14:34:07 -0700275 "id" : 11,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700276 "header_type" : "icmp_t",
277 "metadata" : false,
278 "pi_omit" : true
279 },
280 {
281 "name" : "packet_out",
Daniele Moro5a2de712019-09-24 14:34:07 -0700282 "id" : 12,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700283 "header_type" : "packet_out_header_t",
284 "metadata" : false,
285 "pi_omit" : true
286 },
287 {
288 "name" : "packet_in",
Daniele Moro5a2de712019-09-24 14:34:07 -0700289 "id" : 13,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700290 "header_type" : "packet_in_header_t",
291 "metadata" : false,
292 "pi_omit" : true
293 }
294 ],
295 "header_stacks" : [],
296 "header_union_types" : [],
297 "header_unions" : [],
298 "header_union_stacks" : [],
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700299 "field_lists" : [
300 {
301 "id" : 1,
302 "name" : "fl",
303 "source_info" : {
Carmelo Cascone7d54994b2019-06-25 18:20:02 -0700304 "filename" : "include/control/acl.p4",
305 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700306 "column" : 40,
Carmelo Cascone7d54994b2019-06-25 18:20:02 -0700307 "source_fragment" : "{standard_metadata.ingress_port}"
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700308 },
309 "elements" : [
310 {
311 "type" : "field",
312 "value" : ["standard_metadata", "ingress_port"]
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700313 }
314 ]
315 }
316 ],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700317 "errors" : [
318 ["NoError", 1],
319 ["PacketTooShort", 2],
320 ["NoMatch", 3],
321 ["StackOutOfBounds", 4],
322 ["HeaderTooShort", 5],
323 ["ParserTimeout", 6],
324 ["ParserInvalidArgument", 7]
325 ],
326 "enums" : [],
327 "parsers" : [
328 {
329 "name" : "parser",
330 "id" : 0,
331 "init_state" : "start",
332 "parse_states" : [
333 {
334 "name" : "start",
335 "id" : 0,
336 "parser_ops" : [],
337 "transitions" : [
338 {
339 "type" : "hexstr",
340 "value" : "0x00ff",
341 "mask" : null,
342 "next_state" : "parse_packet_out"
343 },
344 {
345 "value" : "default",
346 "mask" : null,
347 "next_state" : "parse_ethernet"
348 }
349 ],
350 "transition_key" : [
351 {
352 "type" : "field",
353 "value" : ["standard_metadata", "ingress_port"]
354 }
355 ]
356 },
357 {
358 "name" : "parse_packet_out",
359 "id" : 1,
360 "parser_ops" : [
361 {
362 "parameters" : [
363 {
364 "type" : "regular",
365 "value" : "packet_out"
366 }
367 ],
368 "op" : "extract"
369 }
370 ],
371 "transitions" : [
372 {
373 "value" : "default",
374 "mask" : null,
375 "next_state" : "parse_ethernet"
376 }
377 ],
378 "transition_key" : []
379 },
380 {
381 "name" : "parse_ethernet",
382 "id" : 2,
383 "parser_ops" : [
384 {
385 "parameters" : [
386 {
387 "type" : "regular",
388 "value" : "ethernet"
389 }
390 ],
391 "op" : "extract"
392 },
393 {
394 "parameters" : [
395 {
396 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700397 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700398 },
399 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700400 "type" : "hexstr",
401 "value" : "0x0ffe"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700402 }
403 ],
404 "op" : "set"
405 },
406 {
407 "parameters" : [
408 {
409 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700410 "value" : ["scalars", "tmp_0"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700411 },
412 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700413 "type" : "lookahead",
414 "value" : [0, 16]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700415 }
416 ],
417 "op" : "set"
418 }
419 ],
420 "transitions" : [
421 {
422 "type" : "hexstr",
Daniele Moro77654f92019-07-30 10:29:54 -0700423 "value" : "0x88a8",
424 "mask" : null,
425 "next_state" : "parse_vlan_tag"
426 },
427 {
428 "type" : "hexstr",
429 "value" : "0x9100",
430 "mask" : null,
431 "next_state" : "parse_vlan_tag"
432 },
433 {
434 "type" : "hexstr",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700435 "value" : "0x8100",
436 "mask" : null,
437 "next_state" : "parse_vlan_tag"
438 },
439 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700440 "value" : "default",
441 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700442 "next_state" : "parse_eth_type"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700443 }
444 ],
445 "transition_key" : [
446 {
447 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700448 "value" : ["scalars", "tmp_0"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700449 }
450 ]
451 },
452 {
453 "name" : "parse_vlan_tag",
454 "id" : 3,
455 "parser_ops" : [
456 {
457 "parameters" : [
458 {
459 "type" : "regular",
460 "value" : "vlan_tag"
461 }
462 ],
463 "op" : "extract"
Daniele Moro5a2de712019-09-24 14:34:07 -0700464 },
465 {
466 "parameters" : [
467 {
468 "type" : "field",
Daniele Morob3d199b2019-11-01 14:01:46 -0700469 "value" : ["scalars", "fabric_metadata_t._bng_s_tag23"]
470 },
471 {
472 "type" : "field",
473 "value" : ["vlan_tag", "vlan_id"]
474 }
475 ],
476 "op" : "set"
477 },
478 {
479 "parameters" : [
480 {
481 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700482 "value" : ["scalars", "tmp_1"]
483 },
484 {
485 "type" : "lookahead",
486 "value" : [0, 16]
487 }
488 ],
489 "op" : "set"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700490 }
491 ],
492 "transitions" : [
493 {
494 "type" : "hexstr",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700495 "value" : "0x8100",
496 "mask" : null,
497 "next_state" : "parse_inner_vlan_tag"
498 },
499 {
500 "value" : "default",
501 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700502 "next_state" : "parse_eth_type"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700503 }
504 ],
505 "transition_key" : [
506 {
507 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700508 "value" : ["scalars", "tmp_1"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700509 }
510 ]
511 },
512 {
513 "name" : "parse_inner_vlan_tag",
514 "id" : 4,
515 "parser_ops" : [
516 {
517 "parameters" : [
518 {
519 "type" : "regular",
520 "value" : "inner_vlan_tag"
521 }
522 ],
523 "op" : "extract"
Daniele Morob3d199b2019-11-01 14:01:46 -0700524 },
525 {
526 "parameters" : [
527 {
528 "type" : "field",
529 "value" : ["scalars", "fabric_metadata_t._bng_c_tag24"]
530 },
531 {
532 "type" : "field",
533 "value" : ["inner_vlan_tag", "vlan_id"]
534 }
535 ],
536 "op" : "set"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700537 }
538 ],
539 "transitions" : [
540 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700541 "value" : "default",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700542 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700543 "next_state" : "parse_eth_type"
544 }
545 ],
546 "transition_key" : []
547 },
548 {
549 "name" : "parse_eth_type",
550 "id" : 5,
551 "parser_ops" : [
552 {
553 "parameters" : [
554 {
555 "type" : "regular",
556 "value" : "eth_type"
557 }
558 ],
559 "op" : "extract"
560 }
561 ],
562 "transitions" : [
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700563 {
564 "type" : "hexstr",
565 "value" : "0x8847",
566 "mask" : null,
567 "next_state" : "parse_mpls"
568 },
569 {
570 "type" : "hexstr",
Daniele Moro5a2de712019-09-24 14:34:07 -0700571 "value" : "0x0800",
572 "mask" : null,
573 "next_state" : "parse_ipv4"
574 },
575 {
576 "type" : "hexstr",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700577 "value" : "0x8863",
578 "mask" : null,
579 "next_state" : "parse_pppoe"
580 },
581 {
582 "type" : "hexstr",
583 "value" : "0x8864",
584 "mask" : null,
585 "next_state" : "parse_pppoe"
586 },
587 {
588 "value" : "default",
589 "mask" : null,
590 "next_state" : null
591 }
592 ],
593 "transition_key" : [
594 {
595 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700596 "value" : ["eth_type", "value"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700597 }
598 ]
599 },
600 {
601 "name" : "parse_pppoe",
Daniele Moro5a2de712019-09-24 14:34:07 -0700602 "id" : 6,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700603 "parser_ops" : [
604 {
605 "parameters" : [
606 {
607 "type" : "regular",
608 "value" : "pppoe"
609 }
610 ],
611 "op" : "extract"
612 }
613 ],
614 "transitions" : [
615 {
616 "type" : "hexstr",
Daniele Moroe22b5742019-06-28 15:32:37 -0700617 "value" : "0x0281",
618 "mask" : null,
619 "next_state" : "parse_mpls"
620 },
621 {
622 "type" : "hexstr",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700623 "value" : "0x0021",
624 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700625 "next_state" : "parse_ipv4"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700626 },
627 {
628 "value" : "default",
629 "mask" : null,
630 "next_state" : null
631 }
632 ],
633 "transition_key" : [
634 {
635 "type" : "field",
636 "value" : ["pppoe", "protocol"]
637 }
638 ]
639 },
640 {
641 "name" : "parse_mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -0700642 "id" : 7,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700643 "parser_ops" : [
644 {
645 "parameters" : [
646 {
647 "type" : "regular",
648 "value" : "mpls"
649 }
650 ],
651 "op" : "extract"
652 },
653 {
654 "parameters" : [
655 {
656 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700657 "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700658 },
659 {
660 "type" : "field",
661 "value" : ["mpls", "label"]
662 }
663 ],
664 "op" : "set"
665 },
666 {
667 "parameters" : [
668 {
669 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700670 "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700671 },
672 {
673 "type" : "field",
674 "value" : ["mpls", "ttl"]
675 }
676 ],
677 "op" : "set"
678 },
679 {
680 "parameters" : [
681 {
682 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700683 "value" : ["scalars", "tmp_2"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700684 },
685 {
686 "type" : "lookahead",
687 "value" : [0, 4]
688 }
689 ],
690 "op" : "set"
691 }
692 ],
693 "transitions" : [
694 {
695 "type" : "hexstr",
696 "value" : "0x04",
697 "mask" : null,
698 "next_state" : "parse_ipv4"
699 },
700 {
701 "value" : "default",
702 "mask" : null,
703 "next_state" : "parse_ethernet"
704 }
705 ],
706 "transition_key" : [
707 {
708 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700709 "value" : ["scalars", "tmp_2"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700710 }
711 ]
712 },
713 {
Daniele Moro7c3a0022019-07-12 13:38:34 -0700714 "name" : "parse_ipv4",
715 "id" : 8,
716 "parser_ops" : [
717 {
718 "parameters" : [
719 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700720 "type" : "regular",
721 "value" : "ipv4"
722 }
723 ],
724 "op" : "extract"
725 },
726 {
727 "parameters" : [
728 {
729 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700730 "value" : ["scalars", "fabric_metadata_t._ip_proto16"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700731 },
732 {
733 "type" : "field",
734 "value" : ["ipv4", "protocol"]
735 }
736 ],
737 "op" : "set"
738 },
739 {
740 "parameters" : [
741 {
742 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700743 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700744 },
745 {
746 "type" : "hexstr",
747 "value" : "0x0800"
748 }
749 ],
750 "op" : "set"
751 }
752 ],
753 "transitions" : [
754 {
755 "type" : "hexstr",
756 "value" : "0x06",
757 "mask" : null,
758 "next_state" : "parse_tcp"
759 },
760 {
761 "type" : "hexstr",
762 "value" : "0x11",
763 "mask" : null,
764 "next_state" : "parse_udp"
765 },
766 {
767 "type" : "hexstr",
768 "value" : "0x01",
769 "mask" : null,
770 "next_state" : "parse_icmp"
771 },
772 {
773 "value" : "default",
774 "mask" : null,
775 "next_state" : null
776 }
777 ],
778 "transition_key" : [
779 {
780 "type" : "field",
781 "value" : ["ipv4", "protocol"]
782 }
783 ]
784 },
785 {
786 "name" : "parse_tcp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700787 "id" : 9,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700788 "parser_ops" : [
789 {
790 "parameters" : [
791 {
792 "type" : "regular",
793 "value" : "tcp"
794 }
795 ],
796 "op" : "extract"
797 },
798 {
799 "parameters" : [
800 {
801 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700802 "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700803 },
804 {
805 "type" : "field",
806 "value" : ["tcp", "sport"]
807 }
808 ],
809 "op" : "set"
810 },
811 {
812 "parameters" : [
813 {
814 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700815 "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700816 },
817 {
818 "type" : "field",
819 "value" : ["tcp", "dport"]
820 }
821 ],
822 "op" : "set"
823 }
824 ],
825 "transitions" : [
826 {
827 "value" : "default",
828 "mask" : null,
829 "next_state" : null
830 }
831 ],
832 "transition_key" : []
833 },
834 {
835 "name" : "parse_udp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700836 "id" : 10,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700837 "parser_ops" : [
838 {
839 "parameters" : [
840 {
841 "type" : "regular",
842 "value" : "udp"
843 }
844 ],
845 "op" : "extract"
846 },
847 {
848 "parameters" : [
849 {
850 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700851 "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700852 },
853 {
854 "type" : "field",
855 "value" : ["udp", "sport"]
856 }
857 ],
858 "op" : "set"
859 },
860 {
861 "parameters" : [
862 {
863 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700864 "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700865 },
866 {
867 "type" : "field",
868 "value" : ["udp", "dport"]
869 }
870 ],
871 "op" : "set"
872 }
873 ],
874 "transitions" : [
875 {
876 "value" : "default",
877 "mask" : null,
878 "next_state" : null
879 }
880 ],
881 "transition_key" : [
882 {
883 "type" : "field",
884 "value" : ["udp", "dport"]
885 }
886 ]
887 },
888 {
889 "name" : "parse_icmp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700890 "id" : 11,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700891 "parser_ops" : [
892 {
893 "parameters" : [
894 {
895 "type" : "regular",
896 "value" : "icmp"
897 }
898 ],
899 "op" : "extract"
900 }
901 ],
902 "transitions" : [
903 {
904 "value" : "default",
905 "mask" : null,
906 "next_state" : null
907 }
908 ],
909 "transition_key" : []
910 }
911 ]
912 }
913 ],
914 "parse_vsets" : [],
915 "deparsers" : [
916 {
917 "name" : "deparser",
918 "id" : 0,
919 "source_info" : {
920 "filename" : "include/parser.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -0700921 "line" : 265,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700922 "column" : 8,
923 "source_fragment" : "FabricDeparser"
924 },
Daniele Moro5a2de712019-09-24 14:34:07 -0700925 "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "pppoe", "mpls", "ipv4", "tcp", "udp", "icmp"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700926 }
927 ],
928 "meter_arrays" : [
929 {
930 "name" : "FabricIngress.bng_ingress.downstream.m_besteff",
931 "id" : 0,
932 "source_info" : {
933 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -0700934 "line" : 151,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700935 "column" : 33,
936 "source_fragment" : "m_besteff"
937 },
938 "is_direct" : false,
939 "size" : 8192,
940 "rate_count" : 2,
941 "type" : "bytes"
942 },
943 {
944 "name" : "FabricIngress.bng_ingress.downstream.m_prio",
945 "id" : 1,
946 "source_info" : {
947 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -0700948 "line" : 152,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700949 "column" : 33,
950 "source_fragment" : "m_prio"
951 },
952 "is_direct" : false,
953 "size" : 8192,
954 "rate_count" : 2,
955 "type" : "bytes"
956 }
957 ],
958 "counter_arrays" : [
959 {
960 "name" : "FabricIngress.bng_ingress.upstream.c_terminated",
961 "id" : 0,
962 "source_info" : {
963 "filename" : "include/bng.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700964 "line" : 36,
Daniele Moroce424ca2019-10-03 16:44:33 -0700965 "column" : 37,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700966 "source_fragment" : "c_terminated"
967 },
968 "size" : 8192,
969 "is_direct" : false
970 },
971 {
972 "name" : "FabricIngress.bng_ingress.upstream.c_dropped",
973 "id" : 1,
974 "source_info" : {
975 "filename" : "include/bng.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700976 "line" : 37,
Daniele Moroce424ca2019-10-03 16:44:33 -0700977 "column" : 37,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700978 "source_fragment" : "c_dropped"
979 },
980 "size" : 8192,
981 "is_direct" : false
982 },
983 {
984 "name" : "FabricIngress.bng_ingress.upstream.c_control",
985 "id" : 2,
986 "source_info" : {
987 "filename" : "include/bng.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700988 "line" : 38,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700989 "column" : 39,
990 "source_fragment" : "c_control"
991 },
992 "size" : 8192,
993 "is_direct" : false
994 },
995 {
996 "name" : "FabricIngress.bng_ingress.downstream.c_line_rx",
997 "id" : 3,
998 "source_info" : {
999 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07001000 "line" : 149,
Daniele Moroce424ca2019-10-03 16:44:33 -07001001 "column" : 37,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001002 "source_fragment" : "c_line_rx"
1003 },
1004 "size" : 8192,
1005 "is_direct" : false
1006 },
1007 {
1008 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
1009 "id" : 4,
1010 "is_direct" : true,
1011 "binding" : "FabricIngress.filtering.ingress_port_vlan",
1012 "source_info" : {
1013 "filename" : "include/control/filtering.p4",
1014 "line" : 31,
1015 "column" : 50,
1016 "source_fragment" : "ingress_port_vlan_counter"
1017 }
1018 },
1019 {
1020 "name" : "FabricIngress.filtering.fwd_classifier_counter",
1021 "id" : 5,
1022 "is_direct" : true,
1023 "binding" : "FabricIngress.filtering.fwd_classifier",
1024 "source_info" : {
1025 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001026 "line" : 85,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001027 "column" : 50,
1028 "source_fragment" : "fwd_classifier_counter"
1029 }
1030 },
1031 {
1032 "name" : "FabricIngress.forwarding.bridging_counter",
1033 "id" : 6,
1034 "is_direct" : true,
1035 "binding" : "FabricIngress.forwarding.bridging",
1036 "source_info" : {
1037 "filename" : "include/control/forwarding.p4",
1038 "line" : 36,
1039 "column" : 50,
1040 "source_fragment" : "bridging_counter"
1041 }
1042 },
1043 {
1044 "name" : "FabricIngress.forwarding.mpls_counter",
1045 "id" : 7,
1046 "is_direct" : true,
1047 "binding" : "FabricIngress.forwarding.mpls",
1048 "source_info" : {
1049 "filename" : "include/control/forwarding.p4",
1050 "line" : 63,
1051 "column" : 50,
1052 "source_fragment" : "mpls_counter"
1053 }
1054 },
1055 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001056 "name" : "FabricIngress.acl.acl_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001057 "id" : 8,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001058 "is_direct" : true,
1059 "binding" : "FabricIngress.acl.acl",
1060 "source_info" : {
1061 "filename" : "include/control/acl.p4",
1062 "line" : 30,
1063 "column" : 50,
1064 "source_fragment" : "acl_counter"
1065 }
1066 },
1067 {
1068 "name" : "FabricIngress.next.next_vlan_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001069 "id" : 9,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001070 "is_direct" : true,
1071 "binding" : "FabricIngress.next.next_vlan",
1072 "source_info" : {
1073 "filename" : "include/control/next.p4",
1074 "line" : 67,
1075 "column" : 50,
1076 "source_fragment" : "next_vlan_counter"
1077 }
1078 },
1079 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001080 "name" : "FabricIngress.next.hashed_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001081 "id" : 10,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001082 "is_direct" : true,
1083 "binding" : "FabricIngress.next.hashed",
1084 "source_info" : {
1085 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001086 "line" : 184,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001087 "column" : 50,
1088 "source_fragment" : "hashed_counter"
1089 }
1090 },
1091 {
1092 "name" : "FabricIngress.next.multicast_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001093 "id" : 11,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001094 "is_direct" : true,
1095 "binding" : "FabricIngress.next.multicast",
1096 "source_info" : {
1097 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001098 "line" : 228,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001099 "column" : 50,
1100 "source_fragment" : "multicast_counter"
1101 }
1102 },
1103 {
1104 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001105 "id" : 12,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001106 "source_info" : {
1107 "filename" : "include/control/port_counter.p4",
1108 "line" : 26,
1109 "column" : 48,
1110 "source_fragment" : "egress_port_counter"
1111 },
1112 "size" : 511,
1113 "is_direct" : false
1114 },
1115 {
1116 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001117 "id" : 13,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001118 "source_info" : {
1119 "filename" : "include/control/port_counter.p4",
1120 "line" : 27,
1121 "column" : 48,
1122 "source_fragment" : "ingress_port_counter"
1123 },
1124 "size" : 511,
1125 "is_direct" : false
1126 },
1127 {
1128 "name" : "FabricEgress.bng_egress.downstream.c_line_tx",
Daniele Moro5a2de712019-09-24 14:34:07 -07001129 "id" : 14,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001130 "source_info" : {
1131 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07001132 "line" : 264,
Daniele Moroce424ca2019-10-03 16:44:33 -07001133 "column" : 37,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001134 "source_fragment" : "c_line_tx"
1135 },
1136 "size" : 8192,
1137 "is_direct" : false
1138 },
1139 {
1140 "name" : "FabricEgress.egress_next.egress_vlan_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001141 "id" : 15,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001142 "is_direct" : true,
1143 "binding" : "FabricEgress.egress_next.egress_vlan",
1144 "source_info" : {
1145 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001146 "line" : 313,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001147 "column" : 50,
1148 "source_fragment" : "egress_vlan_counter"
1149 }
1150 }
1151 ],
1152 "register_arrays" : [],
1153 "calculations" : [
1154 {
1155 "name" : "calc",
1156 "id" : 0,
1157 "source_info" : {
1158 "filename" : "include/checksum.p4",
1159 "line" : 28,
1160 "column" : 8,
1161 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1162 },
1163 "algo" : "csum16",
1164 "input" : [
1165 {
1166 "type" : "field",
1167 "value" : ["ipv4", "version"]
1168 },
1169 {
1170 "type" : "field",
1171 "value" : ["ipv4", "ihl"]
1172 },
1173 {
1174 "type" : "field",
1175 "value" : ["ipv4", "dscp"]
1176 },
1177 {
1178 "type" : "field",
1179 "value" : ["ipv4", "ecn"]
1180 },
1181 {
1182 "type" : "field",
1183 "value" : ["ipv4", "total_len"]
1184 },
1185 {
1186 "type" : "field",
1187 "value" : ["ipv4", "identification"]
1188 },
1189 {
1190 "type" : "field",
1191 "value" : ["ipv4", "flags"]
1192 },
1193 {
1194 "type" : "field",
1195 "value" : ["ipv4", "frag_offset"]
1196 },
1197 {
1198 "type" : "field",
1199 "value" : ["ipv4", "ttl"]
1200 },
1201 {
1202 "type" : "field",
1203 "value" : ["ipv4", "protocol"]
1204 },
1205 {
1206 "type" : "field",
1207 "value" : ["ipv4", "src_addr"]
1208 },
1209 {
1210 "type" : "field",
1211 "value" : ["ipv4", "dst_addr"]
1212 }
1213 ]
1214 },
1215 {
1216 "name" : "calc_0",
1217 "id" : 1,
1218 "source_info" : {
1219 "filename" : "include/checksum.p4",
1220 "line" : 57,
1221 "column" : 8,
1222 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1223 },
1224 "algo" : "csum16",
1225 "input" : [
1226 {
1227 "type" : "field",
1228 "value" : ["ipv4", "version"]
1229 },
1230 {
1231 "type" : "field",
1232 "value" : ["ipv4", "ihl"]
1233 },
1234 {
1235 "type" : "field",
1236 "value" : ["ipv4", "dscp"]
1237 },
1238 {
1239 "type" : "field",
1240 "value" : ["ipv4", "ecn"]
1241 },
1242 {
1243 "type" : "field",
1244 "value" : ["ipv4", "total_len"]
1245 },
1246 {
1247 "type" : "field",
1248 "value" : ["ipv4", "identification"]
1249 },
1250 {
1251 "type" : "field",
1252 "value" : ["ipv4", "flags"]
1253 },
1254 {
1255 "type" : "field",
1256 "value" : ["ipv4", "frag_offset"]
1257 },
1258 {
1259 "type" : "field",
1260 "value" : ["ipv4", "ttl"]
1261 },
1262 {
1263 "type" : "field",
1264 "value" : ["ipv4", "protocol"]
1265 },
1266 {
1267 "type" : "field",
1268 "value" : ["ipv4", "src_addr"]
1269 },
1270 {
1271 "type" : "field",
1272 "value" : ["ipv4", "dst_addr"]
1273 }
1274 ]
1275 }
1276 ],
1277 "learn_lists" : [],
1278 "actions" : [
1279 {
1280 "name" : "nop",
1281 "id" : 0,
1282 "runtime_data" : [],
1283 "primitives" : []
1284 },
1285 {
1286 "name" : "nop",
1287 "id" : 1,
1288 "runtime_data" : [],
1289 "primitives" : []
1290 },
1291 {
1292 "name" : "nop",
1293 "id" : 2,
1294 "runtime_data" : [],
1295 "primitives" : []
1296 },
1297 {
1298 "name" : "nop",
1299 "id" : 3,
1300 "runtime_data" : [],
1301 "primitives" : []
1302 },
1303 {
1304 "name" : "nop",
1305 "id" : 4,
1306 "runtime_data" : [],
1307 "primitives" : []
1308 },
1309 {
1310 "name" : "nop",
1311 "id" : 5,
1312 "runtime_data" : [],
1313 "primitives" : []
1314 },
1315 {
1316 "name" : "nop",
1317 "id" : 6,
1318 "runtime_data" : [],
1319 "primitives" : []
1320 },
1321 {
1322 "name" : "nop",
1323 "id" : 7,
1324 "runtime_data" : [],
1325 "primitives" : []
1326 },
1327 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001328 "name" : "FabricIngress.bng_ingress.upstream.punt_to_cpu",
Daniele Moro5a2de712019-09-24 14:34:07 -07001329 "id" : 8,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001330 "runtime_data" : [],
1331 "primitives" : [
1332 {
1333 "op" : "assign",
1334 "parameters" : [
1335 {
1336 "type" : "field",
1337 "value" : ["standard_metadata", "egress_spec"]
1338 },
1339 {
1340 "type" : "hexstr",
1341 "value" : "0x00ff"
1342 }
1343 ],
1344 "source_info" : {
1345 "filename" : "include/bng.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001346 "line" : 44,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001347 "column" : 8,
1348 "source_fragment" : "smeta.egress_spec = 255"
1349 }
1350 },
1351 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001352 "op" : "count",
1353 "parameters" : [
1354 {
1355 "type" : "counter_array",
1356 "value" : "FabricIngress.bng_ingress.upstream.c_control"
1357 },
1358 {
1359 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001360 "value" : ["scalars", "fabric_metadata_t._bng_line_id20"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001361 }
1362 ],
1363 "source_info" : {
1364 "filename" : "include/bng.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001365 "line" : 45,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001366 "column" : 8,
1367 "source_fragment" : "c_control.count(fmeta.bng.line_id)"
1368 }
1369 }
1370 ]
1371 },
1372 {
1373 "name" : "FabricIngress.bng_ingress.upstream.term_disabled",
Daniele Moro5a2de712019-09-24 14:34:07 -07001374 "id" : 9,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001375 "runtime_data" : [],
1376 "primitives" : [
1377 {
1378 "op" : "assign",
1379 "parameters" : [
1380 {
1381 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001382 "value" : ["scalars", "fabric_metadata_t._bng_type19"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001383 },
1384 {
1385 "type" : "hexstr",
1386 "value" : "0x00"
1387 }
1388 ],
1389 "source_info" : {
1390 "filename" : "include/control/../header.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07001391 "line" : 160,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001392 "column" : 36,
1393 "source_fragment" : "2w0x0; ..."
1394 }
1395 },
1396 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001397 "op" : "mark_to_drop",
1398 "parameters" : [
1399 {
1400 "type" : "header",
1401 "value" : "standard_metadata"
1402 }
1403 ],
1404 "source_info" : {
1405 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07001406 "line" : 74,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001407 "column" : 8,
1408 "source_fragment" : "mark_to_drop(smeta)"
1409 }
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001410 }
1411 ]
1412 },
1413 {
1414 "name" : "FabricIngress.bng_ingress.upstream.term_enabled_v4",
Daniele Moro5a2de712019-09-24 14:34:07 -07001415 "id" : 10,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001416 "runtime_data" : [],
1417 "primitives" : [
1418 {
1419 "op" : "assign",
1420 "parameters" : [
1421 {
1422 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001423 "value" : ["eth_type", "value"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001424 },
1425 {
1426 "type" : "hexstr",
1427 "value" : "0x0800"
1428 }
1429 ],
1430 "source_info" : {
1431 "filename" : "include/control/../define.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07001432 "line" : 114,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001433 "column" : 31,
1434 "source_fragment" : "0x0800; ..."
1435 }
1436 },
1437 {
1438 "op" : "remove_header",
1439 "parameters" : [
1440 {
1441 "type" : "header",
1442 "value" : "pppoe"
1443 }
1444 ],
1445 "source_info" : {
1446 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07001447 "line" : 68,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001448 "column" : 8,
1449 "source_fragment" : "hdr.pppoe.setInvalid()"
1450 }
1451 },
1452 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001453 "op" : "count",
1454 "parameters" : [
1455 {
1456 "type" : "counter_array",
1457 "value" : "FabricIngress.bng_ingress.upstream.c_terminated"
1458 },
1459 {
1460 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001461 "value" : ["scalars", "fabric_metadata_t._bng_line_id20"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001462 }
1463 ],
1464 "source_info" : {
1465 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07001466 "line" : 69,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001467 "column" : 8,
1468 "source_fragment" : "c_terminated.count(fmeta.bng.line_id)"
1469 }
1470 }
1471 ]
1472 },
1473 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07001474 "name" : "FabricIngress.bng_ingress.downstream.set_session",
Daniele Moro5a2de712019-09-24 14:34:07 -07001475 "id" : 11,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001476 "runtime_data" : [
1477 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07001478 "name" : "pppoe_session_id",
1479 "bitwidth" : 16
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001480 }
1481 ],
1482 "primitives" : [
1483 {
1484 "op" : "assign",
1485 "parameters" : [
1486 {
1487 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001488 "value" : ["scalars", "fabric_metadata_t._bng_type19"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001489 },
1490 {
1491 "type" : "hexstr",
1492 "value" : "0x02"
1493 }
1494 ],
1495 "source_info" : {
1496 "filename" : "include/control/../header.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07001497 "line" : 162,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001498 "column" : 39,
1499 "source_fragment" : "2w0x2;; ..."
1500 }
1501 },
1502 {
1503 "op" : "assign",
1504 "parameters" : [
1505 {
1506 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001507 "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id21"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001508 },
1509 {
1510 "type" : "runtime_data",
1511 "value" : 0
1512 }
1513 ],
1514 "source_info" : {
1515 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07001516 "line" : 156,
Daniele Moro7c3a0022019-07-12 13:38:34 -07001517 "column" : 35,
1518 "source_fragment" : "= pppoe_session_id; ..."
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001519 }
1520 },
1521 {
1522 "op" : "count",
1523 "parameters" : [
1524 {
1525 "type" : "counter_array",
1526 "value" : "FabricIngress.bng_ingress.downstream.c_line_rx"
1527 },
1528 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07001529 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001530 "value" : ["scalars", "fabric_metadata_t._bng_line_id20"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001531 }
1532 ],
1533 "source_info" : {
1534 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07001535 "line" : 157,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001536 "column" : 8,
Daniele Moro7c3a0022019-07-12 13:38:34 -07001537 "source_fragment" : "c_line_rx.count(fmeta.bng.line_id)"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001538 }
1539 }
1540 ]
1541 },
1542 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07001543 "name" : "FabricIngress.bng_ingress.downstream.drop",
Daniele Moro5a2de712019-09-24 14:34:07 -07001544 "id" : 12,
Daniele Moro7c3a0022019-07-12 13:38:34 -07001545 "runtime_data" : [],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001546 "primitives" : [
1547 {
1548 "op" : "assign",
1549 "parameters" : [
1550 {
1551 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001552 "value" : ["scalars", "fabric_metadata_t._bng_type19"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001553 },
1554 {
1555 "type" : "hexstr",
1556 "value" : "0x02"
1557 }
1558 ],
1559 "source_info" : {
1560 "filename" : "include/control/../header.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07001561 "line" : 162,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001562 "column" : 39,
1563 "source_fragment" : "2w0x2;; ..."
1564 }
1565 },
1566 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001567 "op" : "count",
1568 "parameters" : [
1569 {
1570 "type" : "counter_array",
1571 "value" : "FabricIngress.bng_ingress.downstream.c_line_rx"
1572 },
1573 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07001574 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001575 "value" : ["scalars", "fabric_metadata_t._bng_line_id20"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001576 }
1577 ],
1578 "source_info" : {
1579 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07001580 "line" : 162,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001581 "column" : 8,
Daniele Moro7c3a0022019-07-12 13:38:34 -07001582 "source_fragment" : "c_line_rx.count(fmeta.bng.line_id)"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001583 }
1584 },
1585 {
1586 "op" : "mark_to_drop",
1587 "parameters" : [
1588 {
1589 "type" : "header",
1590 "value" : "standard_metadata"
1591 }
1592 ],
1593 "source_info" : {
1594 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07001595 "line" : 163,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001596 "column" : 8,
1597 "source_fragment" : "mark_to_drop(smeta)"
1598 }
1599 }
1600 ]
1601 },
1602 {
1603 "name" : "FabricIngress.bng_ingress.downstream.qos_prio",
Daniele Moro5a2de712019-09-24 14:34:07 -07001604 "id" : 13,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001605 "runtime_data" : [],
Daniele Moro7c3a0022019-07-12 13:38:34 -07001606 "primitives" : []
1607 },
1608 {
1609 "name" : "FabricIngress.bng_ingress.downstream.qos_besteff",
Daniele Moro5a2de712019-09-24 14:34:07 -07001610 "id" : 14,
Daniele Moro7c3a0022019-07-12 13:38:34 -07001611 "runtime_data" : [],
1612 "primitives" : []
1613 },
1614 {
1615 "name" : "FabricIngress.bng_ingress.set_line",
Daniele Moro5a2de712019-09-24 14:34:07 -07001616 "id" : 15,
Daniele Moro7c3a0022019-07-12 13:38:34 -07001617 "runtime_data" : [
1618 {
1619 "name" : "line_id",
1620 "bitwidth" : 32
1621 }
1622 ],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001623 "primitives" : [
1624 {
Daniele Moroe22b5742019-06-28 15:32:37 -07001625 "op" : "assign",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001626 "parameters" : [
1627 {
Daniele Moroe22b5742019-06-28 15:32:37 -07001628 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001629 "value" : ["scalars", "fabric_metadata_t._bng_line_id20"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001630 },
1631 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07001632 "type" : "runtime_data",
1633 "value" : 0
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001634 }
1635 ],
1636 "source_info" : {
1637 "filename" : "include/bng.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001638 "line" : 317,
Daniele Moro7c3a0022019-07-12 13:38:34 -07001639 "column" : 30,
1640 "source_fragment" : "= line_id; ..."
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001641 }
1642 }
1643 ]
1644 },
1645 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001646 "name" : "FabricIngress.filtering.deny",
Daniele Moro5a2de712019-09-24 14:34:07 -07001647 "id" : 16,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001648 "runtime_data" : [],
1649 "primitives" : [
1650 {
1651 "op" : "assign",
1652 "parameters" : [
1653 {
1654 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001655 "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001656 },
1657 {
1658 "type" : "expression",
1659 "value" : {
1660 "type" : "expression",
1661 "value" : {
1662 "op" : "b2d",
1663 "left" : null,
1664 "right" : {
1665 "type" : "bool",
1666 "value" : true
1667 }
1668 }
1669 }
1670 }
1671 ],
1672 "source_info" : {
1673 "filename" : "include/control/filtering.p4",
1674 "line" : 36,
1675 "column" : 40,
1676 "source_fragment" : "= true; ..."
1677 }
1678 },
1679 {
1680 "op" : "assign",
1681 "parameters" : [
1682 {
1683 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001684 "value" : ["scalars", "fabric_metadata_t._skip_next11"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001685 },
1686 {
1687 "type" : "expression",
1688 "value" : {
1689 "type" : "expression",
1690 "value" : {
1691 "op" : "b2d",
1692 "left" : null,
1693 "right" : {
1694 "type" : "bool",
1695 "value" : true
1696 }
1697 }
1698 }
1699 }
1700 ],
1701 "source_info" : {
1702 "filename" : "include/control/filtering.p4",
1703 "line" : 37,
1704 "column" : 34,
1705 "source_fragment" : "= true; ..."
1706 }
1707 }
1708 ]
1709 },
1710 {
1711 "name" : "FabricIngress.filtering.permit",
Daniele Moro5a2de712019-09-24 14:34:07 -07001712 "id" : 17,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001713 "runtime_data" : [],
1714 "primitives" : []
1715 },
1716 {
1717 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07001718 "id" : 18,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001719 "runtime_data" : [
1720 {
1721 "name" : "vlan_id",
1722 "bitwidth" : 12
1723 }
1724 ],
1725 "primitives" : [
1726 {
1727 "op" : "assign",
1728 "parameters" : [
1729 {
1730 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001731 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001732 },
1733 {
1734 "type" : "runtime_data",
1735 "value" : 0
1736 }
1737 ],
1738 "source_info" : {
1739 "filename" : "include/control/filtering.p4",
1740 "line" : 47,
1741 "column" : 32,
1742 "source_fragment" : "= vlan_id; ..."
1743 }
1744 }
1745 ]
1746 },
1747 {
1748 "name" : "FabricIngress.filtering.set_forwarding_type",
Daniele Moro5a2de712019-09-24 14:34:07 -07001749 "id" : 19,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001750 "runtime_data" : [
1751 {
1752 "name" : "fwd_type",
1753 "bitwidth" : 3
1754 }
1755 ],
1756 "primitives" : [
1757 {
1758 "op" : "assign",
1759 "parameters" : [
1760 {
1761 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001762 "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001763 },
1764 {
1765 "type" : "runtime_data",
1766 "value" : 0
1767 }
1768 ],
1769 "source_info" : {
1770 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001771 "line" : 88,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001772 "column" : 33,
1773 "source_fragment" : "= fwd_type; ..."
1774 }
1775 }
1776 ]
1777 },
1778 {
1779 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Daniele Moro5a2de712019-09-24 14:34:07 -07001780 "id" : 20,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001781 "runtime_data" : [
1782 {
1783 "name" : "next_id",
1784 "bitwidth" : 32
1785 }
1786 ],
1787 "primitives" : [
1788 {
1789 "op" : "assign",
1790 "parameters" : [
1791 {
1792 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001793 "value" : ["scalars", "fabric_metadata_t._next_id13"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001794 },
1795 {
1796 "type" : "runtime_data",
1797 "value" : 0
1798 }
1799 ],
1800 "source_info" : {
1801 "filename" : "include/control/forwarding.p4",
1802 "line" : 30,
1803 "column" : 32,
1804 "source_fragment" : "= next_id; ..."
1805 }
1806 }
1807 ]
1808 },
1809 {
1810 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Daniele Moro5a2de712019-09-24 14:34:07 -07001811 "id" : 21,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001812 "runtime_data" : [
1813 {
1814 "name" : "next_id",
1815 "bitwidth" : 32
1816 }
1817 ],
1818 "primitives" : [
1819 {
1820 "op" : "assign",
1821 "parameters" : [
1822 {
1823 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001824 "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001825 },
1826 {
1827 "type" : "hexstr",
1828 "value" : "0x000000"
1829 }
1830 ],
1831 "source_info" : {
1832 "filename" : "include/control/forwarding.p4",
1833 "line" : 66,
1834 "column" : 35,
1835 "source_fragment" : "= 0; ..."
1836 }
1837 },
1838 {
1839 "op" : "assign",
1840 "parameters" : [
1841 {
1842 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001843 "value" : ["scalars", "fabric_metadata_t._next_id13"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001844 },
1845 {
1846 "type" : "runtime_data",
1847 "value" : 0
1848 }
1849 ],
1850 "source_info" : {
1851 "filename" : "include/control/forwarding.p4",
1852 "line" : 30,
1853 "column" : 32,
1854 "source_fragment" : "= next_id; ..."
1855 }
1856 }
1857 ]
1858 },
1859 {
1860 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Daniele Moro5a2de712019-09-24 14:34:07 -07001861 "id" : 22,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001862 "runtime_data" : [
1863 {
1864 "name" : "next_id",
1865 "bitwidth" : 32
1866 }
1867 ],
1868 "primitives" : [
1869 {
1870 "op" : "assign",
1871 "parameters" : [
1872 {
1873 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001874 "value" : ["scalars", "fabric_metadata_t._next_id13"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001875 },
1876 {
1877 "type" : "runtime_data",
1878 "value" : 0
1879 }
1880 ],
1881 "source_info" : {
1882 "filename" : "include/control/forwarding.p4",
1883 "line" : 30,
1884 "column" : 32,
1885 "source_fragment" : "= next_id; ..."
1886 }
1887 }
1888 ]
1889 },
1890 {
1891 "name" : "FabricIngress.forwarding.nop_routing_v4",
Daniele Moro5a2de712019-09-24 14:34:07 -07001892 "id" : 23,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001893 "runtime_data" : [],
1894 "primitives" : []
1895 },
1896 {
1897 "name" : "FabricIngress.acl.set_next_id_acl",
Daniele Moro5a2de712019-09-24 14:34:07 -07001898 "id" : 24,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001899 "runtime_data" : [
1900 {
1901 "name" : "next_id",
1902 "bitwidth" : 32
1903 }
1904 ],
1905 "primitives" : [
1906 {
1907 "op" : "assign",
1908 "parameters" : [
1909 {
1910 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001911 "value" : ["scalars", "fabric_metadata_t._next_id13"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001912 },
1913 {
1914 "type" : "runtime_data",
1915 "value" : 0
1916 }
1917 ],
1918 "source_info" : {
1919 "filename" : "include/control/acl.p4",
1920 "line" : 33,
1921 "column" : 32,
1922 "source_fragment" : "= next_id; ..."
1923 }
1924 }
1925 ]
1926 },
1927 {
1928 "name" : "FabricIngress.acl.punt_to_cpu",
Daniele Moro5a2de712019-09-24 14:34:07 -07001929 "id" : 25,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001930 "runtime_data" : [],
1931 "primitives" : [
1932 {
1933 "op" : "assign",
1934 "parameters" : [
1935 {
1936 "type" : "field",
1937 "value" : ["standard_metadata", "egress_spec"]
1938 },
1939 {
1940 "type" : "hexstr",
1941 "value" : "0x00ff"
1942 }
1943 ],
1944 "source_info" : {
1945 "filename" : "include/control/acl.p4",
1946 "line" : 39,
1947 "column" : 8,
1948 "source_fragment" : "standard_metadata.egress_spec = 255"
1949 }
1950 },
1951 {
1952 "op" : "assign",
1953 "parameters" : [
1954 {
1955 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001956 "value" : ["scalars", "fabric_metadata_t._skip_next11"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001957 },
1958 {
1959 "type" : "expression",
1960 "value" : {
1961 "type" : "expression",
1962 "value" : {
1963 "op" : "b2d",
1964 "left" : null,
1965 "right" : {
1966 "type" : "bool",
1967 "value" : true
1968 }
1969 }
1970 }
1971 }
1972 ],
1973 "source_info" : {
1974 "filename" : "include/control/acl.p4",
1975 "line" : 40,
1976 "column" : 34,
1977 "source_fragment" : "= true; ..."
1978 }
1979 }
1980 ]
1981 },
1982 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001983 "name" : "FabricIngress.acl.set_clone_session_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07001984 "id" : 26,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001985 "runtime_data" : [
1986 {
1987 "name" : "clone_id",
1988 "bitwidth" : 32
1989 }
1990 ],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001991 "primitives" : [
1992 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001993 "op" : "clone_ingress_pkt_to_egress",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001994 "parameters" : [
1995 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001996 "type" : "runtime_data",
1997 "value" : 0
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001998 },
1999 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002000 "type" : "hexstr",
2001 "value" : "0x1"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002002 }
2003 ],
2004 "source_info" : {
2005 "filename" : "include/control/acl.p4",
2006 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002007 "column" : 8,
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07002008 "source_fragment" : "clone3(CloneType.I2E, clone_id, {standard_metadata.ingress_port})"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002009 }
2010 }
2011 ]
2012 },
2013 {
2014 "name" : "FabricIngress.acl.drop",
Daniele Moro5a2de712019-09-24 14:34:07 -07002015 "id" : 27,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002016 "runtime_data" : [],
2017 "primitives" : [
2018 {
2019 "op" : "mark_to_drop",
2020 "parameters" : [
2021 {
2022 "type" : "header",
2023 "value" : "standard_metadata"
2024 }
2025 ],
2026 "source_info" : {
2027 "filename" : "include/control/acl.p4",
2028 "line" : 51,
2029 "column" : 8,
2030 "source_fragment" : "mark_to_drop(standard_metadata)"
2031 }
2032 },
2033 {
2034 "op" : "assign",
2035 "parameters" : [
2036 {
2037 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002038 "value" : ["scalars", "fabric_metadata_t._skip_next11"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002039 },
2040 {
2041 "type" : "expression",
2042 "value" : {
2043 "type" : "expression",
2044 "value" : {
2045 "op" : "b2d",
2046 "left" : null,
2047 "right" : {
2048 "type" : "bool",
2049 "value" : true
2050 }
2051 }
2052 }
2053 }
2054 ],
2055 "source_info" : {
2056 "filename" : "include/control/acl.p4",
2057 "line" : 52,
2058 "column" : 34,
2059 "source_fragment" : "= true; ..."
2060 }
2061 }
2062 ]
2063 },
2064 {
2065 "name" : "FabricIngress.acl.nop_acl",
Daniele Moro5a2de712019-09-24 14:34:07 -07002066 "id" : 28,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002067 "runtime_data" : [],
2068 "primitives" : []
2069 },
2070 {
2071 "name" : "FabricIngress.next.set_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07002072 "id" : 29,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002073 "runtime_data" : [
2074 {
2075 "name" : "vlan_id",
2076 "bitwidth" : 12
2077 }
2078 ],
2079 "primitives" : [
2080 {
2081 "op" : "assign",
2082 "parameters" : [
2083 {
2084 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002085 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002086 },
2087 {
2088 "type" : "runtime_data",
2089 "value" : 0
2090 }
2091 ],
2092 "source_info" : {
2093 "filename" : "include/control/next.p4",
2094 "line" : 70,
2095 "column" : 32,
2096 "source_fragment" : "= vlan_id; ..."
2097 }
2098 }
2099 ]
2100 },
2101 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07002102 "name" : "FabricIngress.next.set_double_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07002103 "id" : 30,
Daniele Moro7c3a0022019-07-12 13:38:34 -07002104 "runtime_data" : [
2105 {
2106 "name" : "outer_vlan_id",
2107 "bitwidth" : 12
2108 },
2109 {
2110 "name" : "inner_vlan_id",
2111 "bitwidth" : 12
2112 }
2113 ],
2114 "primitives" : [
2115 {
2116 "op" : "assign",
2117 "parameters" : [
2118 {
2119 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002120 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Daniele Moro7c3a0022019-07-12 13:38:34 -07002121 },
2122 {
2123 "type" : "runtime_data",
2124 "value" : 0
2125 }
2126 ],
2127 "source_info" : {
2128 "filename" : "include/control/next.p4",
2129 "line" : 70,
2130 "column" : 32,
2131 "source_fragment" : "= vlan_id; ..."
2132 }
2133 },
2134 {
2135 "op" : "assign",
2136 "parameters" : [
2137 {
2138 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002139 "value" : ["scalars", "fabric_metadata_t._push_double_vlan4"]
Daniele Moro7c3a0022019-07-12 13:38:34 -07002140 },
2141 {
2142 "type" : "expression",
2143 "value" : {
2144 "type" : "expression",
2145 "value" : {
2146 "op" : "b2d",
2147 "left" : null,
2148 "right" : {
2149 "type" : "bool",
2150 "value" : true
2151 }
2152 }
2153 }
2154 }
2155 ],
2156 "source_info" : {
2157 "filename" : "include/control/next.p4",
2158 "line" : 77,
2159 "column" : 41,
2160 "source_fragment" : "= true; ..."
2161 }
2162 },
2163 {
2164 "op" : "assign",
2165 "parameters" : [
2166 {
2167 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002168 "value" : ["scalars", "fabric_metadata_t._inner_vlan_id5"]
Daniele Moro7c3a0022019-07-12 13:38:34 -07002169 },
2170 {
2171 "type" : "runtime_data",
2172 "value" : 1
2173 }
2174 ],
2175 "source_info" : {
2176 "filename" : "include/control/next.p4",
2177 "line" : 78,
2178 "column" : 38,
2179 "source_fragment" : "= inner_vlan_id; ..."
2180 }
Daniele Morob3d199b2019-11-01 14:01:46 -07002181 },
2182 {
2183 "op" : "assign",
2184 "parameters" : [
2185 {
2186 "type" : "field",
2187 "value" : ["scalars", "fabric_metadata_t._bng_s_tag23"]
2188 },
2189 {
2190 "type" : "runtime_data",
2191 "value" : 0
2192 }
2193 ],
2194 "source_info" : {
2195 "filename" : "include/control/next.p4",
2196 "line" : 80,
2197 "column" : 34,
2198 "source_fragment" : "= outer_vlan_id; ..."
2199 }
2200 },
2201 {
2202 "op" : "assign",
2203 "parameters" : [
2204 {
2205 "type" : "field",
2206 "value" : ["scalars", "fabric_metadata_t._bng_c_tag24"]
2207 },
2208 {
2209 "type" : "runtime_data",
2210 "value" : 1
2211 }
2212 ],
2213 "source_info" : {
2214 "filename" : "include/control/next.p4",
2215 "line" : 81,
2216 "column" : 34,
2217 "source_fragment" : "= inner_vlan_id; ..."
2218 }
Daniele Moro7c3a0022019-07-12 13:38:34 -07002219 }
2220 ]
2221 },
2222 {
2223 "name" : "FabricIngress.next.output_hashed",
Daniele Moro5a2de712019-09-24 14:34:07 -07002224 "id" : 31,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002225 "runtime_data" : [
2226 {
2227 "name" : "port_num",
2228 "bitwidth" : 9
2229 }
2230 ],
2231 "primitives" : [
2232 {
2233 "op" : "assign",
2234 "parameters" : [
2235 {
2236 "type" : "field",
2237 "value" : ["standard_metadata", "egress_spec"]
2238 },
2239 {
2240 "type" : "runtime_data",
2241 "value" : 0
2242 }
2243 ],
2244 "source_info" : {
2245 "filename" : "include/control/next.p4",
2246 "line" : 31,
2247 "column" : 5,
2248 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2249 }
2250 }
2251 ]
2252 },
2253 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002254 "name" : "FabricIngress.next.routing_hashed",
Daniele Moro5a2de712019-09-24 14:34:07 -07002255 "id" : 32,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002256 "runtime_data" : [
2257 {
2258 "name" : "port_num",
2259 "bitwidth" : 9
2260 },
2261 {
2262 "name" : "smac",
2263 "bitwidth" : 48
2264 },
2265 {
2266 "name" : "dmac",
2267 "bitwidth" : 48
2268 }
2269 ],
2270 "primitives" : [
2271 {
2272 "op" : "assign",
2273 "parameters" : [
2274 {
2275 "type" : "field",
2276 "value" : ["ethernet", "src_addr"]
2277 },
2278 {
2279 "type" : "runtime_data",
2280 "value" : 1
2281 }
2282 ],
2283 "source_info" : {
2284 "filename" : "include/control/next.p4",
2285 "line" : 36,
2286 "column" : 8,
2287 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2288 }
2289 },
2290 {
2291 "op" : "assign",
2292 "parameters" : [
2293 {
2294 "type" : "field",
2295 "value" : ["ethernet", "dst_addr"]
2296 },
2297 {
2298 "type" : "runtime_data",
2299 "value" : 2
2300 }
2301 ],
2302 "source_info" : {
2303 "filename" : "include/control/next.p4",
2304 "line" : 41,
2305 "column" : 8,
2306 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2307 }
2308 },
2309 {
2310 "op" : "assign",
2311 "parameters" : [
2312 {
2313 "type" : "field",
2314 "value" : ["standard_metadata", "egress_spec"]
2315 },
2316 {
2317 "type" : "runtime_data",
2318 "value" : 0
2319 }
2320 ],
2321 "source_info" : {
2322 "filename" : "include/control/next.p4",
2323 "line" : 31,
2324 "column" : 5,
2325 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2326 }
2327 }
2328 ]
2329 },
2330 {
2331 "name" : "FabricIngress.next.mpls_routing_hashed",
Daniele Moro5a2de712019-09-24 14:34:07 -07002332 "id" : 33,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002333 "runtime_data" : [
2334 {
2335 "name" : "port_num",
2336 "bitwidth" : 9
2337 },
2338 {
2339 "name" : "smac",
2340 "bitwidth" : 48
2341 },
2342 {
2343 "name" : "dmac",
2344 "bitwidth" : 48
2345 },
2346 {
2347 "name" : "label",
2348 "bitwidth" : 20
2349 }
2350 ],
2351 "primitives" : [
2352 {
2353 "op" : "assign",
2354 "parameters" : [
2355 {
2356 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002357 "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002358 },
2359 {
2360 "type" : "runtime_data",
2361 "value" : 3
2362 }
2363 ],
2364 "source_info" : {
2365 "filename" : "include/control/next.p4",
2366 "line" : 46,
2367 "column" : 35,
2368 "source_fragment" : "= label; ..."
2369 }
2370 },
2371 {
2372 "op" : "assign",
2373 "parameters" : [
2374 {
2375 "type" : "field",
2376 "value" : ["ethernet", "src_addr"]
2377 },
2378 {
2379 "type" : "runtime_data",
2380 "value" : 1
2381 }
2382 ],
2383 "source_info" : {
2384 "filename" : "include/control/next.p4",
2385 "line" : 36,
2386 "column" : 8,
2387 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2388 }
2389 },
2390 {
2391 "op" : "assign",
2392 "parameters" : [
2393 {
2394 "type" : "field",
2395 "value" : ["ethernet", "dst_addr"]
2396 },
2397 {
2398 "type" : "runtime_data",
2399 "value" : 2
2400 }
2401 ],
2402 "source_info" : {
2403 "filename" : "include/control/next.p4",
2404 "line" : 41,
2405 "column" : 8,
2406 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2407 }
2408 },
2409 {
2410 "op" : "assign",
2411 "parameters" : [
2412 {
2413 "type" : "field",
2414 "value" : ["standard_metadata", "egress_spec"]
2415 },
2416 {
2417 "type" : "runtime_data",
2418 "value" : 0
2419 }
2420 ],
2421 "source_info" : {
2422 "filename" : "include/control/next.p4",
2423 "line" : 31,
2424 "column" : 5,
2425 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2426 }
2427 }
2428 ]
2429 },
2430 {
2431 "name" : "FabricIngress.next.set_mcast_group_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07002432 "id" : 34,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002433 "runtime_data" : [
2434 {
2435 "name" : "group_id",
2436 "bitwidth" : 16
2437 }
2438 ],
2439 "primitives" : [
2440 {
2441 "op" : "assign",
2442 "parameters" : [
2443 {
2444 "type" : "field",
2445 "value" : ["standard_metadata", "mcast_grp"]
2446 },
2447 {
2448 "type" : "runtime_data",
2449 "value" : 0
2450 }
2451 ],
2452 "source_info" : {
2453 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002454 "line" : 231,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002455 "column" : 8,
2456 "source_fragment" : "standard_metadata.mcast_grp = group_id"
2457 }
2458 },
2459 {
2460 "op" : "assign",
2461 "parameters" : [
2462 {
2463 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002464 "value" : ["scalars", "fabric_metadata_t._is_multicast14"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002465 },
2466 {
2467 "type" : "expression",
2468 "value" : {
2469 "type" : "expression",
2470 "value" : {
2471 "op" : "b2d",
2472 "left" : null,
2473 "right" : {
2474 "type" : "bool",
2475 "value" : true
2476 }
2477 }
2478 }
2479 }
2480 ],
2481 "source_info" : {
2482 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002483 "line" : 232,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002484 "column" : 37,
2485 "source_fragment" : "= true; ..."
2486 }
2487 }
2488 ]
2489 },
2490 {
2491 "name" : "act",
Daniele Moro5a2de712019-09-24 14:34:07 -07002492 "id" : 35,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002493 "runtime_data" : [],
2494 "primitives" : [
2495 {
2496 "op" : "assign",
2497 "parameters" : [
2498 {
2499 "type" : "field",
2500 "value" : ["standard_metadata", "egress_spec"]
2501 },
2502 {
2503 "type" : "field",
2504 "value" : ["packet_out", "egress_port"]
2505 }
2506 ],
2507 "source_info" : {
2508 "filename" : "include/control/packetio.p4",
2509 "line" : 25,
2510 "column" : 12,
2511 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2512 }
2513 },
2514 {
2515 "op" : "remove_header",
2516 "parameters" : [
2517 {
2518 "type" : "header",
2519 "value" : "packet_out"
2520 }
2521 ],
2522 "source_info" : {
2523 "filename" : "include/control/packetio.p4",
2524 "line" : 26,
2525 "column" : 12,
2526 "source_fragment" : "hdr.packet_out.setInvalid()"
2527 }
2528 },
2529 {
2530 "op" : "assign",
2531 "parameters" : [
2532 {
2533 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002534 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002535 },
2536 {
2537 "type" : "expression",
2538 "value" : {
2539 "type" : "expression",
2540 "value" : {
2541 "op" : "b2d",
2542 "left" : null,
2543 "right" : {
2544 "type" : "bool",
2545 "value" : true
2546 }
2547 }
2548 }
2549 }
2550 ],
2551 "source_info" : {
2552 "filename" : "include/control/packetio.p4",
2553 "line" : 27,
2554 "column" : 53,
2555 "source_fragment" : "= true; ..."
2556 }
2557 },
2558 {
2559 "op" : "exit",
2560 "parameters" : [],
2561 "source_info" : {
2562 "filename" : "include/control/packetio.p4",
2563 "line" : 29,
2564 "column" : 12,
2565 "source_fragment" : "exit"
2566 }
2567 }
2568 ]
2569 },
2570 {
2571 "name" : "act_0",
Daniele Moro5a2de712019-09-24 14:34:07 -07002572 "id" : 36,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002573 "runtime_data" : [],
2574 "primitives" : [
2575 {
2576 "op" : "assign",
2577 "parameters" : [
2578 {
2579 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002580 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002581 },
2582 {
2583 "type" : "field",
2584 "value" : ["vlan_tag", "vlan_id"]
2585 }
2586 ],
2587 "source_info" : {
2588 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002589 "line" : 111,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002590 "column" : 36,
2591 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
2592 }
2593 },
2594 {
2595 "op" : "assign",
2596 "parameters" : [
2597 {
2598 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002599 "value" : ["scalars", "fabric_metadata_t._vlan_pri2"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002600 },
2601 {
2602 "type" : "field",
2603 "value" : ["vlan_tag", "pri"]
2604 }
2605 ],
2606 "source_info" : {
2607 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002608 "line" : 112,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002609 "column" : 37,
2610 "source_fragment" : "= hdr.vlan_tag.pri; ..."
2611 }
2612 },
2613 {
2614 "op" : "assign",
2615 "parameters" : [
2616 {
2617 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002618 "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002619 },
2620 {
2621 "type" : "field",
2622 "value" : ["vlan_tag", "cfi"]
2623 }
2624 ],
2625 "source_info" : {
2626 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002627 "line" : 113,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002628 "column" : 37,
2629 "source_fragment" : "= hdr.vlan_tag.cfi; ..."
2630 }
2631 }
2632 ]
2633 },
2634 {
2635 "name" : "act_1",
Daniele Moro5a2de712019-09-24 14:34:07 -07002636 "id" : 37,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002637 "runtime_data" : [],
2638 "primitives" : [
2639 {
2640 "op" : "assign",
2641 "parameters" : [
2642 {
2643 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002644 "value" : ["scalars", "fabric_metadata_t._inner_vlan_id5"]
Daniele Moro7c3a0022019-07-12 13:38:34 -07002645 },
2646 {
2647 "type" : "field",
2648 "value" : ["inner_vlan_tag", "vlan_id"]
2649 }
2650 ],
2651 "source_info" : {
2652 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002653 "line" : 117,
Daniele Moro7c3a0022019-07-12 13:38:34 -07002654 "column" : 42,
2655 "source_fragment" : "= hdr.inner_vlan_tag.vlan_id; ..."
2656 }
2657 },
2658 {
2659 "op" : "assign",
2660 "parameters" : [
2661 {
2662 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002663 "value" : ["scalars", "fabric_metadata_t._inner_vlan_pri6"]
Daniele Moro7c3a0022019-07-12 13:38:34 -07002664 },
2665 {
2666 "type" : "field",
2667 "value" : ["inner_vlan_tag", "pri"]
2668 }
2669 ],
2670 "source_info" : {
2671 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002672 "line" : 118,
Daniele Moro7c3a0022019-07-12 13:38:34 -07002673 "column" : 43,
2674 "source_fragment" : "= hdr.inner_vlan_tag.pri; ..."
2675 }
2676 },
2677 {
2678 "op" : "assign",
2679 "parameters" : [
2680 {
2681 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002682 "value" : ["scalars", "fabric_metadata_t._inner_vlan_cfi7"]
Daniele Moro7c3a0022019-07-12 13:38:34 -07002683 },
2684 {
2685 "type" : "field",
2686 "value" : ["inner_vlan_tag", "cfi"]
2687 }
2688 ],
2689 "source_info" : {
2690 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002691 "line" : 119,
Daniele Moro7c3a0022019-07-12 13:38:34 -07002692 "column" : 43,
2693 "source_fragment" : "= hdr.inner_vlan_tag.cfi; ..."
2694 }
2695 }
2696 ]
2697 },
2698 {
2699 "name" : "act_2",
Daniele Moro5a2de712019-09-24 14:34:07 -07002700 "id" : 38,
Daniele Moro7c3a0022019-07-12 13:38:34 -07002701 "runtime_data" : [],
2702 "primitives" : [
2703 {
2704 "op" : "assign",
2705 "parameters" : [
2706 {
2707 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002708 "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002709 },
2710 {
2711 "type" : "hexstr",
2712 "value" : "0x41"
2713 }
2714 ],
2715 "source_info" : {
2716 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002717 "line" : 127,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002718 "column" : 37,
2719 "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
2720 }
2721 }
2722 ]
2723 },
2724 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07002725 "name" : "act_3",
Daniele Moro5a2de712019-09-24 14:34:07 -07002726 "id" : 39,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002727 "runtime_data" : [],
2728 "primitives" : [
2729 {
2730 "op" : "assign",
2731 "parameters" : [
2732 {
2733 "type" : "field",
2734 "value" : ["scalars", "tmp"]
2735 },
2736 {
2737 "type" : "expression",
2738 "value" : {
2739 "type" : "expression",
2740 "value" : {
2741 "op" : "&",
2742 "left" : {
2743 "type" : "field",
2744 "value" : ["standard_metadata", "egress_spec"]
2745 },
2746 "right" : {
2747 "type" : "hexstr",
2748 "value" : "0xffffffff"
2749 }
2750 }
2751 }
2752 }
2753 ],
2754 "source_info" : {
2755 "filename" : "include/control/port_counter.p4",
2756 "line" : 31,
2757 "column" : 38,
2758 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
2759 }
2760 },
2761 {
2762 "op" : "count",
2763 "parameters" : [
2764 {
2765 "type" : "counter_array",
2766 "value" : "FabricIngress.port_counters_control.egress_port_counter"
2767 },
2768 {
2769 "type" : "field",
2770 "value" : ["scalars", "tmp"]
2771 }
2772 ],
2773 "source_info" : {
2774 "filename" : "include/control/port_counter.p4",
2775 "line" : 31,
2776 "column" : 12,
2777 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
2778 }
2779 }
2780 ]
2781 },
2782 {
Daniele Moro5a2de712019-09-24 14:34:07 -07002783 "name" : "act_4",
2784 "id" : 40,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002785 "runtime_data" : [],
2786 "primitives" : [
2787 {
2788 "op" : "assign",
2789 "parameters" : [
2790 {
2791 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002792 "value" : ["scalars", "tmp_3"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002793 },
2794 {
2795 "type" : "expression",
2796 "value" : {
2797 "type" : "expression",
2798 "value" : {
2799 "op" : "&",
2800 "left" : {
2801 "type" : "field",
2802 "value" : ["standard_metadata", "ingress_port"]
2803 },
2804 "right" : {
2805 "type" : "hexstr",
2806 "value" : "0xffffffff"
2807 }
2808 }
2809 }
2810 }
2811 ],
2812 "source_info" : {
2813 "filename" : "include/control/port_counter.p4",
2814 "line" : 34,
2815 "column" : 39,
2816 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
2817 }
2818 },
2819 {
2820 "op" : "count",
2821 "parameters" : [
2822 {
2823 "type" : "counter_array",
2824 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
2825 },
2826 {
2827 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002828 "value" : ["scalars", "tmp_3"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002829 }
2830 ],
2831 "source_info" : {
2832 "filename" : "include/control/port_counter.p4",
2833 "line" : 34,
2834 "column" : 12,
2835 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
2836 }
2837 }
2838 ]
2839 },
2840 {
Daniele Moro5a2de712019-09-24 14:34:07 -07002841 "name" : "act_5",
2842 "id" : 41,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002843 "runtime_data" : [],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002844 "primitives" : [
2845 {
2846 "op" : "assign",
2847 "parameters" : [
2848 {
2849 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002850 "value" : ["scalars", "bng_ingress_upstream_tmp"]
2851 },
2852 {
2853 "type" : "expression",
2854 "value" : {
2855 "type" : "expression",
2856 "value" : {
2857 "op" : "b2d",
2858 "left" : null,
2859 "right" : {
2860 "type" : "bool",
2861 "value" : true
2862 }
2863 }
2864 }
2865 }
2866 ]
2867 }
2868 ]
2869 },
2870 {
Daniele Morob3d199b2019-11-01 14:01:46 -07002871 "name" : "act_6",
2872 "id" : 42,
Daniele Moro7c3a0022019-07-12 13:38:34 -07002873 "runtime_data" : [],
2874 "primitives" : [
2875 {
2876 "op" : "assign",
2877 "parameters" : [
2878 {
2879 "type" : "field",
2880 "value" : ["scalars", "bng_ingress_upstream_tmp"]
2881 },
2882 {
2883 "type" : "expression",
2884 "value" : {
2885 "type" : "expression",
2886 "value" : {
2887 "op" : "b2d",
2888 "left" : null,
2889 "right" : {
2890 "type" : "bool",
2891 "value" : false
2892 }
2893 }
2894 }
2895 }
2896 ]
2897 }
2898 ]
2899 },
2900 {
Daniele Morob3d199b2019-11-01 14:01:46 -07002901 "name" : "act_7",
2902 "id" : 43,
Daniele Moro7c3a0022019-07-12 13:38:34 -07002903 "runtime_data" : [],
2904 "primitives" : [
2905 {
2906 "op" : "assign",
2907 "parameters" : [
2908 {
2909 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002910 "value" : ["scalars", "fabric_metadata_t._bng_type19"]
Daniele Moro7c3a0022019-07-12 13:38:34 -07002911 },
2912 {
2913 "type" : "hexstr",
2914 "value" : "0x01"
2915 }
2916 ],
2917 "source_info" : {
2918 "filename" : "include/control/../header.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07002919 "line" : 161,
Daniele Moro7c3a0022019-07-12 13:38:34 -07002920 "column" : 37,
2921 "source_fragment" : "2w0x1; ..."
2922 }
2923 },
2924 {
2925 "op" : "assign",
2926 "parameters" : [
2927 {
2928 "type" : "field",
2929 "value" : ["scalars", "bng_ingress_upstream_hasReturned"]
2930 },
2931 {
2932 "type" : "expression",
2933 "value" : {
2934 "type" : "expression",
2935 "value" : {
2936 "op" : "b2d",
2937 "left" : null,
2938 "right" : {
2939 "type" : "bool",
2940 "value" : false
2941 }
2942 }
2943 }
2944 }
2945 ]
2946 }
2947 ]
2948 },
2949 {
Daniele Morob3d199b2019-11-01 14:01:46 -07002950 "name" : "act_8",
2951 "id" : 44,
Daniele Moro7c3a0022019-07-12 13:38:34 -07002952 "runtime_data" : [],
2953 "primitives" : [
2954 {
2955 "op" : "assign",
2956 "parameters" : [
2957 {
2958 "type" : "field",
2959 "value" : ["scalars", "bng_ingress_upstream_hasReturned"]
2960 },
2961 {
2962 "type" : "expression",
2963 "value" : {
2964 "type" : "expression",
2965 "value" : {
2966 "op" : "b2d",
2967 "left" : null,
2968 "right" : {
2969 "type" : "bool",
2970 "value" : true
2971 }
2972 }
2973 }
2974 }
2975 ],
2976 "source_info" : {
2977 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07002978 "line" : 123,
Daniele Moro7c3a0022019-07-12 13:38:34 -07002979 "column" : 12,
2980 "source_fragment" : "return"
2981 }
2982 }
2983 ]
2984 },
2985 {
Daniele Morob3d199b2019-11-01 14:01:46 -07002986 "name" : "act_9",
2987 "id" : 45,
Daniele Moro7c3a0022019-07-12 13:38:34 -07002988 "runtime_data" : [],
2989 "primitives" : [
2990 {
2991 "op" : "count",
2992 "parameters" : [
2993 {
2994 "type" : "counter_array",
2995 "value" : "FabricIngress.bng_ingress.upstream.c_dropped"
2996 },
2997 {
2998 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002999 "value" : ["scalars", "fabric_metadata_t._bng_line_id20"]
Daniele Moro7c3a0022019-07-12 13:38:34 -07003000 }
3001 ],
3002 "source_info" : {
3003 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003004 "line" : 128,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003005 "column" : 20,
3006 "source_fragment" : "c_dropped.count(fmeta.bng.line_id)"
3007 }
3008 }
3009 ]
3010 },
3011 {
Daniele Morob3d199b2019-11-01 14:01:46 -07003012 "name" : "act_10",
3013 "id" : 46,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003014 "runtime_data" : [],
3015 "primitives" : [
3016 {
3017 "op" : "assign",
3018 "parameters" : [
3019 {
3020 "type" : "field",
3021 "value" : ["scalars", "bng_ingress_downstream_tmp"]
3022 },
3023 {
3024 "type" : "expression",
3025 "value" : {
3026 "type" : "expression",
3027 "value" : {
3028 "op" : "b2d",
3029 "left" : null,
3030 "right" : {
3031 "type" : "bool",
3032 "value" : true
3033 }
3034 }
3035 }
3036 }
3037 ]
3038 }
3039 ]
3040 },
3041 {
Daniele Morob3d199b2019-11-01 14:01:46 -07003042 "name" : "act_11",
3043 "id" : 47,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003044 "runtime_data" : [],
3045 "primitives" : [
3046 {
3047 "op" : "assign",
3048 "parameters" : [
3049 {
3050 "type" : "field",
3051 "value" : ["scalars", "bng_ingress_downstream_tmp"]
3052 },
3053 {
3054 "type" : "expression",
3055 "value" : {
3056 "type" : "expression",
3057 "value" : {
3058 "op" : "b2d",
3059 "left" : null,
3060 "right" : {
3061 "type" : "bool",
3062 "value" : false
3063 }
3064 }
3065 }
3066 }
3067 ]
3068 }
3069 ]
3070 },
3071 {
Daniele Morob3d199b2019-11-01 14:01:46 -07003072 "name" : "act_12",
3073 "id" : 48,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003074 "runtime_data" : [],
3075 "primitives" : [
3076 {
3077 "op" : "execute_meter",
3078 "parameters" : [
3079 {
3080 "type" : "meter_array",
3081 "value" : "FabricIngress.bng_ingress.downstream.m_prio"
3082 },
3083 {
3084 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003085 "value" : ["scalars", "fabric_metadata_t._bng_line_id20"]
Daniele Moro7c3a0022019-07-12 13:38:34 -07003086 },
3087 {
3088 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003089 "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result22"]
Daniele Moro7c3a0022019-07-12 13:38:34 -07003090 }
3091 ],
3092 "source_info" : {
3093 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003094 "line" : 235,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003095 "column" : 24,
3096 "source_fragment" : "m_prio.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
3097 }
3098 }
3099 ]
3100 },
3101 {
Daniele Morob3d199b2019-11-01 14:01:46 -07003102 "name" : "act_13",
3103 "id" : 49,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003104 "runtime_data" : [],
3105 "primitives" : [
3106 {
3107 "op" : "execute_meter",
3108 "parameters" : [
3109 {
3110 "type" : "meter_array",
3111 "value" : "FabricIngress.bng_ingress.downstream.m_besteff"
3112 },
3113 {
3114 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003115 "value" : ["scalars", "fabric_metadata_t._bng_line_id20"]
Daniele Moro7c3a0022019-07-12 13:38:34 -07003116 },
3117 {
3118 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003119 "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result22"]
Daniele Moro7c3a0022019-07-12 13:38:34 -07003120 }
3121 ],
3122 "source_info" : {
3123 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003124 "line" : 238,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003125 "column" : 24,
3126 "source_fragment" : "m_besteff.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
3127 }
3128 }
3129 ]
3130 },
3131 {
3132 "name" : "nop",
Daniele Morob3d199b2019-11-01 14:01:46 -07003133 "id" : 50,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003134 "runtime_data" : [],
3135 "primitives" : []
3136 },
3137 {
3138 "name" : "FabricEgress.bng_egress.downstream.encap_v4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003139 "id" : 51,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003140 "runtime_data" : [],
3141 "primitives" : [
3142 {
3143 "op" : "assign",
3144 "parameters" : [
3145 {
3146 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003147 "value" : ["eth_type", "value"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003148 },
3149 {
3150 "type" : "hexstr",
3151 "value" : "0x8864"
3152 }
3153 ],
3154 "source_info" : {
3155 "filename" : "include/control/../define.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003156 "line" : 118,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003157 "column" : 33,
3158 "source_fragment" : "0x8864; ..."
3159 }
3160 },
3161 {
3162 "op" : "add_header",
3163 "parameters" : [
3164 {
3165 "type" : "header",
3166 "value" : "pppoe"
3167 }
3168 ],
3169 "source_info" : {
3170 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003171 "line" : 270,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003172 "column" : 8,
3173 "source_fragment" : "hdr.pppoe.setValid()"
3174 }
3175 },
3176 {
3177 "op" : "assign",
3178 "parameters" : [
3179 {
3180 "type" : "field",
3181 "value" : ["pppoe", "version"]
3182 },
3183 {
3184 "type" : "hexstr",
3185 "value" : "0x01"
3186 }
3187 ],
3188 "source_info" : {
3189 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003190 "line" : 271,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003191 "column" : 8,
3192 "source_fragment" : "hdr.pppoe.version = 4w1"
3193 }
3194 },
3195 {
3196 "op" : "assign",
3197 "parameters" : [
3198 {
3199 "type" : "field",
3200 "value" : ["pppoe", "type_id"]
3201 },
3202 {
3203 "type" : "hexstr",
3204 "value" : "0x01"
3205 }
3206 ],
3207 "source_info" : {
3208 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003209 "line" : 272,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003210 "column" : 8,
3211 "source_fragment" : "hdr.pppoe.type_id = 4w1"
3212 }
3213 },
3214 {
3215 "op" : "assign",
3216 "parameters" : [
3217 {
3218 "type" : "field",
3219 "value" : ["pppoe", "code"]
3220 },
3221 {
3222 "type" : "hexstr",
3223 "value" : "0x00"
3224 }
3225 ],
3226 "source_info" : {
3227 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003228 "line" : 273,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003229 "column" : 8,
3230 "source_fragment" : "hdr.pppoe.code = 8w0"
3231 }
3232 },
3233 {
3234 "op" : "assign",
3235 "parameters" : [
3236 {
3237 "type" : "field",
3238 "value" : ["pppoe", "session_id"]
3239 },
3240 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07003241 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003242 "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id21"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003243 }
3244 ],
3245 "source_info" : {
3246 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003247 "line" : 274,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003248 "column" : 8,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003249 "source_fragment" : "hdr.pppoe.session_id = fmeta.bng.pppoe_session_id; ..."
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003250 }
3251 },
3252 {
3253 "op" : "count",
3254 "parameters" : [
3255 {
3256 "type" : "counter_array",
3257 "value" : "FabricEgress.bng_egress.downstream.c_line_tx"
3258 },
3259 {
3260 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003261 "value" : ["scalars", "fabric_metadata_t._bng_line_id20"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003262 }
3263 ],
3264 "source_info" : {
3265 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003266 "line" : 275,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003267 "column" : 8,
3268 "source_fragment" : "c_line_tx.count(fmeta.bng.line_id)"
3269 }
3270 },
3271 {
3272 "op" : "assign",
3273 "parameters" : [
3274 {
3275 "type" : "field",
3276 "value" : ["pppoe", "length"]
3277 },
3278 {
3279 "type" : "expression",
3280 "value" : {
3281 "type" : "expression",
3282 "value" : {
3283 "op" : "&",
3284 "left" : {
3285 "type" : "expression",
3286 "value" : {
3287 "op" : "+",
3288 "left" : {
3289 "type" : "field",
3290 "value" : ["ipv4", "total_len"]
3291 },
3292 "right" : {
3293 "type" : "hexstr",
3294 "value" : "0x0002"
3295 }
3296 }
3297 },
3298 "right" : {
3299 "type" : "hexstr",
3300 "value" : "0xffff"
3301 }
3302 }
3303 }
3304 }
3305 ],
3306 "source_info" : {
3307 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003308 "line" : 280,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003309 "column" : 8,
3310 "source_fragment" : "hdr.pppoe.length = hdr.ipv4.total_len + 16w2"
3311 }
3312 },
3313 {
3314 "op" : "assign",
3315 "parameters" : [
3316 {
3317 "type" : "field",
3318 "value" : ["pppoe", "protocol"]
3319 },
3320 {
3321 "type" : "hexstr",
3322 "value" : "0x0021"
3323 }
3324 ],
3325 "source_info" : {
3326 "filename" : "include/control/../define.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003327 "line" : 120,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003328 "column" : 35,
3329 "source_fragment" : "0x0021; ..."
3330 }
3331 }
3332 ]
3333 },
3334 {
3335 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
Daniele Morob3d199b2019-11-01 14:01:46 -07003336 "id" : 52,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003337 "runtime_data" : [],
3338 "primitives" : [
3339 {
3340 "op" : "remove_header",
3341 "parameters" : [
3342 {
3343 "type" : "header",
3344 "value" : "mpls"
3345 }
3346 ],
3347 "source_info" : {
3348 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003349 "line" : 270,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003350 "column" : 8,
3351 "source_fragment" : "hdr.mpls.setInvalid()"
3352 }
3353 },
3354 {
3355 "op" : "assign",
3356 "parameters" : [
3357 {
3358 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003359 "value" : ["eth_type", "value"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003360 },
3361 {
3362 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003363 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003364 }
3365 ],
3366 "source_info" : {
3367 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003368 "line" : 272,
Daniele Moro5a2de712019-09-24 14:34:07 -07003369 "column" : 8,
3370 "source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type; ..."
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003371 }
3372 }
3373 ]
3374 },
3375 {
3376 "name" : "FabricEgress.egress_next.set_mpls",
Daniele Morob3d199b2019-11-01 14:01:46 -07003377 "id" : 53,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003378 "runtime_data" : [],
3379 "primitives" : [
3380 {
3381 "op" : "add_header",
3382 "parameters" : [
3383 {
3384 "type" : "header",
3385 "value" : "mpls"
3386 }
3387 ],
3388 "source_info" : {
3389 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003390 "line" : 277,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003391 "column" : 8,
3392 "source_fragment" : "hdr.mpls.setValid()"
3393 }
3394 },
3395 {
3396 "op" : "assign",
3397 "parameters" : [
3398 {
3399 "type" : "field",
3400 "value" : ["mpls", "label"]
3401 },
3402 {
3403 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003404 "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003405 }
3406 ],
3407 "source_info" : {
3408 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003409 "line" : 278,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003410 "column" : 8,
3411 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
3412 }
3413 },
3414 {
3415 "op" : "assign",
3416 "parameters" : [
3417 {
3418 "type" : "field",
3419 "value" : ["mpls", "tc"]
3420 },
3421 {
3422 "type" : "hexstr",
3423 "value" : "0x00"
3424 }
3425 ],
3426 "source_info" : {
3427 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003428 "line" : 279,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003429 "column" : 8,
3430 "source_fragment" : "hdr.mpls.tc = 3w0"
3431 }
3432 },
3433 {
3434 "op" : "assign",
3435 "parameters" : [
3436 {
3437 "type" : "field",
3438 "value" : ["mpls", "bos"]
3439 },
3440 {
3441 "type" : "hexstr",
3442 "value" : "0x01"
3443 }
3444 ],
3445 "source_info" : {
3446 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003447 "line" : 280,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003448 "column" : 8,
3449 "source_fragment" : "hdr.mpls.bos = 1w1"
3450 }
3451 },
3452 {
3453 "op" : "assign",
3454 "parameters" : [
3455 {
3456 "type" : "field",
3457 "value" : ["mpls", "ttl"]
3458 },
3459 {
3460 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003461 "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003462 }
3463 ],
3464 "source_info" : {
3465 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003466 "line" : 281,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003467 "column" : 8,
3468 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..."
3469 }
3470 },
3471 {
3472 "op" : "assign",
3473 "parameters" : [
3474 {
3475 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003476 "value" : ["eth_type", "value"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003477 },
3478 {
3479 "type" : "hexstr",
3480 "value" : "0x8847"
3481 }
3482 ],
3483 "source_info" : {
3484 "filename" : "include/control/../define.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003485 "line" : 112,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003486 "column" : 31,
3487 "source_fragment" : "0x8847; ..."
3488 }
3489 }
3490 ]
3491 },
3492 {
3493 "name" : "FabricEgress.egress_next.push_vlan",
Daniele Morob3d199b2019-11-01 14:01:46 -07003494 "id" : 54,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003495 "runtime_data" : [],
3496 "primitives" : [
3497 {
3498 "op" : "add_header",
3499 "parameters" : [
3500 {
3501 "type" : "header",
3502 "value" : "vlan_tag"
3503 }
3504 ],
3505 "source_info" : {
3506 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003507 "line" : 289,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003508 "column" : 8,
3509 "source_fragment" : "hdr.vlan_tag.setValid()"
3510 }
3511 },
3512 {
3513 "op" : "assign",
3514 "parameters" : [
3515 {
3516 "type" : "field",
3517 "value" : ["vlan_tag", "cfi"]
3518 },
3519 {
3520 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003521 "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003522 }
3523 ],
3524 "source_info" : {
3525 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003526 "line" : 290,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003527 "column" : 8,
3528 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
3529 }
3530 },
3531 {
3532 "op" : "assign",
3533 "parameters" : [
3534 {
3535 "type" : "field",
3536 "value" : ["vlan_tag", "pri"]
3537 },
3538 {
3539 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003540 "value" : ["scalars", "fabric_metadata_t._vlan_pri2"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003541 }
3542 ],
3543 "source_info" : {
3544 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003545 "line" : 291,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003546 "column" : 8,
3547 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
3548 }
3549 },
3550 {
3551 "op" : "assign",
3552 "parameters" : [
3553 {
3554 "type" : "field",
3555 "value" : ["vlan_tag", "eth_type"]
3556 },
3557 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003558 "type" : "hexstr",
3559 "value" : "0x8100"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003560 }
3561 ],
3562 "source_info" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003563 "filename" : "include/control/../define.p4",
3564 "line" : 111,
3565 "column" : 31,
3566 "source_fragment" : "0x8100; ..."
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003567 }
3568 },
3569 {
3570 "op" : "assign",
3571 "parameters" : [
3572 {
3573 "type" : "field",
3574 "value" : ["vlan_tag", "vlan_id"]
3575 },
3576 {
3577 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003578 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003579 }
3580 ],
3581 "source_info" : {
3582 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003583 "line" : 293,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003584 "column" : 8,
3585 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
3586 }
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003587 }
3588 ]
3589 },
3590 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07003591 "name" : "FabricEgress.egress_next.push_vlan",
Daniele Morob3d199b2019-11-01 14:01:46 -07003592 "id" : 55,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003593 "runtime_data" : [],
3594 "primitives" : [
3595 {
3596 "op" : "add_header",
3597 "parameters" : [
3598 {
3599 "type" : "header",
3600 "value" : "vlan_tag"
3601 }
3602 ],
3603 "source_info" : {
3604 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003605 "line" : 289,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003606 "column" : 8,
3607 "source_fragment" : "hdr.vlan_tag.setValid()"
3608 }
3609 },
3610 {
3611 "op" : "assign",
3612 "parameters" : [
3613 {
3614 "type" : "field",
3615 "value" : ["vlan_tag", "cfi"]
3616 },
3617 {
3618 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003619 "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"]
Daniele Moro7c3a0022019-07-12 13:38:34 -07003620 }
3621 ],
3622 "source_info" : {
3623 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003624 "line" : 290,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003625 "column" : 8,
3626 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
3627 }
3628 },
3629 {
3630 "op" : "assign",
3631 "parameters" : [
3632 {
3633 "type" : "field",
3634 "value" : ["vlan_tag", "pri"]
3635 },
3636 {
3637 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003638 "value" : ["scalars", "fabric_metadata_t._vlan_pri2"]
Daniele Moro7c3a0022019-07-12 13:38:34 -07003639 }
3640 ],
3641 "source_info" : {
3642 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003643 "line" : 291,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003644 "column" : 8,
3645 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
3646 }
3647 },
3648 {
3649 "op" : "assign",
3650 "parameters" : [
3651 {
3652 "type" : "field",
3653 "value" : ["vlan_tag", "eth_type"]
3654 },
3655 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003656 "type" : "hexstr",
3657 "value" : "0x8100"
Daniele Moro7c3a0022019-07-12 13:38:34 -07003658 }
3659 ],
3660 "source_info" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003661 "filename" : "include/control/../define.p4",
3662 "line" : 111,
3663 "column" : 31,
3664 "source_fragment" : "0x8100; ..."
Daniele Moro7c3a0022019-07-12 13:38:34 -07003665 }
3666 },
3667 {
3668 "op" : "assign",
3669 "parameters" : [
3670 {
3671 "type" : "field",
3672 "value" : ["vlan_tag", "vlan_id"]
3673 },
3674 {
3675 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003676 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Daniele Moro7c3a0022019-07-12 13:38:34 -07003677 }
3678 ],
3679 "source_info" : {
3680 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003681 "line" : 293,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003682 "column" : 8,
3683 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
3684 }
Daniele Moro7c3a0022019-07-12 13:38:34 -07003685 }
3686 ]
3687 },
3688 {
3689 "name" : "FabricEgress.egress_next.push_inner_vlan",
Daniele Morob3d199b2019-11-01 14:01:46 -07003690 "id" : 56,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003691 "runtime_data" : [],
3692 "primitives" : [
3693 {
3694 "op" : "add_header",
3695 "parameters" : [
3696 {
3697 "type" : "header",
3698 "value" : "inner_vlan_tag"
3699 }
3700 ],
3701 "source_info" : {
3702 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003703 "line" : 300,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003704 "column" : 8,
3705 "source_fragment" : "hdr.inner_vlan_tag.setValid()"
3706 }
3707 },
3708 {
3709 "op" : "assign",
3710 "parameters" : [
3711 {
3712 "type" : "field",
3713 "value" : ["inner_vlan_tag", "cfi"]
3714 },
3715 {
3716 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003717 "value" : ["scalars", "fabric_metadata_t._inner_vlan_cfi7"]
Daniele Moro7c3a0022019-07-12 13:38:34 -07003718 }
3719 ],
3720 "source_info" : {
3721 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003722 "line" : 301,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003723 "column" : 8,
3724 "source_fragment" : "hdr.inner_vlan_tag.cfi = fabric_metadata.inner_vlan_cfi; ..."
3725 }
3726 },
3727 {
3728 "op" : "assign",
3729 "parameters" : [
3730 {
3731 "type" : "field",
3732 "value" : ["inner_vlan_tag", "pri"]
3733 },
3734 {
3735 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003736 "value" : ["scalars", "fabric_metadata_t._inner_vlan_pri6"]
Daniele Moro7c3a0022019-07-12 13:38:34 -07003737 }
3738 ],
3739 "source_info" : {
3740 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003741 "line" : 302,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003742 "column" : 8,
3743 "source_fragment" : "hdr.inner_vlan_tag.pri = fabric_metadata.inner_vlan_pri; ..."
3744 }
3745 },
3746 {
3747 "op" : "assign",
3748 "parameters" : [
3749 {
3750 "type" : "field",
3751 "value" : ["inner_vlan_tag", "vlan_id"]
3752 },
3753 {
3754 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003755 "value" : ["scalars", "fabric_metadata_t._inner_vlan_id5"]
Daniele Moro7c3a0022019-07-12 13:38:34 -07003756 }
3757 ],
3758 "source_info" : {
3759 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003760 "line" : 303,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003761 "column" : 8,
3762 "source_fragment" : "hdr.inner_vlan_tag.vlan_id = fabric_metadata.inner_vlan_id; ..."
3763 }
3764 },
3765 {
3766 "op" : "assign",
3767 "parameters" : [
3768 {
3769 "type" : "field",
3770 "value" : ["inner_vlan_tag", "eth_type"]
3771 },
3772 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003773 "type" : "hexstr",
3774 "value" : "0x8100"
Daniele Moro7c3a0022019-07-12 13:38:34 -07003775 }
3776 ],
3777 "source_info" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003778 "filename" : "include/control/../define.p4",
3779 "line" : 111,
3780 "column" : 31,
3781 "source_fragment" : "0x8100; ..."
Daniele Moro7c3a0022019-07-12 13:38:34 -07003782 }
3783 },
3784 {
3785 "op" : "assign",
3786 "parameters" : [
3787 {
3788 "type" : "field",
3789 "value" : ["vlan_tag", "eth_type"]
3790 },
3791 {
3792 "type" : "hexstr",
3793 "value" : "0x8100"
3794 }
3795 ],
3796 "source_info" : {
3797 "filename" : "include/control/../define.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003798 "line" : 111,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003799 "column" : 31,
3800 "source_fragment" : "0x8100; ..."
3801 }
3802 }
3803 ]
3804 },
3805 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003806 "name" : "FabricEgress.egress_next.pop_vlan",
Daniele Morob3d199b2019-11-01 14:01:46 -07003807 "id" : 57,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003808 "runtime_data" : [],
3809 "primitives" : [
3810 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003811 "op" : "remove_header",
3812 "parameters" : [
3813 {
3814 "type" : "header",
3815 "value" : "vlan_tag"
3816 }
3817 ],
3818 "source_info" : {
3819 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003820 "line" : 316,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003821 "column" : 8,
3822 "source_fragment" : "hdr.vlan_tag.setInvalid()"
3823 }
3824 }
3825 ]
3826 },
3827 {
Daniele Morob3d199b2019-11-01 14:01:46 -07003828 "name" : "act_14",
3829 "id" : 58,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003830 "runtime_data" : [],
3831 "primitives" : [
3832 {
3833 "op" : "exit",
3834 "parameters" : [],
3835 "source_info" : {
3836 "filename" : "include/control/packetio.p4",
3837 "line" : 41,
3838 "column" : 12,
3839 "source_fragment" : "exit"
3840 }
3841 }
3842 ]
3843 },
3844 {
Daniele Morob3d199b2019-11-01 14:01:46 -07003845 "name" : "act_15",
3846 "id" : 59,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003847 "runtime_data" : [],
3848 "primitives" : [
3849 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003850 "op" : "add_header",
3851 "parameters" : [
3852 {
3853 "type" : "header",
3854 "value" : "packet_in"
3855 }
3856 ],
3857 "source_info" : {
3858 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003859 "line" : 44,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003860 "column" : 12,
3861 "source_fragment" : "hdr.packet_in.setValid()"
3862 }
3863 },
3864 {
3865 "op" : "assign",
3866 "parameters" : [
3867 {
3868 "type" : "field",
3869 "value" : ["packet_in", "ingress_port"]
3870 },
3871 {
3872 "type" : "field",
3873 "value" : ["standard_metadata", "ingress_port"]
3874 }
3875 ],
3876 "source_info" : {
3877 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003878 "line" : 45,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003879 "column" : 12,
3880 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
3881 }
3882 },
3883 {
3884 "op" : "exit",
3885 "parameters" : [],
3886 "source_info" : {
3887 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003888 "line" : 47,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003889 "column" : 12,
3890 "source_fragment" : "exit"
3891 }
3892 }
3893 ]
3894 },
3895 {
Daniele Morob3d199b2019-11-01 14:01:46 -07003896 "name" : "act_16",
3897 "id" : 60,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003898 "runtime_data" : [],
3899 "primitives" : [
3900 {
3901 "op" : "mark_to_drop",
3902 "parameters" : [
3903 {
3904 "type" : "header",
3905 "value" : "standard_metadata"
3906 }
3907 ],
3908 "source_info" : {
3909 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003910 "line" : 337,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003911 "column" : 12,
3912 "source_fragment" : "mark_to_drop(standard_metadata)"
3913 }
3914 }
3915 ]
3916 },
3917 {
Daniele Morob3d199b2019-11-01 14:01:46 -07003918 "name" : "act_17",
3919 "id" : 61,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003920 "runtime_data" : [],
3921 "primitives" : [
3922 {
3923 "op" : "assign",
3924 "parameters" : [
3925 {
3926 "type" : "field",
3927 "value" : ["scalars", "egress_next_tmp"]
3928 },
3929 {
3930 "type" : "expression",
3931 "value" : {
3932 "type" : "expression",
3933 "value" : {
3934 "op" : "b2d",
3935 "left" : null,
3936 "right" : {
3937 "type" : "bool",
3938 "value" : true
3939 }
3940 }
3941 }
3942 }
3943 ]
3944 }
3945 ]
3946 },
3947 {
Daniele Morob3d199b2019-11-01 14:01:46 -07003948 "name" : "act_18",
3949 "id" : 62,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003950 "runtime_data" : [],
3951 "primitives" : [
3952 {
3953 "op" : "assign",
3954 "parameters" : [
3955 {
3956 "type" : "field",
3957 "value" : ["scalars", "egress_next_tmp"]
3958 },
3959 {
3960 "type" : "expression",
3961 "value" : {
3962 "type" : "expression",
3963 "value" : {
3964 "op" : "b2d",
3965 "left" : null,
3966 "right" : {
3967 "type" : "bool",
3968 "value" : false
3969 }
3970 }
3971 }
3972 }
3973 ]
3974 }
3975 ]
3976 },
3977 {
Daniele Morob3d199b2019-11-01 14:01:46 -07003978 "name" : "act_19",
3979 "id" : 63,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003980 "runtime_data" : [],
3981 "primitives" : [
3982 {
3983 "op" : "remove_header",
3984 "parameters" : [
3985 {
3986 "type" : "header",
3987 "value" : "inner_vlan_tag"
3988 }
3989 ],
3990 "source_info" : {
3991 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003992 "line" : 353,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003993 "column" : 12,
3994 "source_fragment" : "hdr.inner_vlan_tag.setInvalid()"
3995 }
3996 }
3997 ]
3998 },
3999 {
Daniele Morob3d199b2019-11-01 14:01:46 -07004000 "name" : "act_20",
4001 "id" : 64,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004002 "runtime_data" : [],
4003 "primitives" : [
4004 {
4005 "op" : "mark_to_drop",
4006 "parameters" : [
4007 {
4008 "type" : "header",
4009 "value" : "standard_metadata"
4010 }
4011 ],
4012 "source_info" : {
4013 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004014 "line" : 370,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004015 "column" : 35,
4016 "source_fragment" : "mark_to_drop(standard_metadata)"
4017 }
4018 }
4019 ]
4020 },
4021 {
Daniele Morob3d199b2019-11-01 14:01:46 -07004022 "name" : "act_21",
4023 "id" : 65,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004024 "runtime_data" : [],
4025 "primitives" : [
4026 {
4027 "op" : "assign",
4028 "parameters" : [
4029 {
4030 "type" : "field",
4031 "value" : ["mpls", "ttl"]
4032 },
4033 {
4034 "type" : "expression",
4035 "value" : {
4036 "type" : "expression",
4037 "value" : {
4038 "op" : "&",
4039 "left" : {
4040 "type" : "expression",
4041 "value" : {
4042 "op" : "+",
4043 "left" : {
4044 "type" : "field",
4045 "value" : ["mpls", "ttl"]
4046 },
4047 "right" : {
4048 "type" : "hexstr",
4049 "value" : "0xff"
4050 }
4051 }
4052 },
4053 "right" : {
4054 "type" : "hexstr",
4055 "value" : "0xff"
4056 }
4057 }
4058 }
4059 }
4060 ],
4061 "source_info" : {
4062 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004063 "line" : 369,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004064 "column" : 12,
4065 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
4066 }
4067 }
4068 ]
4069 },
4070 {
Daniele Morob3d199b2019-11-01 14:01:46 -07004071 "name" : "act_22",
4072 "id" : 66,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004073 "runtime_data" : [],
4074 "primitives" : [
4075 {
4076 "op" : "mark_to_drop",
4077 "parameters" : [
4078 {
4079 "type" : "header",
4080 "value" : "standard_metadata"
4081 }
4082 ],
4083 "source_info" : {
4084 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004085 "line" : 374,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004086 "column" : 39,
4087 "source_fragment" : "mark_to_drop(standard_metadata)"
4088 }
4089 }
4090 ]
4091 },
4092 {
Daniele Morob3d199b2019-11-01 14:01:46 -07004093 "name" : "act_23",
4094 "id" : 67,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004095 "runtime_data" : [],
4096 "primitives" : [
4097 {
4098 "op" : "assign",
4099 "parameters" : [
4100 {
4101 "type" : "field",
4102 "value" : ["ipv4", "ttl"]
4103 },
4104 {
4105 "type" : "expression",
4106 "value" : {
4107 "type" : "expression",
4108 "value" : {
4109 "op" : "&",
4110 "left" : {
4111 "type" : "expression",
4112 "value" : {
4113 "op" : "+",
4114 "left" : {
4115 "type" : "field",
4116 "value" : ["ipv4", "ttl"]
4117 },
4118 "right" : {
4119 "type" : "hexstr",
4120 "value" : "0xff"
4121 }
4122 }
4123 },
4124 "right" : {
4125 "type" : "hexstr",
4126 "value" : "0xff"
4127 }
4128 }
4129 }
4130 }
4131 ],
4132 "source_info" : {
4133 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004134 "line" : 373,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004135 "column" : 16,
4136 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
4137 }
4138 }
4139 ]
4140 }
4141 ],
4142 "pipelines" : [
4143 {
4144 "name" : "ingress",
4145 "id" : 0,
4146 "source_info" : {
4147 "filename" : "fabric.p4",
4148 "line" : 46,
4149 "column" : 8,
4150 "source_fragment" : "FabricIngress"
4151 },
4152 "init_table" : "node_2",
4153 "tables" : [
4154 {
4155 "name" : "tbl_act",
4156 "id" : 0,
4157 "source_info" : {
4158 "filename" : "include/control/packetio.p4",
4159 "line" : 25,
4160 "column" : 42,
4161 "source_fragment" : "= hdr.packet_out.egress_port; ..."
4162 },
4163 "key" : [],
4164 "match_type" : "exact",
4165 "type" : "simple",
4166 "max_size" : 1024,
4167 "with_counters" : false,
4168 "support_timeout" : false,
4169 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004170 "action_ids" : [35],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004171 "actions" : ["act"],
4172 "base_default_next" : "node_4",
4173 "next_tables" : {
4174 "act" : "node_4"
4175 },
4176 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004177 "action_id" : 35,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004178 "action_const" : true,
4179 "action_data" : [],
4180 "action_entry_const" : true
4181 }
4182 },
4183 {
4184 "name" : "tbl_act_0",
4185 "id" : 1,
4186 "source_info" : {
4187 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004188 "line" : 111,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004189 "column" : 36,
4190 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004191 },
4192 "key" : [],
4193 "match_type" : "exact",
4194 "type" : "simple",
4195 "max_size" : 1024,
4196 "with_counters" : false,
4197 "support_timeout" : false,
4198 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004199 "action_ids" : [36],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004200 "actions" : ["act_0"],
4201 "base_default_next" : "node_6",
4202 "next_tables" : {
4203 "act_0" : "node_6"
4204 },
4205 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004206 "action_id" : 36,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004207 "action_const" : true,
4208 "action_data" : [],
4209 "action_entry_const" : true
4210 }
4211 },
4212 {
4213 "name" : "tbl_act_1",
4214 "id" : 2,
4215 "source_info" : {
4216 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004217 "line" : 117,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004218 "column" : 42,
4219 "source_fragment" : "= hdr.inner_vlan_tag.vlan_id; ..."
4220 },
4221 "key" : [],
4222 "match_type" : "exact",
4223 "type" : "simple",
4224 "max_size" : 1024,
4225 "with_counters" : false,
4226 "support_timeout" : false,
4227 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004228 "action_ids" : [37],
Daniele Moro7c3a0022019-07-12 13:38:34 -07004229 "actions" : ["act_1"],
4230 "base_default_next" : "node_8",
4231 "next_tables" : {
4232 "act_1" : "node_8"
4233 },
4234 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004235 "action_id" : 37,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004236 "action_const" : true,
4237 "action_data" : [],
4238 "action_entry_const" : true
4239 }
4240 },
4241 {
4242 "name" : "tbl_act_2",
4243 "id" : 3,
4244 "source_info" : {
4245 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004246 "line" : 127,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004247 "column" : 37,
4248 "source_fragment" : "="
4249 },
4250 "key" : [],
4251 "match_type" : "exact",
4252 "type" : "simple",
4253 "max_size" : 1024,
4254 "with_counters" : false,
4255 "support_timeout" : false,
4256 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004257 "action_ids" : [38],
Daniele Moro7c3a0022019-07-12 13:38:34 -07004258 "actions" : ["act_2"],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004259 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
4260 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004261 "act_2" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004262 },
4263 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004264 "action_id" : 38,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004265 "action_const" : true,
4266 "action_data" : [],
4267 "action_entry_const" : true
4268 }
4269 },
4270 {
4271 "name" : "FabricIngress.filtering.ingress_port_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07004272 "id" : 4,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004273 "source_info" : {
4274 "filename" : "include/control/filtering.p4",
4275 "line" : 53,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004276 "column" : 10,
4277 "source_fragment" : "ingress_port_vlan"
4278 },
4279 "key" : [
4280 {
4281 "match_type" : "exact",
4282 "name" : "ig_port",
4283 "target" : ["standard_metadata", "ingress_port"],
4284 "mask" : null
4285 },
4286 {
4287 "match_type" : "exact",
4288 "name" : "vlan_is_valid",
4289 "target" : ["vlan_tag", "$valid$"],
4290 "mask" : null
4291 },
4292 {
4293 "match_type" : "ternary",
4294 "name" : "vlan_id",
4295 "target" : ["vlan_tag", "vlan_id"],
4296 "mask" : null
Daniele Moro7c3a0022019-07-12 13:38:34 -07004297 },
4298 {
4299 "match_type" : "ternary",
4300 "name" : "inner_vlan_id",
4301 "target" : ["inner_vlan_tag", "vlan_id"],
4302 "mask" : null
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004303 }
4304 ],
4305 "match_type" : "ternary",
4306 "type" : "simple",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004307 "max_size" : 8192,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004308 "with_counters" : true,
4309 "support_timeout" : false,
4310 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004311 "action_ids" : [16, 17, 18],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004312 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
4313 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
4314 "next_tables" : {
4315 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
4316 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
4317 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
4318 },
4319 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004320 "action_id" : 16,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004321 "action_const" : true,
4322 "action_data" : [],
4323 "action_entry_const" : true
4324 }
4325 },
4326 {
4327 "name" : "FabricIngress.filtering.fwd_classifier",
Daniele Moro5a2de712019-09-24 14:34:07 -07004328 "id" : 5,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004329 "source_info" : {
4330 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004331 "line" : 92,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004332 "column" : 10,
4333 "source_fragment" : "fwd_classifier"
4334 },
4335 "key" : [
4336 {
4337 "match_type" : "exact",
4338 "name" : "ig_port",
4339 "target" : ["standard_metadata", "ingress_port"],
4340 "mask" : null
4341 },
4342 {
4343 "match_type" : "ternary",
4344 "name" : "eth_dst",
4345 "target" : ["ethernet", "dst_addr"],
4346 "mask" : null
4347 },
4348 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004349 "match_type" : "ternary",
4350 "name" : "eth_type",
4351 "target" : ["eth_type", "value"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07004352 "mask" : null
4353 },
4354 {
4355 "match_type" : "exact",
Daniele Moro5a2de712019-09-24 14:34:07 -07004356 "name" : "ip_eth_type",
4357 "target" : ["scalars", "fabric_metadata_t._ip_eth_type0"],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004358 "mask" : null
4359 }
4360 ],
4361 "match_type" : "ternary",
4362 "type" : "simple",
4363 "max_size" : 1024,
4364 "with_counters" : true,
4365 "support_timeout" : false,
4366 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004367 "action_ids" : [19],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004368 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004369 "base_default_next" : "node_12",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004370 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004371 "FabricIngress.filtering.set_forwarding_type" : "node_12"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004372 },
4373 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004374 "action_id" : 19,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004375 "action_const" : true,
4376 "action_data" : ["0x0"],
4377 "action_entry_const" : true
4378 }
4379 },
4380 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004381 "name" : "FabricIngress.forwarding.bridging",
Daniele Moro5a2de712019-09-24 14:34:07 -07004382 "id" : 6,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004383 "source_info" : {
4384 "filename" : "include/control/forwarding.p4",
4385 "line" : 46,
4386 "column" : 10,
4387 "source_fragment" : "bridging"
4388 },
4389 "key" : [
4390 {
4391 "match_type" : "exact",
4392 "name" : "vlan_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07004393 "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004394 "mask" : null
4395 },
4396 {
4397 "match_type" : "ternary",
4398 "name" : "eth_dst",
4399 "target" : ["ethernet", "dst_addr"],
4400 "mask" : null
4401 }
4402 ],
4403 "match_type" : "ternary",
4404 "type" : "simple",
4405 "max_size" : 1024,
4406 "with_counters" : true,
4407 "support_timeout" : false,
4408 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004409 "action_ids" : [20, 2],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004410 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
4411 "base_default_next" : "FabricIngress.acl.acl",
4412 "next_tables" : {
4413 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.acl.acl",
4414 "nop" : "FabricIngress.acl.acl"
4415 },
4416 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004417 "action_id" : 2,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004418 "action_const" : true,
4419 "action_data" : [],
4420 "action_entry_const" : true
4421 }
4422 },
4423 {
4424 "name" : "FabricIngress.forwarding.mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07004425 "id" : 7,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004426 "source_info" : {
4427 "filename" : "include/control/forwarding.p4",
4428 "line" : 71,
4429 "column" : 10,
4430 "source_fragment" : "mpls"
4431 },
4432 "key" : [
4433 {
4434 "match_type" : "exact",
4435 "name" : "mpls_label",
Daniele Moro5a2de712019-09-24 14:34:07 -07004436 "target" : ["scalars", "fabric_metadata_t._mpls_label8"],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004437 "mask" : null
4438 }
4439 ],
4440 "match_type" : "exact",
4441 "type" : "simple",
4442 "max_size" : 1024,
4443 "with_counters" : true,
4444 "support_timeout" : false,
4445 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004446 "action_ids" : [21, 3],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004447 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
4448 "base_default_next" : "FabricIngress.acl.acl",
4449 "next_tables" : {
4450 "FabricIngress.forwarding.pop_mpls_and_next" : "FabricIngress.acl.acl",
4451 "nop" : "FabricIngress.acl.acl"
4452 },
4453 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004454 "action_id" : 3,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004455 "action_const" : true,
4456 "action_data" : [],
4457 "action_entry_const" : true
4458 }
4459 },
4460 {
4461 "name" : "FabricIngress.forwarding.routing_v4",
Daniele Moro5a2de712019-09-24 14:34:07 -07004462 "id" : 8,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004463 "source_info" : {
4464 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07004465 "line" : 108,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004466 "column" : 10,
4467 "source_fragment" : "routing_v4"
4468 },
4469 "key" : [
4470 {
4471 "match_type" : "lpm",
4472 "name" : "ipv4_dst",
4473 "target" : ["ipv4", "dst_addr"],
4474 "mask" : null
4475 }
4476 ],
4477 "match_type" : "lpm",
4478 "type" : "simple",
4479 "max_size" : 1024,
Daniele Moro5a2de712019-09-24 14:34:07 -07004480 "with_counters" : false,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004481 "support_timeout" : false,
4482 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004483 "action_ids" : [22, 23, 4],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004484 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
4485 "base_default_next" : "FabricIngress.acl.acl",
4486 "next_tables" : {
4487 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.acl.acl",
4488 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.acl.acl",
4489 "nop" : "FabricIngress.acl.acl"
4490 },
4491 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004492 "action_id" : 4,
CyberHasHe9ba39c2019-10-11 05:59:12 +08004493 "action_const" : false,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004494 "action_data" : [],
CyberHasHe9ba39c2019-10-11 05:59:12 +08004495 "action_entry_const" : false
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004496 }
4497 },
4498 {
4499 "name" : "FabricIngress.acl.acl",
Daniele Moro5a2de712019-09-24 14:34:07 -07004500 "id" : 9,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004501 "source_info" : {
4502 "filename" : "include/control/acl.p4",
4503 "line" : 60,
4504 "column" : 10,
4505 "source_fragment" : "acl"
4506 },
4507 "key" : [
4508 {
4509 "match_type" : "ternary",
4510 "name" : "ig_port",
4511 "target" : ["standard_metadata", "ingress_port"],
4512 "mask" : null
4513 },
4514 {
4515 "match_type" : "ternary",
4516 "name" : "ip_proto",
Daniele Moro5a2de712019-09-24 14:34:07 -07004517 "target" : ["scalars", "fabric_metadata_t._ip_proto16"],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004518 "mask" : null
4519 },
4520 {
4521 "match_type" : "ternary",
4522 "name" : "l4_sport",
Daniele Moro5a2de712019-09-24 14:34:07 -07004523 "target" : ["scalars", "fabric_metadata_t._l4_sport17"],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004524 "mask" : null
4525 },
4526 {
4527 "match_type" : "ternary",
4528 "name" : "l4_dport",
Daniele Moro5a2de712019-09-24 14:34:07 -07004529 "target" : ["scalars", "fabric_metadata_t._l4_dport18"],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004530 "mask" : null
4531 },
4532 {
4533 "match_type" : "ternary",
4534 "name" : "eth_src",
4535 "target" : ["ethernet", "dst_addr"],
4536 "mask" : null
4537 },
4538 {
4539 "match_type" : "ternary",
4540 "name" : "eth_dst",
4541 "target" : ["ethernet", "src_addr"],
4542 "mask" : null
4543 },
4544 {
4545 "match_type" : "ternary",
4546 "name" : "vlan_id",
4547 "target" : ["vlan_tag", "vlan_id"],
4548 "mask" : null
4549 },
4550 {
4551 "match_type" : "ternary",
4552 "name" : "eth_type",
Daniele Moro5a2de712019-09-24 14:34:07 -07004553 "target" : ["eth_type", "value"],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004554 "mask" : null
4555 },
4556 {
4557 "match_type" : "ternary",
4558 "name" : "ipv4_src",
4559 "target" : ["ipv4", "src_addr"],
4560 "mask" : null
4561 },
4562 {
4563 "match_type" : "ternary",
4564 "name" : "ipv4_dst",
4565 "target" : ["ipv4", "dst_addr"],
4566 "mask" : null
4567 },
4568 {
4569 "match_type" : "ternary",
4570 "name" : "icmp_type",
4571 "target" : ["icmp", "icmp_type"],
4572 "mask" : null
4573 },
4574 {
4575 "match_type" : "ternary",
4576 "name" : "icmp_code",
4577 "target" : ["icmp", "icmp_code"],
4578 "mask" : null
4579 }
4580 ],
4581 "match_type" : "ternary",
4582 "type" : "simple",
4583 "max_size" : 1024,
4584 "with_counters" : true,
4585 "support_timeout" : false,
4586 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004587 "action_ids" : [24, 25, 26, 27, 28],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004588 "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 -07004589 "base_default_next" : "node_20",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004590 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004591 "FabricIngress.acl.set_next_id_acl" : "node_20",
4592 "FabricIngress.acl.punt_to_cpu" : "node_20",
4593 "FabricIngress.acl.set_clone_session_id" : "node_20",
4594 "FabricIngress.acl.drop" : "node_20",
4595 "FabricIngress.acl.nop_acl" : "node_20"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004596 },
4597 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004598 "action_id" : 28,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004599 "action_const" : true,
4600 "action_data" : [],
4601 "action_entry_const" : true
4602 }
4603 },
4604 {
4605 "name" : "FabricIngress.next.hashed",
Daniele Moro5a2de712019-09-24 14:34:07 -07004606 "id" : 10,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004607 "source_info" : {
4608 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004609 "line" : 202,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004610 "column" : 10,
4611 "source_fragment" : "hashed"
4612 },
4613 "key" : [
4614 {
4615 "match_type" : "exact",
4616 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07004617 "target" : ["scalars", "fabric_metadata_t._next_id13"],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004618 "mask" : null
4619 }
4620 ],
4621 "match_type" : "exact",
4622 "type" : "indirect_ws",
4623 "action_profile" : "FabricIngress.next.hashed_selector",
4624 "max_size" : 1024,
4625 "with_counters" : true,
4626 "support_timeout" : false,
4627 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004628 "action_ids" : [31, 32, 33, 6],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004629 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
4630 "base_default_next" : "FabricIngress.next.multicast",
4631 "next_tables" : {
4632 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
4633 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
4634 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
4635 "nop" : "FabricIngress.next.multicast"
4636 }
4637 },
4638 {
4639 "name" : "FabricIngress.next.multicast",
Daniele Moro5a2de712019-09-24 14:34:07 -07004640 "id" : 11,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004641 "source_info" : {
4642 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004643 "line" : 236,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004644 "column" : 10,
4645 "source_fragment" : "multicast"
4646 },
4647 "key" : [
4648 {
4649 "match_type" : "exact",
4650 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07004651 "target" : ["scalars", "fabric_metadata_t._next_id13"],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004652 "mask" : null
4653 }
4654 ],
4655 "match_type" : "exact",
4656 "type" : "simple",
4657 "max_size" : 1024,
4658 "with_counters" : true,
4659 "support_timeout" : false,
4660 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004661 "action_ids" : [34, 7],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004662 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
4663 "base_default_next" : "FabricIngress.next.next_vlan",
4664 "next_tables" : {
4665 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
4666 "nop" : "FabricIngress.next.next_vlan"
4667 },
4668 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004669 "action_id" : 7,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004670 "action_const" : true,
4671 "action_data" : [],
4672 "action_entry_const" : true
4673 }
4674 },
4675 {
4676 "name" : "FabricIngress.next.next_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07004677 "id" : 12,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004678 "source_info" : {
4679 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004680 "line" : 86,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004681 "column" : 10,
4682 "source_fragment" : "next_vlan"
4683 },
4684 "key" : [
4685 {
4686 "match_type" : "exact",
4687 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07004688 "target" : ["scalars", "fabric_metadata_t._next_id13"],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004689 "mask" : null
4690 }
4691 ],
4692 "match_type" : "exact",
4693 "type" : "simple",
4694 "max_size" : 1024,
4695 "with_counters" : true,
4696 "support_timeout" : false,
4697 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004698 "action_ids" : [29, 30, 5],
Daniele Moro7c3a0022019-07-12 13:38:34 -07004699 "actions" : ["FabricIngress.next.set_vlan", "FabricIngress.next.set_double_vlan", "nop"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004700 "base_default_next" : "node_24",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004701 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004702 "FabricIngress.next.set_vlan" : "node_24",
4703 "FabricIngress.next.set_double_vlan" : "node_24",
4704 "nop" : "node_24"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004705 },
4706 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004707 "action_id" : 5,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004708 "action_const" : true,
4709 "action_data" : [],
4710 "action_entry_const" : true
4711 }
4712 },
4713 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004714 "name" : "tbl_act_3",
4715 "id" : 13,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004716 "source_info" : {
4717 "filename" : "include/control/port_counter.p4",
4718 "line" : 31,
4719 "column" : 12,
4720 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
4721 },
4722 "key" : [],
4723 "match_type" : "exact",
4724 "type" : "simple",
4725 "max_size" : 1024,
4726 "with_counters" : false,
4727 "support_timeout" : false,
4728 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004729 "action_ids" : [39],
4730 "actions" : ["act_3"],
4731 "base_default_next" : "node_26",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004732 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004733 "act_3" : "node_26"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004734 },
4735 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004736 "action_id" : 39,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004737 "action_const" : true,
4738 "action_data" : [],
4739 "action_entry_const" : true
4740 }
4741 },
4742 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004743 "name" : "tbl_act_4",
4744 "id" : 14,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004745 "source_info" : {
4746 "filename" : "include/control/port_counter.p4",
4747 "line" : 34,
4748 "column" : 12,
4749 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
4750 },
4751 "key" : [],
4752 "match_type" : "exact",
4753 "type" : "simple",
4754 "max_size" : 1024,
4755 "with_counters" : false,
4756 "support_timeout" : false,
4757 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004758 "action_ids" : [40],
4759 "actions" : ["act_4"],
Daniele Morob3d199b2019-11-01 14:01:46 -07004760 "base_default_next" : "FabricIngress.bng_ingress.t_line_map",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004761 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07004762 "act_4" : "FabricIngress.bng_ingress.t_line_map"
Daniele Moro7c3a0022019-07-12 13:38:34 -07004763 },
4764 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004765 "action_id" : 40,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004766 "action_const" : true,
4767 "action_data" : [],
4768 "action_entry_const" : true
4769 }
4770 },
4771 {
Daniele Morob3d199b2019-11-01 14:01:46 -07004772 "name" : "FabricIngress.bng_ingress.t_line_map",
Daniele Moro5a2de712019-09-24 14:34:07 -07004773 "id" : 15,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004774 "source_info" : {
4775 "filename" : "include/bng.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004776 "line" : 320,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004777 "column" : 14,
4778 "source_fragment" : "t_line_map"
4779 },
4780 "key" : [
4781 {
4782 "match_type" : "exact",
4783 "name" : "s_tag",
Daniele Morob3d199b2019-11-01 14:01:46 -07004784 "target" : ["scalars", "fabric_metadata_t._bng_s_tag23"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07004785 "mask" : null
4786 },
4787 {
4788 "match_type" : "exact",
4789 "name" : "c_tag",
Daniele Morob3d199b2019-11-01 14:01:46 -07004790 "target" : ["scalars", "fabric_metadata_t._bng_c_tag24"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07004791 "mask" : null
4792 }
4793 ],
4794 "match_type" : "exact",
4795 "type" : "simple",
4796 "max_size" : 8192,
4797 "with_counters" : false,
4798 "support_timeout" : false,
4799 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004800 "action_ids" : [15],
4801 "actions" : ["FabricIngress.bng_ingress.set_line"],
Daniele Morob3d199b2019-11-01 14:01:46 -07004802 "base_default_next" : "node_29",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004803 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07004804 "FabricIngress.bng_ingress.set_line" : "node_29"
Daniele Moro7c3a0022019-07-12 13:38:34 -07004805 },
4806 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004807 "action_id" : 15,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004808 "action_const" : true,
Daniele Moro5a2de712019-09-24 14:34:07 -07004809 "action_data" : ["0x0"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07004810 "action_entry_const" : true
4811 }
4812 },
4813 {
Daniele Morob3d199b2019-11-01 14:01:46 -07004814 "name" : "tbl_act_5",
4815 "id" : 16,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004816 "source_info" : {
4817 "filename" : "include/bng.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004818 "line" : 339,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004819 "column" : 31,
4820 "source_fragment" : "="
4821 },
4822 "key" : [],
4823 "match_type" : "exact",
4824 "type" : "simple",
4825 "max_size" : 1024,
4826 "with_counters" : false,
4827 "support_timeout" : false,
4828 "direct_meters" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07004829 "action_ids" : [43],
4830 "actions" : ["act_7"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07004831 "base_default_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp",
4832 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07004833 "act_7" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp"
Daniele Moro7c3a0022019-07-12 13:38:34 -07004834 },
4835 "default_entry" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07004836 "action_id" : 43,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004837 "action_const" : true,
4838 "action_data" : [],
4839 "action_entry_const" : true
4840 }
4841 },
4842 {
4843 "name" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp",
Daniele Morob3d199b2019-11-01 14:01:46 -07004844 "id" : 17,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004845 "source_info" : {
4846 "filename" : "include/bng.p4",
4847 "line" : 48,
4848 "column" : 10,
4849 "source_fragment" : "t_pppoe_cp"
4850 },
4851 "key" : [
4852 {
4853 "match_type" : "exact",
4854 "name" : "pppoe_code",
4855 "target" : ["pppoe", "code"],
4856 "mask" : null
4857 },
4858 {
4859 "match_type" : "ternary",
4860 "name" : "pppoe_protocol",
4861 "target" : ["pppoe", "protocol"],
4862 "mask" : null
4863 }
4864 ],
4865 "match_type" : "ternary",
4866 "type" : "simple",
4867 "max_size" : 16,
4868 "with_counters" : false,
4869 "support_timeout" : false,
4870 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004871 "action_ids" : [8, 0],
Daniele Moro7c3a0022019-07-12 13:38:34 -07004872 "actions" : ["FabricIngress.bng_ingress.upstream.punt_to_cpu", "nop"],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004873 "base_default_next" : null,
4874 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07004875 "__HIT__" : "tbl_act_6",
4876 "__MISS__" : "tbl_act_7"
Daniele Moro7c3a0022019-07-12 13:38:34 -07004877 },
4878 "default_entry" : {
4879 "action_id" : 0,
4880 "action_const" : true,
4881 "action_data" : [],
4882 "action_entry_const" : true
4883 }
4884 },
4885 {
Daniele Morob3d199b2019-11-01 14:01:46 -07004886 "name" : "tbl_act_6",
4887 "id" : 18,
4888 "key" : [],
4889 "match_type" : "exact",
4890 "type" : "simple",
4891 "max_size" : 1024,
4892 "with_counters" : false,
4893 "support_timeout" : false,
4894 "direct_meters" : null,
4895 "action_ids" : [41],
4896 "actions" : ["act_5"],
4897 "base_default_next" : "node_34",
4898 "next_tables" : {
4899 "act_5" : "node_34"
4900 },
4901 "default_entry" : {
4902 "action_id" : 41,
4903 "action_const" : true,
4904 "action_data" : [],
4905 "action_entry_const" : true
4906 }
4907 },
4908 {
4909 "name" : "tbl_act_7",
4910 "id" : 19,
4911 "key" : [],
4912 "match_type" : "exact",
4913 "type" : "simple",
4914 "max_size" : 1024,
4915 "with_counters" : false,
4916 "support_timeout" : false,
4917 "direct_meters" : null,
4918 "action_ids" : [42],
4919 "actions" : ["act_6"],
4920 "base_default_next" : "node_34",
4921 "next_tables" : {
4922 "act_6" : "node_34"
4923 },
4924 "default_entry" : {
4925 "action_id" : 42,
4926 "action_const" : true,
4927 "action_data" : [],
4928 "action_entry_const" : true
4929 }
4930 },
4931 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004932 "name" : "tbl_act_8",
4933 "id" : 20,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004934 "source_info" : {
4935 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07004936 "line" : 123,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004937 "column" : 12,
4938 "source_fragment" : "return"
4939 },
4940 "key" : [],
4941 "match_type" : "exact",
4942 "type" : "simple",
4943 "max_size" : 1024,
4944 "with_counters" : false,
4945 "support_timeout" : false,
4946 "direct_meters" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07004947 "action_ids" : [44],
4948 "actions" : ["act_8"],
4949 "base_default_next" : "node_36",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004950 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07004951 "act_8" : "node_36"
Daniele Moro7c3a0022019-07-12 13:38:34 -07004952 },
4953 "default_entry" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07004954 "action_id" : 44,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004955 "action_const" : true,
4956 "action_data" : [],
4957 "action_entry_const" : true
4958 }
4959 },
4960 {
4961 "name" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004962 "id" : 21,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004963 "source_info" : {
4964 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07004965 "line" : 84,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004966 "column" : 10,
4967 "source_fragment" : "t_pppoe_term_v4"
4968 },
4969 "key" : [
4970 {
4971 "match_type" : "exact",
4972 "name" : "line_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07004973 "target" : ["scalars", "fabric_metadata_t._bng_line_id20"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07004974 "mask" : null
4975 },
4976 {
4977 "match_type" : "exact",
4978 "name" : "ipv4_src",
4979 "target" : ["ipv4", "src_addr"],
4980 "mask" : null
4981 },
4982 {
4983 "match_type" : "exact",
4984 "name" : "pppoe_session_id",
4985 "target" : ["pppoe", "session_id"],
4986 "mask" : null
4987 }
4988 ],
4989 "match_type" : "exact",
4990 "type" : "simple",
4991 "max_size" : 32768,
4992 "with_counters" : false,
4993 "support_timeout" : false,
4994 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004995 "action_ids" : [10, 9],
Daniele Moro7c3a0022019-07-12 13:38:34 -07004996 "actions" : ["FabricIngress.bng_ingress.upstream.term_enabled_v4", "FabricIngress.bng_ingress.upstream.term_disabled"],
4997 "base_default_next" : null,
4998 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07004999 "FabricIngress.bng_ingress.upstream.term_disabled" : "tbl_act_9",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005000 "FabricIngress.bng_ingress.upstream.term_enabled_v4" : null
5001 },
5002 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005003 "action_id" : 9,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005004 "action_const" : true,
5005 "action_data" : [],
5006 "action_entry_const" : true
5007 }
5008 },
5009 {
Daniele Morob3d199b2019-11-01 14:01:46 -07005010 "name" : "tbl_act_9",
5011 "id" : 22,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005012 "source_info" : {
5013 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005014 "line" : 128,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005015 "column" : 20,
5016 "source_fragment" : "c_dropped.count(fmeta.bng.line_id)"
5017 },
5018 "key" : [],
5019 "match_type" : "exact",
5020 "type" : "simple",
5021 "max_size" : 1024,
5022 "with_counters" : false,
5023 "support_timeout" : false,
5024 "direct_meters" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07005025 "action_ids" : [45],
5026 "actions" : ["act_9"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07005027 "base_default_next" : null,
5028 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005029 "act_9" : null
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005030 },
5031 "default_entry" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005032 "action_id" : 45,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005033 "action_const" : true,
5034 "action_data" : [],
5035 "action_entry_const" : true
5036 }
Daniele Moro7c3a0022019-07-12 13:38:34 -07005037 },
5038 {
5039 "name" : "FabricIngress.bng_ingress.downstream.t_line_session_map",
Daniele Morob3d199b2019-11-01 14:01:46 -07005040 "id" : 23,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005041 "source_info" : {
5042 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005043 "line" : 166,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005044 "column" : 10,
5045 "source_fragment" : "t_line_session_map"
5046 },
5047 "key" : [
5048 {
5049 "match_type" : "exact",
5050 "name" : "line_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07005051 "target" : ["scalars", "fabric_metadata_t._bng_line_id20"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07005052 "mask" : null
5053 }
5054 ],
5055 "match_type" : "exact",
5056 "type" : "simple",
5057 "max_size" : 8192,
5058 "with_counters" : false,
5059 "support_timeout" : false,
5060 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07005061 "action_ids" : [1, 11, 12],
Daniele Moro7c3a0022019-07-12 13:38:34 -07005062 "actions" : ["nop", "FabricIngress.bng_ingress.downstream.set_session", "FabricIngress.bng_ingress.downstream.drop"],
5063 "base_default_next" : null,
5064 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005065 "__HIT__" : "tbl_act_10",
5066 "__MISS__" : "tbl_act_11"
Daniele Moro7c3a0022019-07-12 13:38:34 -07005067 },
5068 "default_entry" : {
5069 "action_id" : 1,
5070 "action_const" : true,
5071 "action_data" : [],
5072 "action_entry_const" : true
5073 }
5074 },
5075 {
Daniele Morob3d199b2019-11-01 14:01:46 -07005076 "name" : "tbl_act_10",
5077 "id" : 24,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005078 "key" : [],
5079 "match_type" : "exact",
5080 "type" : "simple",
5081 "max_size" : 1024,
5082 "with_counters" : false,
5083 "support_timeout" : false,
5084 "direct_meters" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07005085 "action_ids" : [46],
5086 "actions" : ["act_10"],
5087 "base_default_next" : "node_43",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005088 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005089 "act_10" : "node_43"
Daniele Moro7c3a0022019-07-12 13:38:34 -07005090 },
5091 "default_entry" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005092 "action_id" : 46,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005093 "action_const" : true,
5094 "action_data" : [],
5095 "action_entry_const" : true
5096 }
5097 },
5098 {
Daniele Morob3d199b2019-11-01 14:01:46 -07005099 "name" : "tbl_act_11",
5100 "id" : 25,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005101 "key" : [],
5102 "match_type" : "exact",
5103 "type" : "simple",
5104 "max_size" : 1024,
5105 "with_counters" : false,
5106 "support_timeout" : false,
5107 "direct_meters" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07005108 "action_ids" : [47],
5109 "actions" : ["act_11"],
5110 "base_default_next" : "node_43",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005111 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005112 "act_11" : "node_43"
Daniele Moro7c3a0022019-07-12 13:38:34 -07005113 },
5114 "default_entry" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005115 "action_id" : 47,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005116 "action_const" : true,
5117 "action_data" : [],
5118 "action_entry_const" : true
5119 }
5120 },
5121 {
5122 "name" : "FabricIngress.bng_ingress.downstream.t_qos_v4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005123 "id" : 26,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005124 "source_info" : {
5125 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005126 "line" : 191,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005127 "column" : 10,
5128 "source_fragment" : "t_qos_v4"
5129 },
5130 "key" : [
5131 {
5132 "match_type" : "ternary",
5133 "name" : "line_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07005134 "target" : ["scalars", "fabric_metadata_t._bng_line_id20"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07005135 "mask" : null
5136 },
5137 {
5138 "match_type" : "lpm",
5139 "name" : "ipv4_src",
5140 "target" : ["ipv4", "src_addr"],
5141 "mask" : null
5142 },
5143 {
5144 "match_type" : "ternary",
5145 "name" : "ipv4_dscp",
5146 "target" : ["ipv4", "dscp"],
5147 "mask" : null
5148 },
5149 {
5150 "match_type" : "ternary",
5151 "name" : "ipv4_ecn",
5152 "target" : ["ipv4", "ecn"],
5153 "mask" : null
5154 }
5155 ],
5156 "match_type" : "ternary",
5157 "type" : "simple",
5158 "max_size" : 256,
5159 "with_counters" : false,
5160 "support_timeout" : false,
5161 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07005162 "action_ids" : [13, 14],
Daniele Moro7c3a0022019-07-12 13:38:34 -07005163 "actions" : ["FabricIngress.bng_ingress.downstream.qos_prio", "FabricIngress.bng_ingress.downstream.qos_besteff"],
5164 "base_default_next" : null,
5165 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005166 "FabricIngress.bng_ingress.downstream.qos_prio" : "tbl_act_12",
5167 "FabricIngress.bng_ingress.downstream.qos_besteff" : "tbl_act_13"
Daniele Moro7c3a0022019-07-12 13:38:34 -07005168 },
5169 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005170 "action_id" : 14,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005171 "action_const" : true,
5172 "action_data" : [],
5173 "action_entry_const" : true
5174 }
5175 },
5176 {
Daniele Morob3d199b2019-11-01 14:01:46 -07005177 "name" : "tbl_act_12",
5178 "id" : 27,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005179 "source_info" : {
5180 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005181 "line" : 235,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005182 "column" : 24,
5183 "source_fragment" : "m_prio.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
5184 },
5185 "key" : [],
5186 "match_type" : "exact",
5187 "type" : "simple",
5188 "max_size" : 1024,
5189 "with_counters" : false,
5190 "support_timeout" : false,
5191 "direct_meters" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07005192 "action_ids" : [48],
5193 "actions" : ["act_12"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07005194 "base_default_next" : null,
5195 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005196 "act_12" : null
Daniele Moro7c3a0022019-07-12 13:38:34 -07005197 },
5198 "default_entry" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005199 "action_id" : 48,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005200 "action_const" : true,
5201 "action_data" : [],
5202 "action_entry_const" : true
5203 }
5204 },
5205 {
Daniele Morob3d199b2019-11-01 14:01:46 -07005206 "name" : "tbl_act_13",
5207 "id" : 28,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005208 "source_info" : {
5209 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005210 "line" : 238,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005211 "column" : 24,
5212 "source_fragment" : "m_besteff.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
5213 },
5214 "key" : [],
5215 "match_type" : "exact",
5216 "type" : "simple",
5217 "max_size" : 1024,
5218 "with_counters" : false,
5219 "support_timeout" : false,
5220 "direct_meters" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07005221 "action_ids" : [49],
5222 "actions" : ["act_13"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07005223 "base_default_next" : null,
5224 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005225 "act_13" : null
Daniele Moro7c3a0022019-07-12 13:38:34 -07005226 },
5227 "default_entry" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005228 "action_id" : 49,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005229 "action_const" : true,
5230 "action_data" : [],
5231 "action_entry_const" : true
5232 }
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005233 }
5234 ],
5235 "action_profiles" : [
5236 {
5237 "name" : "FabricIngress.next.hashed_selector",
5238 "id" : 0,
5239 "source_info" : {
5240 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005241 "line" : 183,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005242 "column" : 57,
5243 "source_fragment" : "hashed_selector"
5244 },
5245 "max_size" : 1024,
5246 "selector" : {
5247 "algo" : "crc16",
5248 "input" : [
5249 {
5250 "type" : "field",
5251 "value" : ["ipv4", "dst_addr"]
5252 },
5253 {
5254 "type" : "field",
5255 "value" : ["ipv4", "src_addr"]
5256 },
5257 {
5258 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005259 "value" : ["scalars", "fabric_metadata_t._ip_proto16"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005260 },
5261 {
5262 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005263 "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005264 },
5265 {
5266 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005267 "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005268 }
5269 ]
5270 }
5271 }
5272 ],
5273 "conditionals" : [
5274 {
5275 "name" : "node_2",
5276 "id" : 0,
5277 "source_info" : {
5278 "filename" : "include/control/packetio.p4",
5279 "line" : 24,
5280 "column" : 12,
5281 "source_fragment" : "hdr.packet_out.isValid()"
5282 },
5283 "expression" : {
5284 "type" : "expression",
5285 "value" : {
5286 "op" : "d2b",
5287 "left" : null,
5288 "right" : {
5289 "type" : "field",
5290 "value" : ["packet_out", "$valid$"]
5291 }
5292 }
5293 },
5294 "true_next" : "tbl_act",
5295 "false_next" : "node_4"
5296 },
5297 {
5298 "name" : "node_4",
5299 "id" : 1,
5300 "source_info" : {
5301 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005302 "line" : 110,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005303 "column" : 12,
5304 "source_fragment" : "hdr.vlan_tag.isValid()"
5305 },
5306 "expression" : {
5307 "type" : "expression",
5308 "value" : {
5309 "op" : "d2b",
5310 "left" : null,
5311 "right" : {
5312 "type" : "field",
5313 "value" : ["vlan_tag", "$valid$"]
5314 }
5315 }
5316 },
5317 "true_next" : "tbl_act_0",
5318 "false_next" : "node_6"
5319 },
5320 {
5321 "name" : "node_6",
5322 "id" : 2,
5323 "source_info" : {
5324 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005325 "line" : 116,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005326 "column" : 12,
5327 "source_fragment" : "hdr.inner_vlan_tag.isValid()"
5328 },
5329 "expression" : {
5330 "type" : "expression",
5331 "value" : {
5332 "op" : "d2b",
5333 "left" : null,
5334 "right" : {
5335 "type" : "field",
5336 "value" : ["inner_vlan_tag", "$valid$"]
5337 }
5338 }
5339 },
5340 "true_next" : "tbl_act_1",
5341 "false_next" : "node_8"
5342 },
5343 {
5344 "name" : "node_8",
5345 "id" : 3,
5346 "source_info" : {
5347 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005348 "line" : 122,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005349 "column" : 12,
5350 "source_fragment" : "!hdr.mpls.isValid()"
5351 },
5352 "expression" : {
5353 "type" : "expression",
5354 "value" : {
5355 "op" : "not",
5356 "left" : null,
5357 "right" : {
5358 "type" : "expression",
5359 "value" : {
5360 "op" : "d2b",
5361 "left" : null,
5362 "right" : {
5363 "type" : "field",
5364 "value" : ["mpls", "$valid$"]
5365 }
5366 }
5367 }
5368 }
5369 },
Daniele Moro7c3a0022019-07-12 13:38:34 -07005370 "true_next" : "tbl_act_2",
Daniele Moro5a2de712019-09-24 14:34:07 -07005371 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005372 },
5373 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005374 "name" : "node_12",
Daniele Moro5a2de712019-09-24 14:34:07 -07005375 "id" : 4,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005376 "source_info" : {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005377 "filename" : "fabric.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005378 "line" : 71,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005379 "column" : 12,
5380 "source_fragment" : "fabric_metadata.skip_forwarding == false"
5381 },
5382 "expression" : {
5383 "type" : "expression",
5384 "value" : {
5385 "op" : "==",
5386 "left" : {
5387 "type" : "expression",
5388 "value" : {
5389 "op" : "d2b",
5390 "left" : null,
5391 "right" : {
5392 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005393 "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005394 }
5395 }
5396 },
5397 "right" : {
5398 "type" : "bool",
5399 "value" : false
5400 }
5401 }
5402 },
Daniele Moro5a2de712019-09-24 14:34:07 -07005403 "true_next" : "node_13",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005404 "false_next" : "FabricIngress.acl.acl"
5405 },
5406 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005407 "name" : "node_13",
5408 "id" : 5,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005409 "source_info" : {
5410 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005411 "line" : 150,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005412 "column" : 12,
5413 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
5414 },
5415 "expression" : {
5416 "type" : "expression",
5417 "value" : {
5418 "op" : "==",
5419 "left" : {
5420 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005421 "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005422 },
5423 "right" : {
5424 "type" : "hexstr",
5425 "value" : "0x00"
5426 }
5427 }
5428 },
5429 "true_next" : "FabricIngress.forwarding.bridging",
Daniele Moro5a2de712019-09-24 14:34:07 -07005430 "false_next" : "node_15"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005431 },
5432 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005433 "name" : "node_15",
5434 "id" : 6,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005435 "source_info" : {
5436 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005437 "line" : 151,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005438 "column" : 17,
5439 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
5440 },
5441 "expression" : {
5442 "type" : "expression",
5443 "value" : {
5444 "op" : "==",
5445 "left" : {
5446 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005447 "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005448 },
5449 "right" : {
5450 "type" : "hexstr",
5451 "value" : "0x01"
5452 }
5453 }
5454 },
5455 "true_next" : "FabricIngress.forwarding.mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07005456 "false_next" : "node_17"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005457 },
5458 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005459 "name" : "node_17",
5460 "id" : 7,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005461 "source_info" : {
5462 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005463 "line" : 152,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005464 "column" : 17,
5465 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
5466 },
5467 "expression" : {
5468 "type" : "expression",
5469 "value" : {
5470 "op" : "==",
5471 "left" : {
5472 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005473 "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005474 },
5475 "right" : {
5476 "type" : "hexstr",
5477 "value" : "0x02"
5478 }
5479 }
5480 },
5481 "true_next" : "FabricIngress.forwarding.routing_v4",
5482 "false_next" : "FabricIngress.acl.acl"
5483 },
5484 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005485 "name" : "node_20",
5486 "id" : 8,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005487 "source_info" : {
5488 "filename" : "fabric.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005489 "line" : 75,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005490 "column" : 12,
5491 "source_fragment" : "fabric_metadata.skip_next == false"
5492 },
5493 "expression" : {
5494 "type" : "expression",
5495 "value" : {
5496 "op" : "==",
5497 "left" : {
5498 "type" : "expression",
5499 "value" : {
5500 "op" : "d2b",
5501 "left" : null,
5502 "right" : {
5503 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005504 "value" : ["scalars", "fabric_metadata_t._skip_next11"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005505 }
5506 }
5507 },
5508 "right" : {
5509 "type" : "bool",
5510 "value" : false
5511 }
5512 }
5513 },
Daniele Moro7c3a0022019-07-12 13:38:34 -07005514 "true_next" : "FabricIngress.next.hashed",
Daniele Morob3d199b2019-11-01 14:01:46 -07005515 "false_next" : "FabricIngress.bng_ingress.t_line_map"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005516 },
5517 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005518 "name" : "node_24",
5519 "id" : 9,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005520 "source_info" : {
5521 "filename" : "include/control/port_counter.p4",
5522 "line" : 30,
5523 "column" : 12,
5524 "source_fragment" : "standard_metadata.egress_spec < 511"
5525 },
5526 "expression" : {
5527 "type" : "expression",
5528 "value" : {
5529 "op" : "<",
5530 "left" : {
5531 "type" : "field",
5532 "value" : ["standard_metadata", "egress_spec"]
5533 },
5534 "right" : {
5535 "type" : "hexstr",
5536 "value" : "0x01ff"
5537 }
5538 }
5539 },
Daniele Moro5a2de712019-09-24 14:34:07 -07005540 "true_next" : "tbl_act_3",
5541 "false_next" : "node_26"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005542 },
5543 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005544 "name" : "node_26",
5545 "id" : 10,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005546 "source_info" : {
5547 "filename" : "include/control/port_counter.p4",
5548 "line" : 33,
5549 "column" : 12,
5550 "source_fragment" : "standard_metadata.ingress_port < 511"
5551 },
5552 "expression" : {
5553 "type" : "expression",
5554 "value" : {
5555 "op" : "<",
5556 "left" : {
5557 "type" : "field",
5558 "value" : ["standard_metadata", "ingress_port"]
5559 },
5560 "right" : {
5561 "type" : "hexstr",
5562 "value" : "0x01ff"
5563 }
5564 }
5565 },
Daniele Moro5a2de712019-09-24 14:34:07 -07005566 "true_next" : "tbl_act_4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005567 "false_next" : "FabricIngress.bng_ingress.t_line_map"
Daniele Moro7c3a0022019-07-12 13:38:34 -07005568 },
5569 {
Daniele Morob3d199b2019-11-01 14:01:46 -07005570 "name" : "node_29",
Daniele Moro5a2de712019-09-24 14:34:07 -07005571 "id" : 11,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005572 "source_info" : {
5573 "filename" : "include/bng.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005574 "line" : 338,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005575 "column" : 16,
5576 "source_fragment" : "hdr.pppoe.isValid()"
5577 },
5578 "expression" : {
5579 "type" : "expression",
5580 "value" : {
5581 "op" : "d2b",
5582 "left" : null,
5583 "right" : {
5584 "type" : "field",
5585 "value" : ["pppoe", "$valid$"]
5586 }
5587 }
5588 },
Daniele Morob3d199b2019-11-01 14:01:46 -07005589 "true_next" : "tbl_act_5",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005590 "false_next" : "FabricIngress.bng_ingress.downstream.t_line_session_map"
5591 },
5592 {
Daniele Morob3d199b2019-11-01 14:01:46 -07005593 "name" : "node_34",
5594 "id" : 12,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005595 "expression" : {
5596 "type" : "expression",
5597 "value" : {
5598 "op" : "d2b",
5599 "left" : null,
5600 "right" : {
5601 "type" : "field",
5602 "value" : ["scalars", "bng_ingress_upstream_tmp"]
5603 }
5604 }
5605 },
Daniele Morob3d199b2019-11-01 14:01:46 -07005606 "true_next" : "tbl_act_8",
5607 "false_next" : "node_36"
Daniele Moro7c3a0022019-07-12 13:38:34 -07005608 },
5609 {
Daniele Morob3d199b2019-11-01 14:01:46 -07005610 "name" : "node_36",
5611 "id" : 13,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005612 "expression" : {
5613 "type" : "expression",
5614 "value" : {
5615 "op" : "not",
5616 "left" : null,
5617 "right" : {
5618 "type" : "expression",
5619 "value" : {
5620 "op" : "d2b",
5621 "left" : null,
5622 "right" : {
5623 "type" : "field",
5624 "value" : ["scalars", "bng_ingress_upstream_hasReturned"]
5625 }
5626 }
5627 }
5628 }
5629 },
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005630 "false_next" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07005631 "true_next" : "node_37"
Daniele Moro7c3a0022019-07-12 13:38:34 -07005632 },
5633 {
Daniele Morob3d199b2019-11-01 14:01:46 -07005634 "name" : "node_37",
5635 "id" : 14,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005636 "source_info" : {
5637 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005638 "line" : 125,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005639 "column" : 12,
5640 "source_fragment" : "hdr.ipv4.isValid()"
5641 },
5642 "expression" : {
5643 "type" : "expression",
5644 "value" : {
5645 "op" : "d2b",
5646 "left" : null,
5647 "right" : {
5648 "type" : "field",
5649 "value" : ["ipv4", "$valid$"]
5650 }
5651 }
5652 },
5653 "false_next" : null,
5654 "true_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v4"
5655 },
5656 {
Daniele Morob3d199b2019-11-01 14:01:46 -07005657 "name" : "node_43",
5658 "id" : 15,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005659 "expression" : {
5660 "type" : "expression",
5661 "value" : {
5662 "op" : "d2b",
5663 "left" : null,
5664 "right" : {
5665 "type" : "field",
5666 "value" : ["scalars", "bng_ingress_downstream_tmp"]
5667 }
5668 }
5669 },
5670 "false_next" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07005671 "true_next" : "node_44"
Daniele Moro7c3a0022019-07-12 13:38:34 -07005672 },
5673 {
Daniele Morob3d199b2019-11-01 14:01:46 -07005674 "name" : "node_44",
5675 "id" : 16,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005676 "source_info" : {
5677 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005678 "line" : 232,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005679 "column" : 16,
5680 "source_fragment" : "hdr.ipv4.isValid()"
5681 },
5682 "expression" : {
5683 "type" : "expression",
5684 "value" : {
5685 "op" : "d2b",
5686 "left" : null,
5687 "right" : {
5688 "type" : "field",
5689 "value" : ["ipv4", "$valid$"]
5690 }
5691 }
5692 },
5693 "false_next" : null,
5694 "true_next" : "FabricIngress.bng_ingress.downstream.t_qos_v4"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005695 }
5696 ]
5697 },
5698 {
5699 "name" : "egress",
5700 "id" : 1,
5701 "source_info" : {
5702 "filename" : "fabric.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005703 "line" : 93,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005704 "column" : 8,
5705 "source_fragment" : "FabricEgress"
5706 },
Daniele Morob3d199b2019-11-01 14:01:46 -07005707 "init_table" : "node_50",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005708 "tables" : [
5709 {
Daniele Morob3d199b2019-11-01 14:01:46 -07005710 "name" : "tbl_act_14",
5711 "id" : 29,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005712 "source_info" : {
5713 "filename" : "include/control/packetio.p4",
5714 "line" : 41,
5715 "column" : 12,
5716 "source_fragment" : "exit"
5717 },
5718 "key" : [],
5719 "match_type" : "exact",
5720 "type" : "simple",
5721 "max_size" : 1024,
5722 "with_counters" : false,
5723 "support_timeout" : false,
5724 "direct_meters" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07005725 "action_ids" : [58],
5726 "actions" : ["act_14"],
5727 "base_default_next" : "node_52",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005728 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005729 "act_14" : "node_52"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005730 },
5731 "default_entry" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005732 "action_id" : 58,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005733 "action_const" : true,
5734 "action_data" : [],
5735 "action_entry_const" : true
5736 }
5737 },
5738 {
Daniele Morob3d199b2019-11-01 14:01:46 -07005739 "name" : "tbl_act_15",
5740 "id" : 30,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005741 "source_info" : {
5742 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005743 "line" : 44,
5744 "column" : 12,
5745 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005746 },
5747 "key" : [],
5748 "match_type" : "exact",
5749 "type" : "simple",
5750 "max_size" : 1024,
5751 "with_counters" : false,
5752 "support_timeout" : false,
5753 "direct_meters" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07005754 "action_ids" : [59],
5755 "actions" : ["act_15"],
5756 "base_default_next" : "node_54",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005757 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005758 "act_15" : "node_54"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005759 },
5760 "default_entry" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005761 "action_id" : 59,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005762 "action_const" : true,
5763 "action_data" : [],
5764 "action_entry_const" : true
5765 }
5766 },
5767 {
Daniele Morob3d199b2019-11-01 14:01:46 -07005768 "name" : "tbl_act_16",
5769 "id" : 31,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005770 "source_info" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005771 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005772 "line" : 337,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005773 "column" : 12,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005774 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005775 },
5776 "key" : [],
5777 "match_type" : "exact",
5778 "type" : "simple",
5779 "max_size" : 1024,
5780 "with_counters" : false,
5781 "support_timeout" : false,
5782 "direct_meters" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07005783 "action_ids" : [60],
5784 "actions" : ["act_16"],
5785 "base_default_next" : "node_56",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005786 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005787 "act_16" : "node_56"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005788 },
5789 "default_entry" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005790 "action_id" : 60,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005791 "action_const" : true,
5792 "action_data" : [],
5793 "action_entry_const" : true
5794 }
5795 },
5796 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005797 "name" : "tbl_egress_next_pop_mpls_if_present",
Daniele Morob3d199b2019-11-01 14:01:46 -07005798 "id" : 32,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005799 "source_info" : {
5800 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005801 "line" : 341,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005802 "column" : 36,
5803 "source_fragment" : "pop_mpls_if_present()"
5804 },
5805 "key" : [],
5806 "match_type" : "exact",
5807 "type" : "simple",
5808 "max_size" : 1024,
5809 "with_counters" : false,
5810 "support_timeout" : false,
5811 "direct_meters" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07005812 "action_ids" : [52],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005813 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
Daniele Morob3d199b2019-11-01 14:01:46 -07005814 "base_default_next" : "node_60",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005815 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005816 "FabricEgress.egress_next.pop_mpls_if_present" : "node_60"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005817 },
5818 "default_entry" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005819 "action_id" : 52,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005820 "action_const" : true,
5821 "action_data" : [],
5822 "action_entry_const" : true
5823 }
5824 },
5825 {
5826 "name" : "tbl_egress_next_set_mpls",
Daniele Morob3d199b2019-11-01 14:01:46 -07005827 "id" : 33,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005828 "source_info" : {
5829 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005830 "line" : 343,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005831 "column" : 12,
5832 "source_fragment" : "set_mpls()"
5833 },
5834 "key" : [],
5835 "match_type" : "exact",
5836 "type" : "simple",
5837 "max_size" : 1024,
5838 "with_counters" : false,
5839 "support_timeout" : false,
5840 "direct_meters" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07005841 "action_ids" : [53],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005842 "actions" : ["FabricEgress.egress_next.set_mpls"],
Daniele Morob3d199b2019-11-01 14:01:46 -07005843 "base_default_next" : "node_60",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005844 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005845 "FabricEgress.egress_next.set_mpls" : "node_60"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005846 },
5847 "default_entry" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005848 "action_id" : 53,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005849 "action_const" : true,
5850 "action_data" : [],
5851 "action_entry_const" : true
5852 }
5853 },
5854 {
5855 "name" : "tbl_egress_next_push_vlan",
Daniele Morob3d199b2019-11-01 14:01:46 -07005856 "id" : 34,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005857 "source_info" : {
5858 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005859 "line" : 349,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005860 "column" : 12,
5861 "source_fragment" : "push_vlan()"
5862 },
5863 "key" : [],
5864 "match_type" : "exact",
5865 "type" : "simple",
5866 "max_size" : 1024,
5867 "with_counters" : false,
5868 "support_timeout" : false,
5869 "direct_meters" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07005870 "action_ids" : [54],
Daniele Moro7c3a0022019-07-12 13:38:34 -07005871 "actions" : ["FabricEgress.egress_next.push_vlan"],
5872 "base_default_next" : "tbl_egress_next_push_inner_vlan",
5873 "next_tables" : {
5874 "FabricEgress.egress_next.push_vlan" : "tbl_egress_next_push_inner_vlan"
5875 },
5876 "default_entry" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005877 "action_id" : 54,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005878 "action_const" : true,
5879 "action_data" : [],
5880 "action_entry_const" : true
5881 }
5882 },
5883 {
5884 "name" : "tbl_egress_next_push_inner_vlan",
Daniele Morob3d199b2019-11-01 14:01:46 -07005885 "id" : 35,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005886 "source_info" : {
5887 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005888 "line" : 350,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005889 "column" : 12,
5890 "source_fragment" : "push_inner_vlan()"
5891 },
5892 "key" : [],
5893 "match_type" : "exact",
5894 "type" : "simple",
5895 "max_size" : 1024,
5896 "with_counters" : false,
5897 "support_timeout" : false,
5898 "direct_meters" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07005899 "action_ids" : [56],
Daniele Moro7c3a0022019-07-12 13:38:34 -07005900 "actions" : ["FabricEgress.egress_next.push_inner_vlan"],
Daniele Morob3d199b2019-11-01 14:01:46 -07005901 "base_default_next" : "node_70",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005902 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005903 "FabricEgress.egress_next.push_inner_vlan" : "node_70"
Daniele Moro7c3a0022019-07-12 13:38:34 -07005904 },
5905 "default_entry" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005906 "action_id" : 56,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005907 "action_const" : true,
5908 "action_data" : [],
5909 "action_entry_const" : true
5910 }
5911 },
5912 {
Daniele Morob3d199b2019-11-01 14:01:46 -07005913 "name" : "tbl_act_17",
5914 "id" : 36,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005915 "source_info" : {
5916 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005917 "line" : 353,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005918 "column" : 12,
5919 "source_fragment" : "hdr.inner_vlan_tag.setInvalid()"
5920 },
5921 "key" : [],
5922 "match_type" : "exact",
5923 "type" : "simple",
5924 "max_size" : 1024,
5925 "with_counters" : false,
5926 "support_timeout" : false,
5927 "direct_meters" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07005928 "action_ids" : [63],
5929 "actions" : ["act_19"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07005930 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
5931 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005932 "act_19" : "FabricEgress.egress_next.egress_vlan"
Daniele Moro7c3a0022019-07-12 13:38:34 -07005933 },
5934 "default_entry" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005935 "action_id" : 63,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005936 "action_const" : true,
5937 "action_data" : [],
5938 "action_entry_const" : true
5939 }
5940 },
5941 {
5942 "name" : "FabricEgress.egress_next.egress_vlan",
Daniele Morob3d199b2019-11-01 14:01:46 -07005943 "id" : 37,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005944 "source_info" : {
5945 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005946 "line" : 320,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005947 "column" : 10,
5948 "source_fragment" : "egress_vlan"
5949 },
5950 "key" : [
5951 {
5952 "match_type" : "exact",
5953 "name" : "vlan_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07005954 "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005955 "mask" : null
5956 },
5957 {
5958 "match_type" : "exact",
5959 "name" : "eg_port",
5960 "target" : ["standard_metadata", "egress_port"],
5961 "mask" : null
5962 }
5963 ],
5964 "match_type" : "exact",
5965 "type" : "simple",
5966 "max_size" : 1024,
5967 "with_counters" : true,
5968 "support_timeout" : false,
5969 "direct_meters" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07005970 "action_ids" : [57, 50],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005971 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
5972 "base_default_next" : null,
5973 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005974 "__HIT__" : "tbl_act_18",
5975 "__MISS__" : "tbl_act_19"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005976 },
5977 "default_entry" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005978 "action_id" : 50,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005979 "action_const" : true,
5980 "action_data" : [],
5981 "action_entry_const" : true
5982 }
5983 },
5984 {
Daniele Morob3d199b2019-11-01 14:01:46 -07005985 "name" : "tbl_act_18",
5986 "id" : 38,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005987 "key" : [],
5988 "match_type" : "exact",
5989 "type" : "simple",
5990 "max_size" : 1024,
5991 "with_counters" : false,
5992 "support_timeout" : false,
5993 "direct_meters" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07005994 "action_ids" : [61],
5995 "actions" : ["act_17"],
5996 "base_default_next" : "node_67",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005997 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07005998 "act_17" : "node_67"
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005999 },
6000 "default_entry" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07006001 "action_id" : 61,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006002 "action_const" : true,
6003 "action_data" : [],
6004 "action_entry_const" : true
6005 }
6006 },
6007 {
Daniele Morob3d199b2019-11-01 14:01:46 -07006008 "name" : "tbl_act_19",
6009 "id" : 39,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006010 "key" : [],
6011 "match_type" : "exact",
6012 "type" : "simple",
6013 "max_size" : 1024,
6014 "with_counters" : false,
6015 "support_timeout" : false,
6016 "direct_meters" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07006017 "action_ids" : [62],
6018 "actions" : ["act_18"],
6019 "base_default_next" : "node_67",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006020 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07006021 "act_18" : "node_67"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006022 },
6023 "default_entry" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07006024 "action_id" : 62,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006025 "action_const" : true,
6026 "action_data" : [],
6027 "action_entry_const" : true
6028 }
6029 },
6030 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006031 "name" : "tbl_egress_next_push_vlan_0",
Daniele Morob3d199b2019-11-01 14:01:46 -07006032 "id" : 40,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006033 "source_info" : {
6034 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006035 "line" : 360,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006036 "column" : 20,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006037 "source_fragment" : "push_vlan()"
6038 },
6039 "key" : [],
6040 "match_type" : "exact",
6041 "type" : "simple",
6042 "max_size" : 1024,
6043 "with_counters" : false,
6044 "support_timeout" : false,
6045 "direct_meters" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07006046 "action_ids" : [55],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006047 "actions" : ["FabricEgress.egress_next.push_vlan"],
Daniele Morob3d199b2019-11-01 14:01:46 -07006048 "base_default_next" : "node_70",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006049 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07006050 "FabricEgress.egress_next.push_vlan" : "node_70"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006051 },
6052 "default_entry" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07006053 "action_id" : 55,
6054 "action_const" : true,
6055 "action_data" : [],
6056 "action_entry_const" : true
6057 }
6058 },
6059 {
6060 "name" : "tbl_act_20",
6061 "id" : 41,
6062 "source_info" : {
6063 "filename" : "include/control/next.p4",
6064 "line" : 369,
6065 "column" : 25,
6066 "source_fragment" : "="
6067 },
6068 "key" : [],
6069 "match_type" : "exact",
6070 "type" : "simple",
6071 "max_size" : 1024,
6072 "with_counters" : false,
6073 "support_timeout" : false,
6074 "direct_meters" : null,
6075 "action_ids" : [65],
6076 "actions" : ["act_21"],
6077 "base_default_next" : "node_72",
6078 "next_tables" : {
6079 "act_21" : "node_72"
6080 },
6081 "default_entry" : {
6082 "action_id" : 65,
6083 "action_const" : true,
6084 "action_data" : [],
6085 "action_entry_const" : true
6086 }
6087 },
6088 {
6089 "name" : "tbl_act_21",
6090 "id" : 42,
6091 "source_info" : {
6092 "filename" : "include/control/next.p4",
6093 "line" : 370,
6094 "column" : 35,
6095 "source_fragment" : "mark_to_drop(standard_metadata)"
6096 },
6097 "key" : [],
6098 "match_type" : "exact",
6099 "type" : "simple",
6100 "max_size" : 1024,
6101 "with_counters" : false,
6102 "support_timeout" : false,
6103 "direct_meters" : null,
6104 "action_ids" : [64],
6105 "actions" : ["act_20"],
6106 "base_default_next" : "node_78",
6107 "next_tables" : {
6108 "act_20" : "node_78"
6109 },
6110 "default_entry" : {
6111 "action_id" : 64,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006112 "action_const" : true,
6113 "action_data" : [],
6114 "action_entry_const" : true
6115 }
6116 },
6117 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006118 "name" : "tbl_act_22",
6119 "id" : 43,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006120 "source_info" : {
6121 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006122 "line" : 373,
6123 "column" : 29,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006124 "source_fragment" : "="
6125 },
6126 "key" : [],
6127 "match_type" : "exact",
6128 "type" : "simple",
6129 "max_size" : 1024,
6130 "with_counters" : false,
6131 "support_timeout" : false,
6132 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006133 "action_ids" : [67],
6134 "actions" : ["act_23"],
Daniele Morob3d199b2019-11-01 14:01:46 -07006135 "base_default_next" : "node_76",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006136 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07006137 "act_23" : "node_76"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006138 },
6139 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006140 "action_id" : 67,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006141 "action_const" : true,
6142 "action_data" : [],
6143 "action_entry_const" : true
6144 }
6145 },
6146 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006147 "name" : "tbl_act_23",
6148 "id" : 44,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006149 "source_info" : {
6150 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006151 "line" : 374,
6152 "column" : 39,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006153 "source_fragment" : "mark_to_drop(standard_metadata)"
6154 },
6155 "key" : [],
6156 "match_type" : "exact",
6157 "type" : "simple",
6158 "max_size" : 1024,
6159 "with_counters" : false,
6160 "support_timeout" : false,
6161 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006162 "action_ids" : [66],
6163 "actions" : ["act_22"],
Daniele Morob3d199b2019-11-01 14:01:46 -07006164 "base_default_next" : "node_78",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006165 "next_tables" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07006166 "act_22" : "node_78"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006167 },
6168 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006169 "action_id" : 66,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006170 "action_const" : true,
6171 "action_data" : [],
6172 "action_entry_const" : true
6173 }
6174 },
6175 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006176 "name" : "tbl_bng_egress_downstream_encap_v4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006177 "id" : 45,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006178 "source_info" : {
6179 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006180 "line" : 294,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006181 "column" : 12,
6182 "source_fragment" : "encap_v4()"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006183 },
Daniele Moro7c3a0022019-07-12 13:38:34 -07006184 "key" : [],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006185 "match_type" : "exact",
6186 "type" : "simple",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006187 "max_size" : 1024,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006188 "with_counters" : false,
6189 "support_timeout" : false,
6190 "direct_meters" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07006191 "action_ids" : [51],
Daniele Moro7c3a0022019-07-12 13:38:34 -07006192 "actions" : ["FabricEgress.bng_egress.downstream.encap_v4"],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006193 "base_default_next" : null,
6194 "next_tables" : {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006195 "FabricEgress.bng_egress.downstream.encap_v4" : null
6196 },
6197 "default_entry" : {
Daniele Morob3d199b2019-11-01 14:01:46 -07006198 "action_id" : 51,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006199 "action_const" : true,
6200 "action_data" : [],
6201 "action_entry_const" : true
6202 }
6203 }
6204 ],
6205 "action_profiles" : [],
6206 "conditionals" : [
6207 {
Daniele Morob3d199b2019-11-01 14:01:46 -07006208 "name" : "node_50",
6209 "id" : 17,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006210 "source_info" : {
6211 "filename" : "include/control/packetio.p4",
6212 "line" : 39,
6213 "column" : 12,
6214 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
6215 },
6216 "expression" : {
6217 "type" : "expression",
6218 "value" : {
6219 "op" : "==",
6220 "left" : {
6221 "type" : "expression",
6222 "value" : {
6223 "op" : "d2b",
6224 "left" : null,
6225 "right" : {
6226 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006227 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006228 }
6229 }
6230 },
6231 "right" : {
6232 "type" : "bool",
6233 "value" : true
6234 }
6235 }
6236 },
Daniele Morob3d199b2019-11-01 14:01:46 -07006237 "true_next" : "tbl_act_14",
6238 "false_next" : "node_52"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006239 },
6240 {
Daniele Morob3d199b2019-11-01 14:01:46 -07006241 "name" : "node_52",
6242 "id" : 18,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006243 "source_info" : {
6244 "filename" : "include/control/packetio.p4",
6245 "line" : 43,
6246 "column" : 12,
6247 "source_fragment" : "standard_metadata.egress_port == 255"
6248 },
6249 "expression" : {
6250 "type" : "expression",
6251 "value" : {
6252 "op" : "==",
6253 "left" : {
6254 "type" : "field",
6255 "value" : ["standard_metadata", "egress_port"]
6256 },
6257 "right" : {
6258 "type" : "hexstr",
6259 "value" : "0x00ff"
6260 }
6261 }
6262 },
Daniele Morob3d199b2019-11-01 14:01:46 -07006263 "true_next" : "tbl_act_15",
6264 "false_next" : "node_54"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006265 },
6266 {
Daniele Morob3d199b2019-11-01 14:01:46 -07006267 "name" : "node_54",
6268 "id" : 19,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006269 "source_info" : {
6270 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006271 "line" : 335,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006272 "column" : 12,
6273 "source_fragment" : "fabric_metadata.is_multicast == true ..."
6274 },
6275 "expression" : {
6276 "type" : "expression",
6277 "value" : {
6278 "op" : "and",
6279 "left" : {
6280 "type" : "expression",
6281 "value" : {
6282 "op" : "==",
6283 "left" : {
6284 "type" : "expression",
6285 "value" : {
6286 "op" : "d2b",
6287 "left" : null,
6288 "right" : {
6289 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006290 "value" : ["scalars", "fabric_metadata_t._is_multicast14"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006291 }
6292 }
6293 },
6294 "right" : {
6295 "type" : "bool",
6296 "value" : true
6297 }
6298 }
6299 },
6300 "right" : {
6301 "type" : "expression",
6302 "value" : {
6303 "op" : "==",
6304 "left" : {
6305 "type" : "field",
6306 "value" : ["standard_metadata", "ingress_port"]
6307 },
6308 "right" : {
6309 "type" : "field",
6310 "value" : ["standard_metadata", "egress_port"]
6311 }
6312 }
6313 }
6314 }
6315 },
Daniele Morob3d199b2019-11-01 14:01:46 -07006316 "true_next" : "tbl_act_16",
6317 "false_next" : "node_56"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006318 },
6319 {
Daniele Morob3d199b2019-11-01 14:01:46 -07006320 "name" : "node_56",
6321 "id" : 20,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006322 "source_info" : {
6323 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006324 "line" : 340,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006325 "column" : 12,
6326 "source_fragment" : "fabric_metadata.mpls_label == 0"
6327 },
6328 "expression" : {
6329 "type" : "expression",
6330 "value" : {
6331 "op" : "==",
6332 "left" : {
6333 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006334 "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006335 },
6336 "right" : {
6337 "type" : "hexstr",
6338 "value" : "0x000000"
6339 }
6340 }
6341 },
Daniele Morob3d199b2019-11-01 14:01:46 -07006342 "true_next" : "node_57",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006343 "false_next" : "tbl_egress_next_set_mpls"
6344 },
6345 {
Daniele Morob3d199b2019-11-01 14:01:46 -07006346 "name" : "node_57",
6347 "id" : 21,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006348 "source_info" : {
6349 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006350 "line" : 341,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006351 "column" : 16,
6352 "source_fragment" : "hdr.mpls.isValid()"
6353 },
6354 "expression" : {
6355 "type" : "expression",
6356 "value" : {
6357 "op" : "d2b",
6358 "left" : null,
6359 "right" : {
6360 "type" : "field",
6361 "value" : ["mpls", "$valid$"]
6362 }
6363 }
6364 },
6365 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Daniele Morob3d199b2019-11-01 14:01:46 -07006366 "false_next" : "node_60"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006367 },
6368 {
Daniele Morob3d199b2019-11-01 14:01:46 -07006369 "name" : "node_60",
6370 "id" : 22,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006371 "source_info" : {
6372 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006373 "line" : 347,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006374 "column" : 12,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006375 "source_fragment" : "fabric_metadata.push_double_vlan == true"
6376 },
6377 "expression" : {
6378 "type" : "expression",
6379 "value" : {
6380 "op" : "==",
6381 "left" : {
6382 "type" : "expression",
6383 "value" : {
6384 "op" : "d2b",
6385 "left" : null,
6386 "right" : {
6387 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006388 "value" : ["scalars", "fabric_metadata_t._push_double_vlan4"]
Daniele Moro7c3a0022019-07-12 13:38:34 -07006389 }
6390 }
6391 },
6392 "right" : {
6393 "type" : "bool",
6394 "value" : true
6395 }
6396 }
6397 },
6398 "true_next" : "tbl_egress_next_push_vlan",
Daniele Morob3d199b2019-11-01 14:01:46 -07006399 "false_next" : "tbl_act_17"
Daniele Moro7c3a0022019-07-12 13:38:34 -07006400 },
6401 {
Daniele Morob3d199b2019-11-01 14:01:46 -07006402 "name" : "node_67",
6403 "id" : 23,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006404 "source_info" : {
6405 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006406 "line" : 357,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006407 "column" : 16,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006408 "source_fragment" : "!egress_vlan.apply().hit"
6409 },
6410 "expression" : {
6411 "type" : "expression",
6412 "value" : {
6413 "op" : "not",
6414 "left" : null,
6415 "right" : {
6416 "type" : "expression",
6417 "value" : {
6418 "op" : "d2b",
6419 "left" : null,
6420 "right" : {
6421 "type" : "field",
6422 "value" : ["scalars", "egress_next_tmp"]
6423 }
6424 }
6425 }
6426 }
6427 },
Daniele Morob3d199b2019-11-01 14:01:46 -07006428 "true_next" : "node_68",
6429 "false_next" : "node_70"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006430 },
6431 {
Daniele Morob3d199b2019-11-01 14:01:46 -07006432 "name" : "node_68",
6433 "id" : 24,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006434 "source_info" : {
6435 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006436 "line" : 359,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006437 "column" : 20,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006438 "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
6439 },
6440 "expression" : {
6441 "type" : "expression",
6442 "value" : {
6443 "op" : "!=",
6444 "left" : {
6445 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006446 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006447 },
6448 "right" : {
6449 "type" : "hexstr",
6450 "value" : "0x0ffe"
6451 }
6452 }
6453 },
Daniele Moro7c3a0022019-07-12 13:38:34 -07006454 "true_next" : "tbl_egress_next_push_vlan_0",
Daniele Morob3d199b2019-11-01 14:01:46 -07006455 "false_next" : "node_70"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006456 },
6457 {
Daniele Morob3d199b2019-11-01 14:01:46 -07006458 "name" : "node_70",
6459 "id" : 25,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006460 "source_info" : {
6461 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006462 "line" : 368,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006463 "column" : 12,
6464 "source_fragment" : "hdr.mpls.isValid()"
6465 },
6466 "expression" : {
6467 "type" : "expression",
6468 "value" : {
6469 "op" : "d2b",
6470 "left" : null,
6471 "right" : {
6472 "type" : "field",
6473 "value" : ["mpls", "$valid$"]
6474 }
6475 }
6476 },
Daniele Morob3d199b2019-11-01 14:01:46 -07006477 "true_next" : "tbl_act_20",
6478 "false_next" : "node_74"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006479 },
6480 {
Daniele Morob3d199b2019-11-01 14:01:46 -07006481 "name" : "node_72",
6482 "id" : 26,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006483 "source_info" : {
6484 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006485 "line" : 370,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006486 "column" : 16,
6487 "source_fragment" : "hdr.mpls.ttl == 0"
6488 },
6489 "expression" : {
6490 "type" : "expression",
6491 "value" : {
6492 "op" : "==",
6493 "left" : {
6494 "type" : "field",
6495 "value" : ["mpls", "ttl"]
6496 },
6497 "right" : {
6498 "type" : "hexstr",
6499 "value" : "0x00"
6500 }
6501 }
6502 },
Daniele Morob3d199b2019-11-01 14:01:46 -07006503 "true_next" : "tbl_act_21",
6504 "false_next" : "node_78"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006505 },
6506 {
Daniele Morob3d199b2019-11-01 14:01:46 -07006507 "name" : "node_74",
6508 "id" : 27,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006509 "source_info" : {
6510 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006511 "line" : 372,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006512 "column" : 15,
6513 "source_fragment" : "hdr.ipv4.isValid()"
6514 },
6515 "expression" : {
6516 "type" : "expression",
6517 "value" : {
6518 "op" : "d2b",
6519 "left" : null,
6520 "right" : {
6521 "type" : "field",
6522 "value" : ["ipv4", "$valid$"]
6523 }
6524 }
6525 },
Daniele Morob3d199b2019-11-01 14:01:46 -07006526 "true_next" : "tbl_act_22",
6527 "false_next" : "node_78"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006528 },
6529 {
Daniele Morob3d199b2019-11-01 14:01:46 -07006530 "name" : "node_76",
6531 "id" : 28,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006532 "source_info" : {
6533 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006534 "line" : 374,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006535 "column" : 20,
6536 "source_fragment" : "hdr.ipv4.ttl == 0"
6537 },
6538 "expression" : {
6539 "type" : "expression",
6540 "value" : {
6541 "op" : "==",
6542 "left" : {
6543 "type" : "field",
6544 "value" : ["ipv4", "ttl"]
6545 },
6546 "right" : {
6547 "type" : "hexstr",
6548 "value" : "0x00"
6549 }
6550 }
6551 },
Daniele Morob3d199b2019-11-01 14:01:46 -07006552 "true_next" : "tbl_act_23",
6553 "false_next" : "node_78"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006554 },
6555 {
Daniele Morob3d199b2019-11-01 14:01:46 -07006556 "name" : "node_78",
6557 "id" : 29,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006558 "source_info" : {
6559 "filename" : "include/bng.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006560 "line" : 355,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006561 "column" : 12,
6562 "source_fragment" : "fmeta.bng.type == BNG_TYPE_DOWNSTREAM"
6563 },
6564 "expression" : {
6565 "type" : "expression",
6566 "value" : {
6567 "op" : "==",
6568 "left" : {
6569 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006570 "value" : ["scalars", "fabric_metadata_t._bng_type19"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006571 },
6572 "right" : {
6573 "type" : "hexstr",
6574 "value" : "0x02"
6575 }
6576 }
6577 },
6578 "false_next" : null,
Daniele Morob3d199b2019-11-01 14:01:46 -07006579 "true_next" : "node_79"
Daniele Moro7c3a0022019-07-12 13:38:34 -07006580 },
6581 {
Daniele Morob3d199b2019-11-01 14:01:46 -07006582 "name" : "node_79",
6583 "id" : 30,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006584 "source_info" : {
6585 "filename" : "include/bng.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006586 "line" : 293,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006587 "column" : 12,
6588 "source_fragment" : "hdr.ipv4.isValid()"
6589 },
6590 "expression" : {
6591 "type" : "expression",
6592 "value" : {
6593 "op" : "d2b",
6594 "left" : null,
6595 "right" : {
6596 "type" : "field",
6597 "value" : ["ipv4", "$valid$"]
6598 }
6599 }
6600 },
6601 "false_next" : null,
6602 "true_next" : "tbl_bng_egress_downstream_encap_v4"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006603 }
6604 ]
6605 }
6606 ],
6607 "checksums" : [
6608 {
6609 "name" : "cksum",
6610 "id" : 0,
6611 "source_info" : {
6612 "filename" : "include/checksum.p4",
6613 "line" : 28,
6614 "column" : 8,
6615 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
6616 },
6617 "target" : ["ipv4", "hdr_checksum"],
6618 "type" : "generic",
6619 "calculation" : "calc",
6620 "verify" : false,
6621 "update" : true,
6622 "if_cond" : {
6623 "type" : "expression",
6624 "value" : {
6625 "op" : "d2b",
6626 "left" : null,
6627 "right" : {
6628 "type" : "field",
6629 "value" : ["ipv4", "$valid$"]
6630 }
6631 }
6632 }
6633 },
6634 {
6635 "name" : "cksum_0",
6636 "id" : 1,
6637 "source_info" : {
6638 "filename" : "include/checksum.p4",
6639 "line" : 57,
6640 "column" : 8,
6641 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
6642 },
6643 "target" : ["ipv4", "hdr_checksum"],
6644 "type" : "generic",
6645 "calculation" : "calc_0",
6646 "verify" : true,
6647 "update" : false,
6648 "if_cond" : {
6649 "type" : "expression",
6650 "value" : {
6651 "op" : "d2b",
6652 "left" : null,
6653 "right" : {
6654 "type" : "field",
6655 "value" : ["ipv4", "$valid$"]
6656 }
6657 }
6658 }
6659 }
6660 ],
6661 "force_arith" : [],
6662 "extern_instances" : [],
6663 "field_aliases" : [
6664 [
6665 "queueing_metadata.enq_timestamp",
6666 ["standard_metadata", "enq_timestamp"]
6667 ],
6668 [
6669 "queueing_metadata.enq_qdepth",
6670 ["standard_metadata", "enq_qdepth"]
6671 ],
6672 [
6673 "queueing_metadata.deq_timedelta",
6674 ["standard_metadata", "deq_timedelta"]
6675 ],
6676 [
6677 "queueing_metadata.deq_qdepth",
6678 ["standard_metadata", "deq_qdepth"]
6679 ],
6680 [
6681 "intrinsic_metadata.ingress_global_timestamp",
6682 ["standard_metadata", "ingress_global_timestamp"]
6683 ],
6684 [
6685 "intrinsic_metadata.egress_global_timestamp",
6686 ["standard_metadata", "egress_global_timestamp"]
6687 ],
6688 [
6689 "intrinsic_metadata.lf_field_list",
6690 ["standard_metadata", "lf_field_list"]
6691 ],
6692 [
6693 "intrinsic_metadata.mcast_grp",
6694 ["standard_metadata", "mcast_grp"]
6695 ],
6696 [
6697 "intrinsic_metadata.resubmit_flag",
6698 ["standard_metadata", "resubmit_flag"]
6699 ],
6700 [
6701 "intrinsic_metadata.egress_rid",
6702 ["standard_metadata", "egress_rid"]
6703 ],
6704 [
6705 "intrinsic_metadata.recirculate_flag",
6706 ["standard_metadata", "recirculate_flag"]
6707 ],
6708 [
6709 "intrinsic_metadata.priority",
6710 ["standard_metadata", "priority"]
6711 ]
6712 ],
6713 "program" : "fabric.p4",
6714 "__meta__" : {
6715 "version" : [2, 18],
6716 "compiler" : "https://github.com/p4lang/p4c"
6717 }
6718}