blob: 250c226c4010b3986ab21f21192e26df8082eb5e [file] [log] [blame]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001{
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002 "header_types" : [
3 {
4 "name" : "scalars_0",
5 "id" : 0,
6 "fields" : [
Robert MacDavidde12b982020-07-15 18:38:59 -07007 ["tmp_0", 16, false],
8 ["tmp_1", 16, false],
9 ["tmp_2", 4, false],
10 ["tmp", 32, false],
11 ["tmp_3", 32, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080012 ["spgw_ingress_hasReturned", 1, false],
13 ["egress_next_tmp", 1, false],
Robert MacDavidde12b982020-07-15 18:38:59 -070014 ["spgw_egress_hasReturned", 1, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070015 ["fabric_metadata_t._ip_eth_type0", 16, false],
16 ["fabric_metadata_t._vlan_id1", 12, false],
17 ["fabric_metadata_t._vlan_pri2", 3, false],
18 ["fabric_metadata_t._vlan_cfi3", 1, false],
19 ["fabric_metadata_t._mpls_label4", 20, false],
20 ["fabric_metadata_t._mpls_ttl5", 8, false],
21 ["fabric_metadata_t._skip_forwarding6", 1, false],
22 ["fabric_metadata_t._skip_next7", 1, false],
23 ["fabric_metadata_t._fwd_type8", 3, false],
24 ["fabric_metadata_t._next_id9", 32, false],
25 ["fabric_metadata_t._is_multicast10", 1, false],
26 ["fabric_metadata_t._is_controller_packet_out11", 1, false],
27 ["fabric_metadata_t._ip_proto12", 8, false],
28 ["fabric_metadata_t._l4_sport13", 16, false],
29 ["fabric_metadata_t._l4_dport14", 16, false],
Robert MacDavidbec6b6a2020-05-21 21:32:38 -040030 ["fabric_metadata_t._ipv4_src_addr15", 32, false],
31 ["fabric_metadata_t._ipv4_dst_addr16", 32, false],
Robert MacDavidde12b982020-07-15 18:38:59 -070032 ["fabric_metadata_t._inner_l4_sport17", 16, false],
33 ["fabric_metadata_t._inner_l4_dport18", 16, false],
34 ["fabric_metadata_t._spgw_direction19", 2, false],
35 ["fabric_metadata_t._spgw_ipv4_len20", 16, false],
36 ["fabric_metadata_t._spgw_teid21", 32, false],
37 ["fabric_metadata_t._spgw_tunnel_src_port22", 16, false],
38 ["fabric_metadata_t._spgw_tunnel_src_addr23", 32, false],
39 ["fabric_metadata_t._spgw_tunnel_dst_addr24", 32, false],
40 ["fabric_metadata_t._spgw_ctr_id25", 32, false],
41 ["fabric_metadata_t._spgw_far_id26", 32, false],
42 ["fabric_metadata_t._spgw_src_iface27", 8, false],
43 ["fabric_metadata_t._spgw_skip_spgw28", 1, false],
44 ["fabric_metadata_t._spgw_pdr_hit29", 1, false],
45 ["fabric_metadata_t._spgw_far_dropped30", 1, false],
46 ["fabric_metadata_t._spgw_notify_spgwc31", 1, false],
47 ["fabric_metadata_t._spgw_needs_gtpu_encap32", 1, false],
48 ["fabric_metadata_t._spgw_needs_gtpu_decap33", 1, false],
Robert MacDavidbec6b6a2020-05-21 21:32:38 -040049 ["_padding_0", 6, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080050 ]
51 },
52 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020053 "name" : "standard_metadata",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080054 "id" : 1,
55 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020056 ["ingress_port", 9, false],
57 ["egress_spec", 9, false],
58 ["egress_port", 9, false],
59 ["clone_spec", 32, false],
60 ["instance_type", 32, false],
61 ["drop", 1, false],
62 ["recirculate_port", 16, false],
63 ["packet_length", 32, false],
64 ["enq_timestamp", 32, false],
65 ["enq_qdepth", 19, false],
66 ["deq_timedelta", 32, false],
67 ["deq_qdepth", 19, false],
68 ["ingress_global_timestamp", 48, false],
69 ["egress_global_timestamp", 48, false],
70 ["lf_field_list", 32, false],
71 ["mcast_grp", 16, false],
72 ["resubmit_flag", 32, false],
73 ["egress_rid", 16, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020074 ["recirculate_flag", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070075 ["checksum_error", 1, false],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -070076 ["parser_error", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070077 ["priority", 3, false],
78 ["_padding", 2, false]
Carmelo Cascone6af4e172018-06-15 16:01:30 +020079 ]
80 },
81 {
82 "name" : "ethernet_t",
83 "id" : 2,
84 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080085 ["dst_addr", 48, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070086 ["src_addr", 48, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080087 ]
88 },
89 {
90 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020091 "id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080092 "fields" : [
Daniele Moro5a2de712019-09-24 14:34:07 -070093 ["eth_type", 16, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080094 ["pri", 3, false],
95 ["cfi", 1, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070096 ["vlan_id", 12, false]
97 ]
98 },
99 {
100 "name" : "eth_type_t",
101 "id" : 4,
102 "fields" : [
103 ["value", 16, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800104 ]
105 },
106 {
107 "name" : "mpls_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700108 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800109 "fields" : [
110 ["label", 20, false],
111 ["tc", 3, false],
112 ["bos", 1, false],
113 ["ttl", 8, false]
114 ]
115 },
116 {
117 "name" : "ipv4_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700118 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800119 "fields" : [
120 ["version", 4, false],
121 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900122 ["dscp", 6, false],
123 ["ecn", 2, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800124 ["total_len", 16, false],
125 ["identification", 16, false],
126 ["flags", 3, false],
127 ["frag_offset", 13, false],
128 ["ttl", 8, false],
129 ["protocol", 8, false],
130 ["hdr_checksum", 16, false],
131 ["src_addr", 32, false],
132 ["dst_addr", 32, false]
133 ]
134 },
135 {
136 "name" : "udp_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700137 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800138 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800139 ["sport", 16, false],
140 ["dport", 16, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800141 ["len", 16, false],
142 ["checksum", 16, false]
143 ]
144 },
145 {
146 "name" : "gtpu_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700147 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800148 "fields" : [
149 ["version", 3, false],
150 ["pt", 1, false],
151 ["spare", 1, false],
152 ["ex_flag", 1, false],
153 ["seq_flag", 1, false],
154 ["npdu_flag", 1, false],
155 ["msgtype", 8, false],
156 ["msglen", 16, false],
157 ["teid", 32, false]
158 ]
159 },
160 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800161 "name" : "tcp_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700162 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800163 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800164 ["sport", 16, false],
165 ["dport", 16, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800166 ["seq_no", 32, false],
167 ["ack_no", 32, false],
168 ["data_offset", 4, false],
169 ["res", 3, false],
170 ["ecn", 3, false],
171 ["ctrl", 6, false],
172 ["window", 16, false],
173 ["checksum", 16, false],
174 ["urgent_ptr", 16, false]
175 ]
176 },
177 {
178 "name" : "icmp_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700179 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800180 "fields" : [
181 ["icmp_type", 8, false],
182 ["icmp_code", 8, false],
183 ["checksum", 16, false],
184 ["identifier", 16, false],
185 ["sequence_number", 16, false],
186 ["timestamp", 64, false]
187 ]
188 },
189 {
190 "name" : "packet_out_header_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700191 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800192 "fields" : [
193 ["egress_port", 9, false],
194 ["_pad", 7, false]
195 ]
196 },
197 {
198 "name" : "packet_in_header_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700199 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800200 "fields" : [
201 ["ingress_port", 9, false],
202 ["_pad", 7, false]
203 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800204 }
205 ],
206 "headers" : [
207 {
208 "name" : "scalars",
209 "id" : 0,
210 "header_type" : "scalars_0",
211 "metadata" : true,
212 "pi_omit" : true
213 },
214 {
215 "name" : "standard_metadata",
216 "id" : 1,
217 "header_type" : "standard_metadata",
218 "metadata" : true,
219 "pi_omit" : true
220 },
221 {
222 "name" : "ethernet",
223 "id" : 2,
224 "header_type" : "ethernet_t",
225 "metadata" : false,
226 "pi_omit" : true
227 },
228 {
229 "name" : "vlan_tag",
230 "id" : 3,
231 "header_type" : "vlan_tag_t",
232 "metadata" : false,
233 "pi_omit" : true
234 },
235 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800236 "name" : "inner_vlan_tag",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800237 "id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800238 "header_type" : "vlan_tag_t",
239 "metadata" : false,
240 "pi_omit" : true
241 },
242 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700243 "name" : "eth_type",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800244 "id" : 5,
Daniele Moro5a2de712019-09-24 14:34:07 -0700245 "header_type" : "eth_type_t",
246 "metadata" : false,
247 "pi_omit" : true
248 },
249 {
250 "name" : "mpls",
251 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800252 "header_type" : "mpls_t",
253 "metadata" : false,
254 "pi_omit" : true
255 },
256 {
257 "name" : "gtpu_ipv4",
Daniele Moro5a2de712019-09-24 14:34:07 -0700258 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800259 "header_type" : "ipv4_t",
260 "metadata" : false,
261 "pi_omit" : true
262 },
263 {
264 "name" : "gtpu_udp",
Daniele Moro5a2de712019-09-24 14:34:07 -0700265 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800266 "header_type" : "udp_t",
267 "metadata" : false,
268 "pi_omit" : true
269 },
270 {
Robert MacDavidde12b982020-07-15 18:38:59 -0700271 "name" : "outer_gtpu",
Daniele Moro5a2de712019-09-24 14:34:07 -0700272 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800273 "header_type" : "gtpu_t",
274 "metadata" : false,
275 "pi_omit" : true
276 },
277 {
Robert MacDavidde12b982020-07-15 18:38:59 -0700278 "name" : "gtpu",
Daniele Moro5a2de712019-09-24 14:34:07 -0700279 "id" : 10,
Robert MacDavidde12b982020-07-15 18:38:59 -0700280 "header_type" : "gtpu_t",
281 "metadata" : false,
282 "pi_omit" : true
283 },
284 {
285 "name" : "inner_ipv4",
286 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800287 "header_type" : "ipv4_t",
288 "metadata" : false,
289 "pi_omit" : true
290 },
291 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700292 "name" : "inner_udp",
Robert MacDavidde12b982020-07-15 18:38:59 -0700293 "id" : 12,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700294 "header_type" : "udp_t",
295 "metadata" : false,
296 "pi_omit" : true
297 },
298 {
Robert MacDavidde12b982020-07-15 18:38:59 -0700299 "name" : "inner_tcp",
Daniele Moro5a2de712019-09-24 14:34:07 -0700300 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800301 "header_type" : "tcp_t",
302 "metadata" : false,
303 "pi_omit" : true
304 },
305 {
Robert MacDavidde12b982020-07-15 18:38:59 -0700306 "name" : "inner_icmp",
Daniele Moro5a2de712019-09-24 14:34:07 -0700307 "id" : 14,
Robert MacDavidde12b982020-07-15 18:38:59 -0700308 "header_type" : "icmp_t",
309 "metadata" : false,
310 "pi_omit" : true
311 },
312 {
313 "name" : "ipv4",
314 "id" : 15,
315 "header_type" : "ipv4_t",
316 "metadata" : false,
317 "pi_omit" : true
318 },
319 {
320 "name" : "tcp",
321 "id" : 16,
322 "header_type" : "tcp_t",
323 "metadata" : false,
324 "pi_omit" : true
325 },
326 {
327 "name" : "udp",
328 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800329 "header_type" : "udp_t",
330 "metadata" : false,
331 "pi_omit" : true
332 },
333 {
334 "name" : "icmp",
Robert MacDavidde12b982020-07-15 18:38:59 -0700335 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800336 "header_type" : "icmp_t",
337 "metadata" : false,
338 "pi_omit" : true
339 },
340 {
341 "name" : "packet_out",
Robert MacDavidde12b982020-07-15 18:38:59 -0700342 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800343 "header_type" : "packet_out_header_t",
344 "metadata" : false,
345 "pi_omit" : true
346 },
347 {
348 "name" : "packet_in",
Robert MacDavidde12b982020-07-15 18:38:59 -0700349 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800350 "header_type" : "packet_in_header_t",
351 "metadata" : false,
352 "pi_omit" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800353 }
354 ],
355 "header_stacks" : [],
356 "header_union_types" : [],
357 "header_unions" : [],
358 "header_union_stacks" : [],
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700359 "field_lists" : [
360 {
361 "id" : 1,
362 "name" : "fl",
363 "source_info" : {
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700364 "filename" : "include/control/acl.p4",
365 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700366 "column" : 40,
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700367 "source_fragment" : "{standard_metadata.ingress_port}"
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700368 },
369 "elements" : [
370 {
371 "type" : "field",
372 "value" : ["standard_metadata", "ingress_port"]
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700373 }
374 ]
375 }
376 ],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700377 "errors" : [
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700378 ["NoError", 1],
379 ["PacketTooShort", 2],
380 ["NoMatch", 3],
381 ["StackOutOfBounds", 4],
382 ["HeaderTooShort", 5],
383 ["ParserTimeout", 6],
384 ["ParserInvalidArgument", 7]
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700385 ],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800386 "enums" : [],
387 "parsers" : [
388 {
389 "name" : "parser",
390 "id" : 0,
391 "init_state" : "start",
392 "parse_states" : [
393 {
394 "name" : "start",
395 "id" : 0,
396 "parser_ops" : [],
397 "transitions" : [
398 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800399 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800400 "value" : "0x00ff",
401 "mask" : null,
402 "next_state" : "parse_packet_out"
403 },
404 {
405 "value" : "default",
406 "mask" : null,
407 "next_state" : "parse_ethernet"
408 }
409 ],
410 "transition_key" : [
411 {
412 "type" : "field",
413 "value" : ["standard_metadata", "ingress_port"]
414 }
415 ]
416 },
417 {
418 "name" : "parse_packet_out",
419 "id" : 1,
420 "parser_ops" : [
421 {
422 "parameters" : [
423 {
424 "type" : "regular",
425 "value" : "packet_out"
426 }
427 ],
428 "op" : "extract"
429 }
430 ],
431 "transitions" : [
432 {
433 "value" : "default",
434 "mask" : null,
435 "next_state" : "parse_ethernet"
436 }
437 ],
438 "transition_key" : []
439 },
440 {
441 "name" : "parse_ethernet",
442 "id" : 2,
443 "parser_ops" : [
444 {
445 "parameters" : [
446 {
447 "type" : "regular",
448 "value" : "ethernet"
449 }
450 ],
451 "op" : "extract"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800452 },
453 {
454 "parameters" : [
455 {
456 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700457 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800458 },
459 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700460 "type" : "hexstr",
461 "value" : "0x0ffe"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800462 }
463 ],
464 "op" : "set"
465 },
466 {
467 "parameters" : [
468 {
469 "type" : "field",
Robert MacDavidde12b982020-07-15 18:38:59 -0700470 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800471 },
472 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700473 "type" : "lookahead",
474 "value" : [0, 16]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800475 }
476 ],
477 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800478 }
479 ],
480 "transitions" : [
481 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800482 "type" : "hexstr",
Daniele Moro77654f92019-07-30 10:29:54 -0700483 "value" : "0x88a8",
484 "mask" : null,
485 "next_state" : "parse_vlan_tag"
486 },
487 {
488 "type" : "hexstr",
489 "value" : "0x9100",
490 "mask" : null,
491 "next_state" : "parse_vlan_tag"
492 },
493 {
494 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800495 "value" : "0x8100",
496 "mask" : null,
497 "next_state" : "parse_vlan_tag"
498 },
499 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800500 "value" : "default",
501 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700502 "next_state" : "parse_eth_type"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800503 }
504 ],
505 "transition_key" : [
506 {
507 "type" : "field",
Robert MacDavidde12b982020-07-15 18:38:59 -0700508 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800509 }
510 ]
511 },
512 {
513 "name" : "parse_vlan_tag",
514 "id" : 3,
515 "parser_ops" : [
516 {
517 "parameters" : [
518 {
519 "type" : "regular",
520 "value" : "vlan_tag"
521 }
522 ],
523 "op" : "extract"
Daniele Moro5a2de712019-09-24 14:34:07 -0700524 },
525 {
526 "parameters" : [
527 {
528 "type" : "field",
Robert MacDavidde12b982020-07-15 18:38:59 -0700529 "value" : ["scalars", "tmp_1"]
Daniele Moro5a2de712019-09-24 14:34:07 -0700530 },
531 {
532 "type" : "lookahead",
533 "value" : [0, 16]
534 }
535 ],
536 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800537 }
538 ],
539 "transitions" : [
540 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800541 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800542 "value" : "0x8100",
543 "mask" : null,
544 "next_state" : "parse_inner_vlan_tag"
545 },
546 {
547 "value" : "default",
548 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700549 "next_state" : "parse_eth_type"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800550 }
551 ],
552 "transition_key" : [
553 {
554 "type" : "field",
Robert MacDavidde12b982020-07-15 18:38:59 -0700555 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800556 }
557 ]
558 },
559 {
560 "name" : "parse_inner_vlan_tag",
561 "id" : 4,
562 "parser_ops" : [
563 {
564 "parameters" : [
565 {
566 "type" : "regular",
567 "value" : "inner_vlan_tag"
568 }
569 ],
570 "op" : "extract"
571 }
572 ],
573 "transitions" : [
574 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700575 "value" : "default",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800576 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700577 "next_state" : "parse_eth_type"
578 }
579 ],
580 "transition_key" : []
581 },
582 {
583 "name" : "parse_eth_type",
584 "id" : 5,
585 "parser_ops" : [
586 {
587 "parameters" : [
588 {
589 "type" : "regular",
590 "value" : "eth_type"
591 }
592 ],
593 "op" : "extract"
594 }
595 ],
596 "transitions" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800597 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800598 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800599 "value" : "0x8847",
600 "mask" : null,
601 "next_state" : "parse_mpls"
602 },
603 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700604 "type" : "hexstr",
605 "value" : "0x0800",
606 "mask" : null,
607 "next_state" : "parse_ipv4"
608 },
609 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800610 "value" : "default",
611 "mask" : null,
612 "next_state" : null
613 }
614 ],
615 "transition_key" : [
616 {
617 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700618 "value" : ["eth_type", "value"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800619 }
620 ]
621 },
622 {
623 "name" : "parse_mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -0700624 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800625 "parser_ops" : [
626 {
627 "parameters" : [
628 {
629 "type" : "regular",
630 "value" : "mpls"
631 }
632 ],
633 "op" : "extract"
634 },
635 {
636 "parameters" : [
637 {
638 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700639 "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800640 },
641 {
642 "type" : "field",
643 "value" : ["mpls", "label"]
644 }
645 ],
646 "op" : "set"
647 },
648 {
649 "parameters" : [
650 {
651 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700652 "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800653 },
654 {
655 "type" : "field",
656 "value" : ["mpls", "ttl"]
657 }
658 ],
659 "op" : "set"
660 },
661 {
662 "parameters" : [
663 {
664 "type" : "field",
Robert MacDavidde12b982020-07-15 18:38:59 -0700665 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800666 },
667 {
668 "type" : "lookahead",
669 "value" : [0, 4]
670 }
671 ],
672 "op" : "set"
673 }
674 ],
675 "transitions" : [
676 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800677 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800678 "value" : "0x04",
679 "mask" : null,
680 "next_state" : "parse_ipv4"
681 },
682 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800683 "value" : "default",
684 "mask" : null,
685 "next_state" : "parse_ethernet"
686 }
687 ],
688 "transition_key" : [
689 {
690 "type" : "field",
Robert MacDavidde12b982020-07-15 18:38:59 -0700691 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800692 }
693 ]
694 },
695 {
Daniele Moro7c3a0022019-07-12 13:38:34 -0700696 "name" : "parse_ipv4",
697 "id" : 7,
698 "parser_ops" : [
699 {
700 "parameters" : [
701 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800702 "type" : "regular",
703 "value" : "ipv4"
704 }
705 ],
706 "op" : "extract"
707 },
708 {
709 "parameters" : [
710 {
711 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700712 "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800713 },
714 {
715 "type" : "field",
716 "value" : ["ipv4", "protocol"]
717 }
718 ],
719 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800720 },
721 {
722 "parameters" : [
723 {
724 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700725 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800726 },
727 {
728 "type" : "hexstr",
729 "value" : "0x0800"
730 }
731 ],
732 "op" : "set"
Robert MacDavidbec6b6a2020-05-21 21:32:38 -0400733 },
734 {
735 "parameters" : [
736 {
737 "type" : "field",
738 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
739 },
740 {
741 "type" : "field",
742 "value" : ["ipv4", "src_addr"]
743 }
744 ],
745 "op" : "set"
746 },
747 {
748 "parameters" : [
749 {
750 "type" : "field",
751 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
752 },
753 {
754 "type" : "field",
755 "value" : ["ipv4", "dst_addr"]
756 }
757 ],
758 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800759 }
760 ],
761 "transitions" : [
762 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800763 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800764 "value" : "0x06",
765 "mask" : null,
766 "next_state" : "parse_tcp"
767 },
768 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800769 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800770 "value" : "0x11",
771 "mask" : null,
772 "next_state" : "parse_udp"
773 },
774 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800775 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800776 "value" : "0x01",
777 "mask" : null,
778 "next_state" : "parse_icmp"
779 },
780 {
781 "value" : "default",
782 "mask" : null,
783 "next_state" : null
784 }
785 ],
786 "transition_key" : [
787 {
788 "type" : "field",
789 "value" : ["ipv4", "protocol"]
790 }
791 ]
792 },
793 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800794 "name" : "parse_tcp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700795 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800796 "parser_ops" : [
797 {
798 "parameters" : [
799 {
800 "type" : "regular",
801 "value" : "tcp"
802 }
803 ],
804 "op" : "extract"
805 },
806 {
807 "parameters" : [
808 {
809 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700810 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800811 },
812 {
813 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800814 "value" : ["tcp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800815 }
816 ],
817 "op" : "set"
818 },
819 {
820 "parameters" : [
821 {
822 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700823 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800824 },
825 {
826 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800827 "value" : ["tcp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800828 }
829 ],
830 "op" : "set"
831 }
832 ],
833 "transitions" : [
834 {
835 "value" : "default",
836 "mask" : null,
837 "next_state" : null
838 }
839 ],
840 "transition_key" : []
841 },
842 {
843 "name" : "parse_udp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700844 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800845 "parser_ops" : [
846 {
847 "parameters" : [
848 {
849 "type" : "regular",
850 "value" : "udp"
851 }
852 ],
853 "op" : "extract"
854 },
855 {
856 "parameters" : [
857 {
858 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700859 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800860 },
861 {
862 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800863 "value" : ["udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800864 }
865 ],
866 "op" : "set"
867 },
868 {
869 "parameters" : [
870 {
871 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700872 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800873 },
874 {
875 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800876 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800877 }
878 ],
879 "op" : "set"
880 }
881 ],
882 "transitions" : [
883 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800884 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800885 "value" : "0x0868",
886 "mask" : null,
887 "next_state" : "parse_gtpu"
888 },
889 {
890 "value" : "default",
891 "mask" : null,
892 "next_state" : null
893 }
894 ],
895 "transition_key" : [
896 {
897 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800898 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800899 }
900 ]
901 },
902 {
903 "name" : "parse_icmp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700904 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800905 "parser_ops" : [
906 {
907 "parameters" : [
908 {
909 "type" : "regular",
910 "value" : "icmp"
911 }
912 ],
913 "op" : "extract"
914 }
915 ],
916 "transitions" : [
917 {
918 "value" : "default",
919 "mask" : null,
920 "next_state" : null
921 }
922 ],
923 "transition_key" : []
924 },
925 {
926 "name" : "parse_gtpu",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700927 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800928 "parser_ops" : [
929 {
930 "parameters" : [
931 {
932 "type" : "regular",
933 "value" : "gtpu"
934 }
935 ],
936 "op" : "extract"
937 },
938 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800939 "parameters" : [
940 {
941 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700942 "value" : "inner_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800943 }
944 ],
945 "op" : "extract"
946 }
947 ],
948 "transitions" : [
949 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800950 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800951 "value" : "0x06",
952 "mask" : null,
953 "next_state" : "parse_tcp"
954 },
955 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800956 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800957 "value" : "0x11",
958 "mask" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700959 "next_state" : "parse_inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800960 },
961 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800962 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800963 "value" : "0x01",
964 "mask" : null,
965 "next_state" : "parse_icmp"
966 },
967 {
968 "value" : "default",
969 "mask" : null,
970 "next_state" : null
971 }
972 ],
973 "transition_key" : [
974 {
975 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700976 "value" : ["inner_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800977 }
978 ]
979 },
980 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700981 "name" : "parse_inner_udp",
Robert MacDavidde12b982020-07-15 18:38:59 -0700982 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800983 "parser_ops" : [
984 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800985 "parameters" : [
986 {
987 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700988 "value" : "inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800989 }
990 ],
991 "op" : "extract"
992 },
993 {
994 "parameters" : [
995 {
996 "type" : "field",
Robert MacDavidde12b982020-07-15 18:38:59 -0700997 "value" : ["scalars", "fabric_metadata_t._inner_l4_sport17"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800998 },
999 {
1000 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001001 "value" : ["inner_udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001002 }
1003 ],
1004 "op" : "set"
1005 },
1006 {
1007 "parameters" : [
1008 {
1009 "type" : "field",
Robert MacDavidde12b982020-07-15 18:38:59 -07001010 "value" : ["scalars", "fabric_metadata_t._inner_l4_dport18"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001011 },
1012 {
1013 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001014 "value" : ["inner_udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001015 }
1016 ],
1017 "op" : "set"
1018 }
1019 ],
1020 "transitions" : [
1021 {
1022 "value" : "default",
1023 "mask" : null,
1024 "next_state" : null
1025 }
1026 ],
1027 "transition_key" : []
1028 }
1029 ]
1030 }
1031 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001032 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001033 "deparsers" : [
1034 {
1035 "name" : "deparser",
1036 "id" : 0,
1037 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001038 "filename" : "include/parser.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07001039 "line" : 268,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001040 "column" : 8,
1041 "source_fragment" : "FabricDeparser"
1042 },
Robert MacDavidde12b982020-07-15 18:38:59 -07001043 "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "mpls", "gtpu_ipv4", "gtpu_udp", "outer_gtpu", "ipv4", "tcp", "udp", "icmp", "gtpu", "inner_ipv4", "inner_tcp", "inner_udp", "inner_icmp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001044 }
1045 ],
1046 "meter_arrays" : [],
1047 "counter_arrays" : [
1048 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001049 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001050 "id" : 0,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001051 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001052 "binding" : "FabricIngress.filtering.ingress_port_vlan",
1053 "source_info" : {
1054 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001055 "line" : 31,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001056 "column" : 50,
1057 "source_fragment" : "ingress_port_vlan_counter"
1058 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001059 },
1060 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001061 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001062 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001063 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001064 "binding" : "FabricIngress.filtering.fwd_classifier",
1065 "source_info" : {
1066 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001067 "line" : 85,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001068 "column" : 50,
1069 "source_fragment" : "fwd_classifier_counter"
1070 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001071 },
1072 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001073 "name" : "FabricIngress.forwarding.bridging_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001074 "id" : 2,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001075 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001076 "binding" : "FabricIngress.forwarding.bridging",
1077 "source_info" : {
1078 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001079 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001080 "column" : 50,
1081 "source_fragment" : "bridging_counter"
1082 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001083 },
1084 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001085 "name" : "FabricIngress.forwarding.mpls_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001086 "id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001087 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001088 "binding" : "FabricIngress.forwarding.mpls",
1089 "source_info" : {
1090 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001091 "line" : 63,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001092 "column" : 50,
1093 "source_fragment" : "mpls_counter"
1094 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001095 },
1096 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001097 "name" : "FabricIngress.acl.acl_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001098 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001099 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001100 "binding" : "FabricIngress.acl.acl",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001101 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001102 "filename" : "include/control/acl.p4",
1103 "line" : 30,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001104 "column" : 50,
1105 "source_fragment" : "acl_counter"
1106 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001107 },
1108 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001109 "name" : "FabricIngress.next.next_vlan_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001110 "id" : 5,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001111 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001112 "binding" : "FabricIngress.next.next_vlan",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001113 "source_info" : {
1114 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001115 "line" : 67,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001116 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001117 "source_fragment" : "next_vlan_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001118 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001119 },
1120 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001121 "name" : "FabricIngress.next.xconnect_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001122 "id" : 6,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001123 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001124 "binding" : "FabricIngress.next.xconnect",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001125 "source_info" : {
1126 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001127 "line" : 107,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001128 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001129 "source_fragment" : "xconnect_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001130 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001131 },
1132 {
1133 "name" : "FabricIngress.next.hashed_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001134 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001135 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001136 "binding" : "FabricIngress.next.hashed",
1137 "source_info" : {
1138 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001139 "line" : 184,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001140 "column" : 50,
1141 "source_fragment" : "hashed_counter"
1142 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001143 },
1144 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001145 "name" : "FabricIngress.next.multicast_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001146 "id" : 8,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001147 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001148 "binding" : "FabricIngress.next.multicast",
1149 "source_info" : {
1150 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001151 "line" : 228,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001152 "column" : 50,
1153 "source_fragment" : "multicast_counter"
1154 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00001155 },
1156 {
1157 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001158 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001159 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001160 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001161 "line" : 26,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001162 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001163 "source_fragment" : "egress_port_counter"
1164 },
1165 "size" : 511,
1166 "is_direct" : false
1167 },
1168 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001169 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001170 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001171 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001172 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001173 "line" : 27,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001174 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001175 "source_fragment" : "ingress_port_counter"
1176 },
1177 "size" : 511,
1178 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08001179 },
1180 {
Robert MacDavidde12b982020-07-15 18:38:59 -07001181 "name" : "FabricIngress.spgw_ingress.pdr_counter",
1182 "id" : 11,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001183 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07001184 "filename" : "include/control/spgw.p4",
1185 "line" : 182,
1186 "column" : 53,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001187 "source_fragment" : "pdr_counter"
1188 },
Robert MacDavidde12b982020-07-15 18:38:59 -07001189 "size" : 2048,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001190 "is_direct" : false
1191 },
1192 {
1193 "name" : "FabricEgress.egress_next.egress_vlan_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001194 "id" : 12,
Yi Tseng47eac892018-07-11 02:17:04 +08001195 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001196 "binding" : "FabricEgress.egress_next.egress_vlan",
1197 "source_info" : {
1198 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001199 "line" : 313,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001200 "column" : 50,
1201 "source_fragment" : "egress_vlan_counter"
1202 }
Robert MacDavidde12b982020-07-15 18:38:59 -07001203 },
1204 {
1205 "name" : "FabricEgress.spgw_egress.pdr_counter",
1206 "id" : 13,
1207 "source_info" : {
1208 "filename" : "include/control/spgw.p4",
1209 "line" : 303,
1210 "column" : 53,
1211 "source_fragment" : "pdr_counter"
1212 },
1213 "size" : 2048,
1214 "is_direct" : false
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001215 }
1216 ],
1217 "register_arrays" : [],
1218 "calculations" : [
1219 {
1220 "name" : "calc",
1221 "id" : 0,
1222 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001223 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001224 "line" : 28,
1225 "column" : 8,
1226 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1227 },
1228 "algo" : "csum16",
1229 "input" : [
1230 {
1231 "type" : "field",
1232 "value" : ["ipv4", "version"]
1233 },
1234 {
1235 "type" : "field",
1236 "value" : ["ipv4", "ihl"]
1237 },
1238 {
1239 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001240 "value" : ["ipv4", "dscp"]
1241 },
1242 {
1243 "type" : "field",
1244 "value" : ["ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001245 },
1246 {
1247 "type" : "field",
1248 "value" : ["ipv4", "total_len"]
1249 },
1250 {
1251 "type" : "field",
1252 "value" : ["ipv4", "identification"]
1253 },
1254 {
1255 "type" : "field",
1256 "value" : ["ipv4", "flags"]
1257 },
1258 {
1259 "type" : "field",
1260 "value" : ["ipv4", "frag_offset"]
1261 },
1262 {
1263 "type" : "field",
1264 "value" : ["ipv4", "ttl"]
1265 },
1266 {
1267 "type" : "field",
1268 "value" : ["ipv4", "protocol"]
1269 },
1270 {
1271 "type" : "field",
1272 "value" : ["ipv4", "src_addr"]
1273 },
1274 {
1275 "type" : "field",
1276 "value" : ["ipv4", "dst_addr"]
1277 }
1278 ]
1279 },
1280 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001281 "name" : "calc_0",
1282 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001283 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07001284 "filename" : "include/control/spgw.p4",
1285 "line" : 364,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001286 "column" : 8,
1287 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1288 },
1289 "algo" : "csum16",
1290 "input" : [
1291 {
1292 "type" : "field",
1293 "value" : ["gtpu_ipv4", "version"]
1294 },
1295 {
1296 "type" : "field",
1297 "value" : ["gtpu_ipv4", "ihl"]
1298 },
1299 {
1300 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001301 "value" : ["gtpu_ipv4", "dscp"]
1302 },
1303 {
1304 "type" : "field",
1305 "value" : ["gtpu_ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001306 },
1307 {
1308 "type" : "field",
1309 "value" : ["gtpu_ipv4", "total_len"]
1310 },
1311 {
1312 "type" : "field",
1313 "value" : ["gtpu_ipv4", "identification"]
1314 },
1315 {
1316 "type" : "field",
1317 "value" : ["gtpu_ipv4", "flags"]
1318 },
1319 {
1320 "type" : "field",
1321 "value" : ["gtpu_ipv4", "frag_offset"]
1322 },
1323 {
1324 "type" : "field",
1325 "value" : ["gtpu_ipv4", "ttl"]
1326 },
1327 {
1328 "type" : "field",
1329 "value" : ["gtpu_ipv4", "protocol"]
1330 },
1331 {
1332 "type" : "field",
1333 "value" : ["gtpu_ipv4", "src_addr"]
1334 },
1335 {
1336 "type" : "field",
1337 "value" : ["gtpu_ipv4", "dst_addr"]
1338 }
1339 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001340 },
1341 {
1342 "name" : "calc_1",
1343 "id" : 2,
1344 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001345 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001346 "line" : 57,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001347 "column" : 8,
1348 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1349 },
1350 "algo" : "csum16",
1351 "input" : [
1352 {
1353 "type" : "field",
1354 "value" : ["ipv4", "version"]
1355 },
1356 {
1357 "type" : "field",
1358 "value" : ["ipv4", "ihl"]
1359 },
1360 {
1361 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001362 "value" : ["ipv4", "dscp"]
1363 },
1364 {
1365 "type" : "field",
1366 "value" : ["ipv4", "ecn"]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001367 },
1368 {
1369 "type" : "field",
1370 "value" : ["ipv4", "total_len"]
1371 },
1372 {
1373 "type" : "field",
1374 "value" : ["ipv4", "identification"]
1375 },
1376 {
1377 "type" : "field",
1378 "value" : ["ipv4", "flags"]
1379 },
1380 {
1381 "type" : "field",
1382 "value" : ["ipv4", "frag_offset"]
1383 },
1384 {
1385 "type" : "field",
1386 "value" : ["ipv4", "ttl"]
1387 },
1388 {
1389 "type" : "field",
1390 "value" : ["ipv4", "protocol"]
1391 },
1392 {
1393 "type" : "field",
1394 "value" : ["ipv4", "src_addr"]
1395 },
1396 {
1397 "type" : "field",
1398 "value" : ["ipv4", "dst_addr"]
1399 }
1400 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001401 }
1402 ],
1403 "learn_lists" : [],
1404 "actions" : [
1405 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001406 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001407 "id" : 0,
1408 "runtime_data" : [],
1409 "primitives" : []
1410 },
1411 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001412 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001413 "id" : 1,
1414 "runtime_data" : [],
1415 "primitives" : []
1416 },
1417 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001418 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001419 "id" : 2,
1420 "runtime_data" : [],
1421 "primitives" : []
1422 },
1423 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001424 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001425 "id" : 3,
1426 "runtime_data" : [],
1427 "primitives" : []
1428 },
1429 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001430 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001431 "id" : 4,
1432 "runtime_data" : [],
1433 "primitives" : []
1434 },
1435 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001436 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001437 "id" : 5,
1438 "runtime_data" : [],
1439 "primitives" : []
1440 },
1441 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001442 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001443 "id" : 6,
1444 "runtime_data" : [],
1445 "primitives" : []
1446 },
1447 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001448 "name" : "FabricIngress.filtering.deny",
Robert MacDavidde12b982020-07-15 18:38:59 -07001449 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001450 "runtime_data" : [],
1451 "primitives" : [
1452 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001453 "op" : "assign",
1454 "parameters" : [
1455 {
1456 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001457 "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001458 },
1459 {
1460 "type" : "expression",
1461 "value" : {
1462 "type" : "expression",
1463 "value" : {
1464 "op" : "b2d",
1465 "left" : null,
1466 "right" : {
1467 "type" : "bool",
1468 "value" : true
1469 }
1470 }
1471 }
1472 }
1473 ],
1474 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001475 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001476 "line" : 36,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001477 "column" : 40,
1478 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001479 }
1480 },
1481 {
1482 "op" : "assign",
1483 "parameters" : [
1484 {
1485 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001486 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001487 },
1488 {
1489 "type" : "expression",
1490 "value" : {
1491 "type" : "expression",
1492 "value" : {
1493 "op" : "b2d",
1494 "left" : null,
1495 "right" : {
1496 "type" : "bool",
1497 "value" : true
1498 }
1499 }
1500 }
1501 }
1502 ],
1503 "source_info" : {
1504 "filename" : "include/control/filtering.p4",
1505 "line" : 37,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001506 "column" : 34,
1507 "source_fragment" : "= true; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001508 }
1509 }
1510 ]
1511 },
1512 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001513 "name" : "FabricIngress.filtering.permit",
Robert MacDavidde12b982020-07-15 18:38:59 -07001514 "id" : 8,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001515 "runtime_data" : [],
1516 "primitives" : []
1517 },
1518 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001519 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
Robert MacDavidde12b982020-07-15 18:38:59 -07001520 "id" : 9,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001521 "runtime_data" : [
1522 {
1523 "name" : "vlan_id",
1524 "bitwidth" : 12
1525 }
1526 ],
1527 "primitives" : [
1528 {
1529 "op" : "assign",
1530 "parameters" : [
1531 {
1532 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001533 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001534 },
1535 {
1536 "type" : "runtime_data",
1537 "value" : 0
1538 }
1539 ],
1540 "source_info" : {
1541 "filename" : "include/control/filtering.p4",
1542 "line" : 47,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001543 "column" : 32,
1544 "source_fragment" : "= vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001545 }
1546 }
1547 ]
1548 },
1549 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001550 "name" : "FabricIngress.filtering.set_forwarding_type",
Robert MacDavidde12b982020-07-15 18:38:59 -07001551 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001552 "runtime_data" : [
1553 {
1554 "name" : "fwd_type",
1555 "bitwidth" : 3
1556 }
1557 ],
1558 "primitives" : [
1559 {
1560 "op" : "assign",
1561 "parameters" : [
1562 {
1563 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001564 "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001565 },
1566 {
1567 "type" : "runtime_data",
1568 "value" : 0
1569 }
1570 ],
1571 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001572 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001573 "line" : 88,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001574 "column" : 33,
1575 "source_fragment" : "= fwd_type; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001576 }
1577 }
1578 ]
1579 },
1580 {
Yi Tseng47eac892018-07-11 02:17:04 +08001581 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Robert MacDavidde12b982020-07-15 18:38:59 -07001582 "id" : 11,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001583 "runtime_data" : [
1584 {
1585 "name" : "next_id",
1586 "bitwidth" : 32
1587 }
1588 ],
1589 "primitives" : [
1590 {
1591 "op" : "assign",
1592 "parameters" : [
1593 {
1594 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001595 "value" : ["scalars", "fabric_metadata_t._next_id9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001596 },
1597 {
1598 "type" : "runtime_data",
1599 "value" : 0
1600 }
1601 ],
1602 "source_info" : {
1603 "filename" : "include/control/forwarding.p4",
1604 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001605 "column" : 32,
1606 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001607 }
1608 }
1609 ]
1610 },
1611 {
1612 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Robert MacDavidde12b982020-07-15 18:38:59 -07001613 "id" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001614 "runtime_data" : [
1615 {
1616 "name" : "next_id",
1617 "bitwidth" : 32
1618 }
1619 ],
1620 "primitives" : [
1621 {
1622 "op" : "assign",
1623 "parameters" : [
1624 {
1625 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001626 "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001627 },
1628 {
1629 "type" : "hexstr",
1630 "value" : "0x000000"
1631 }
1632 ],
1633 "source_info" : {
1634 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001635 "line" : 66,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001636 "column" : 35,
1637 "source_fragment" : "= 0; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001638 }
1639 },
1640 {
1641 "op" : "assign",
1642 "parameters" : [
1643 {
1644 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001645 "value" : ["scalars", "fabric_metadata_t._next_id9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001646 },
1647 {
1648 "type" : "runtime_data",
1649 "value" : 0
1650 }
1651 ],
1652 "source_info" : {
1653 "filename" : "include/control/forwarding.p4",
1654 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001655 "column" : 32,
1656 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001657 }
1658 }
1659 ]
1660 },
1661 {
1662 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Robert MacDavidde12b982020-07-15 18:38:59 -07001663 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001664 "runtime_data" : [
1665 {
1666 "name" : "next_id",
1667 "bitwidth" : 32
1668 }
1669 ],
1670 "primitives" : [
1671 {
1672 "op" : "assign",
1673 "parameters" : [
1674 {
1675 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001676 "value" : ["scalars", "fabric_metadata_t._next_id9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001677 },
1678 {
1679 "type" : "runtime_data",
1680 "value" : 0
1681 }
1682 ],
1683 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001684 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001685 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001686 "column" : 32,
1687 "source_fragment" : "= next_id; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001688 }
1689 }
1690 ]
1691 },
1692 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001693 "name" : "FabricIngress.forwarding.nop_routing_v4",
Robert MacDavidde12b982020-07-15 18:38:59 -07001694 "id" : 14,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001695 "runtime_data" : [],
1696 "primitives" : []
Yi Tseng47eac892018-07-11 02:17:04 +08001697 },
1698 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001699 "name" : "FabricIngress.acl.set_next_id_acl",
Robert MacDavidde12b982020-07-15 18:38:59 -07001700 "id" : 15,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001701 "runtime_data" : [
1702 {
1703 "name" : "next_id",
1704 "bitwidth" : 32
1705 }
1706 ],
1707 "primitives" : [
1708 {
1709 "op" : "assign",
1710 "parameters" : [
1711 {
1712 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001713 "value" : ["scalars", "fabric_metadata_t._next_id9"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08001714 },
1715 {
1716 "type" : "runtime_data",
1717 "value" : 0
1718 }
1719 ],
1720 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001721 "filename" : "include/control/acl.p4",
1722 "line" : 33,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001723 "column" : 32,
1724 "source_fragment" : "= next_id; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001725 }
1726 }
1727 ]
1728 },
1729 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001730 "name" : "FabricIngress.acl.punt_to_cpu",
Robert MacDavidde12b982020-07-15 18:38:59 -07001731 "id" : 16,
Charles Chancd03f072018-08-31 17:46:37 -07001732 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001733 "primitives" : [
1734 {
1735 "op" : "assign",
1736 "parameters" : [
1737 {
1738 "type" : "field",
1739 "value" : ["standard_metadata", "egress_spec"]
1740 },
1741 {
1742 "type" : "hexstr",
1743 "value" : "0x00ff"
1744 }
1745 ],
1746 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001747 "filename" : "include/control/acl.p4",
1748 "line" : 39,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001749 "column" : 8,
1750 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001751 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001752 },
1753 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001754 "op" : "assign",
1755 "parameters" : [
1756 {
1757 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001758 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001759 },
1760 {
1761 "type" : "expression",
1762 "value" : {
1763 "type" : "expression",
1764 "value" : {
1765 "op" : "b2d",
1766 "left" : null,
1767 "right" : {
1768 "type" : "bool",
1769 "value" : true
1770 }
1771 }
1772 }
1773 }
1774 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001775 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001776 "filename" : "include/control/acl.p4",
1777 "line" : 40,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001778 "column" : 34,
1779 "source_fragment" : "= true; ..."
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001780 }
1781 }
1782 ]
1783 },
1784 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001785 "name" : "FabricIngress.acl.set_clone_session_id",
Robert MacDavidde12b982020-07-15 18:38:59 -07001786 "id" : 17,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001787 "runtime_data" : [
1788 {
1789 "name" : "clone_id",
1790 "bitwidth" : 32
1791 }
1792 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001793 "primitives" : [
1794 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001795 "op" : "clone_ingress_pkt_to_egress",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001796 "parameters" : [
1797 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001798 "type" : "runtime_data",
1799 "value" : 0
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001800 },
1801 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001802 "type" : "hexstr",
1803 "value" : "0x1"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001804 }
1805 ],
1806 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001807 "filename" : "include/control/acl.p4",
1808 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001809 "column" : 8,
Daniele Moro3b7a21b2019-06-25 17:33:40 -07001810 "source_fragment" : "clone3(CloneType.I2E, clone_id, {standard_metadata.ingress_port})"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001811 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001812 }
1813 ]
1814 },
1815 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001816 "name" : "FabricIngress.acl.drop",
Robert MacDavidde12b982020-07-15 18:38:59 -07001817 "id" : 18,
Yi Tseng47eac892018-07-11 02:17:04 +08001818 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001819 "primitives" : [
1820 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001821 "op" : "mark_to_drop",
1822 "parameters" : [
1823 {
1824 "type" : "header",
1825 "value" : "standard_metadata"
1826 }
1827 ],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001828 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001829 "filename" : "include/control/acl.p4",
1830 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001831 "column" : 8,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001832 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001833 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001834 },
1835 {
1836 "op" : "assign",
1837 "parameters" : [
1838 {
1839 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001840 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001841 },
1842 {
1843 "type" : "expression",
1844 "value" : {
1845 "type" : "expression",
1846 "value" : {
1847 "op" : "b2d",
1848 "left" : null,
1849 "right" : {
1850 "type" : "bool",
1851 "value" : true
1852 }
1853 }
1854 }
1855 }
1856 ],
1857 "source_info" : {
1858 "filename" : "include/control/acl.p4",
1859 "line" : 52,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001860 "column" : 34,
1861 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001862 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001863 }
1864 ]
1865 },
1866 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001867 "name" : "FabricIngress.acl.nop_acl",
Robert MacDavidde12b982020-07-15 18:38:59 -07001868 "id" : 19,
Charles Chancf696e52018-08-16 16:25:13 -07001869 "runtime_data" : [],
1870 "primitives" : []
1871 },
1872 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001873 "name" : "FabricIngress.next.set_vlan",
Robert MacDavidde12b982020-07-15 18:38:59 -07001874 "id" : 20,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001875 "runtime_data" : [
1876 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001877 "name" : "vlan_id",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001878 "bitwidth" : 12
1879 }
1880 ],
1881 "primitives" : [
1882 {
1883 "op" : "assign",
1884 "parameters" : [
1885 {
1886 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001887 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001888 },
1889 {
1890 "type" : "runtime_data",
1891 "value" : 0
1892 }
1893 ],
1894 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001895 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001896 "line" : 70,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001897 "column" : 32,
1898 "source_fragment" : "= vlan_id; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001899 }
1900 }
1901 ]
1902 },
1903 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001904 "name" : "FabricIngress.next.output_xconnect",
Robert MacDavidde12b982020-07-15 18:38:59 -07001905 "id" : 21,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001906 "runtime_data" : [
1907 {
1908 "name" : "port_num",
1909 "bitwidth" : 9
1910 }
1911 ],
1912 "primitives" : [
1913 {
1914 "op" : "assign",
1915 "parameters" : [
1916 {
1917 "type" : "field",
1918 "value" : ["standard_metadata", "egress_spec"]
1919 },
1920 {
1921 "type" : "runtime_data",
1922 "value" : 0
1923 }
1924 ],
1925 "source_info" : {
1926 "filename" : "include/control/next.p4",
1927 "line" : 31,
1928 "column" : 5,
1929 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1930 }
1931 }
1932 ]
1933 },
1934 {
1935 "name" : "FabricIngress.next.set_next_id_xconnect",
Robert MacDavidde12b982020-07-15 18:38:59 -07001936 "id" : 22,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001937 "runtime_data" : [
1938 {
1939 "name" : "next_id",
1940 "bitwidth" : 32
1941 }
1942 ],
1943 "primitives" : [
1944 {
1945 "op" : "assign",
1946 "parameters" : [
1947 {
1948 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001949 "value" : ["scalars", "fabric_metadata_t._next_id9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001950 },
1951 {
1952 "type" : "runtime_data",
1953 "value" : 0
1954 }
1955 ],
1956 "source_info" : {
1957 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001958 "line" : 115,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001959 "column" : 32,
1960 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001961 }
1962 }
1963 ]
1964 },
1965 {
1966 "name" : "FabricIngress.next.output_hashed",
Robert MacDavidde12b982020-07-15 18:38:59 -07001967 "id" : 23,
Yi Tseng47eac892018-07-11 02:17:04 +08001968 "runtime_data" : [
1969 {
1970 "name" : "port_num",
1971 "bitwidth" : 9
1972 }
1973 ],
1974 "primitives" : [
1975 {
1976 "op" : "assign",
1977 "parameters" : [
1978 {
1979 "type" : "field",
1980 "value" : ["standard_metadata", "egress_spec"]
1981 },
1982 {
1983 "type" : "runtime_data",
1984 "value" : 0
1985 }
1986 ],
1987 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001988 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001989 "line" : 31,
1990 "column" : 5,
1991 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng47eac892018-07-11 02:17:04 +08001992 }
1993 }
1994 ]
1995 },
1996 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001997 "name" : "FabricIngress.next.routing_hashed",
Robert MacDavidde12b982020-07-15 18:38:59 -07001998 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001999 "runtime_data" : [
2000 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002001 "name" : "port_num",
2002 "bitwidth" : 9
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002003 },
2004 {
2005 "name" : "smac",
2006 "bitwidth" : 48
2007 },
2008 {
2009 "name" : "dmac",
2010 "bitwidth" : 48
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002011 }
2012 ],
2013 "primitives" : [
2014 {
2015 "op" : "assign",
2016 "parameters" : [
2017 {
2018 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002019 "value" : ["ethernet", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002020 },
2021 {
2022 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002023 "value" : 1
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002024 }
2025 ],
2026 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002027 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002028 "line" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002029 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002030 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2031 }
2032 },
2033 {
2034 "op" : "assign",
2035 "parameters" : [
2036 {
2037 "type" : "field",
2038 "value" : ["ethernet", "dst_addr"]
2039 },
2040 {
2041 "type" : "runtime_data",
2042 "value" : 2
2043 }
2044 ],
2045 "source_info" : {
2046 "filename" : "include/control/next.p4",
2047 "line" : 41,
2048 "column" : 8,
2049 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002050 }
2051 },
2052 {
2053 "op" : "assign",
2054 "parameters" : [
2055 {
2056 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002057 "value" : ["standard_metadata", "egress_spec"]
2058 },
2059 {
2060 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002061 "value" : 0
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002062 }
2063 ],
2064 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002065 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002066 "line" : 31,
2067 "column" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002068 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2069 }
2070 }
2071 ]
2072 },
2073 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002074 "name" : "FabricIngress.next.mpls_routing_hashed",
Robert MacDavidde12b982020-07-15 18:38:59 -07002075 "id" : 25,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002076 "runtime_data" : [
2077 {
2078 "name" : "port_num",
2079 "bitwidth" : 9
2080 },
2081 {
2082 "name" : "smac",
2083 "bitwidth" : 48
2084 },
2085 {
2086 "name" : "dmac",
2087 "bitwidth" : 48
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002088 },
2089 {
2090 "name" : "label",
2091 "bitwidth" : 20
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002092 }
2093 ],
2094 "primitives" : [
2095 {
2096 "op" : "assign",
2097 "parameters" : [
2098 {
2099 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002100 "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002101 },
2102 {
2103 "type" : "runtime_data",
2104 "value" : 3
2105 }
2106 ],
2107 "source_info" : {
2108 "filename" : "include/control/next.p4",
2109 "line" : 46,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002110 "column" : 35,
2111 "source_fragment" : "= label; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002112 }
2113 },
2114 {
2115 "op" : "assign",
2116 "parameters" : [
2117 {
2118 "type" : "field",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002119 "value" : ["ethernet", "src_addr"]
2120 },
2121 {
2122 "type" : "runtime_data",
2123 "value" : 1
2124 }
2125 ],
2126 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002127 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002128 "line" : 36,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002129 "column" : 8,
2130 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2131 }
2132 },
2133 {
2134 "op" : "assign",
2135 "parameters" : [
2136 {
2137 "type" : "field",
2138 "value" : ["ethernet", "dst_addr"]
2139 },
2140 {
2141 "type" : "runtime_data",
2142 "value" : 2
2143 }
2144 ],
2145 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002146 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002147 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002148 "column" : 8,
2149 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2150 }
2151 },
2152 {
2153 "op" : "assign",
2154 "parameters" : [
2155 {
2156 "type" : "field",
2157 "value" : ["standard_metadata", "egress_spec"]
2158 },
2159 {
2160 "type" : "runtime_data",
2161 "value" : 0
2162 }
2163 ],
2164 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002165 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002166 "line" : 31,
2167 "column" : 5,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002168 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2169 }
2170 }
2171 ]
2172 },
2173 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002174 "name" : "FabricIngress.next.set_mcast_group_id",
Robert MacDavidde12b982020-07-15 18:38:59 -07002175 "id" : 26,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002176 "runtime_data" : [
2177 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002178 "name" : "group_id",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002179 "bitwidth" : 16
2180 }
2181 ],
2182 "primitives" : [
2183 {
2184 "op" : "assign",
2185 "parameters" : [
2186 {
2187 "type" : "field",
2188 "value" : ["standard_metadata", "mcast_grp"]
2189 },
2190 {
2191 "type" : "runtime_data",
2192 "value" : 0
2193 }
2194 ],
2195 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002196 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002197 "line" : 231,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002198 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002199 "source_fragment" : "standard_metadata.mcast_grp = group_id"
Esin Karaman971fb7f2017-12-28 13:44:52 +00002200 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002201 },
2202 {
2203 "op" : "assign",
2204 "parameters" : [
2205 {
2206 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002207 "value" : ["scalars", "fabric_metadata_t._is_multicast10"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002208 },
2209 {
2210 "type" : "expression",
2211 "value" : {
2212 "type" : "expression",
2213 "value" : {
2214 "op" : "b2d",
2215 "left" : null,
2216 "right" : {
2217 "type" : "bool",
2218 "value" : true
2219 }
2220 }
2221 }
2222 }
2223 ],
2224 "source_info" : {
2225 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002226 "line" : 232,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002227 "column" : 37,
2228 "source_fragment" : "= true; ..."
Carmelo Casconea5400af2018-07-17 22:11:54 +02002229 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002230 }
2231 ]
2232 },
2233 {
Robert MacDavidde12b982020-07-15 18:38:59 -07002234 "name" : "FabricIngress.spgw_ingress.set_source_iface",
2235 "id" : 27,
2236 "runtime_data" : [
2237 {
2238 "name" : "src_iface",
2239 "bitwidth" : 8
2240 },
2241 {
2242 "name" : "direction",
2243 "bitwidth" : 2
2244 },
2245 {
2246 "name" : "skip_spgw",
2247 "bitwidth" : 1
2248 }
2249 ],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002250 "primitives" : [
2251 {
2252 "op" : "assign",
2253 "parameters" : [
2254 {
2255 "type" : "field",
Robert MacDavidde12b982020-07-15 18:38:59 -07002256 "value" : ["scalars", "fabric_metadata_t._spgw_src_iface27"]
2257 },
2258 {
2259 "type" : "runtime_data",
2260 "value" : 0
2261 }
2262 ],
2263 "source_info" : {
2264 "filename" : "include/control/spgw.p4",
2265 "line" : 50,
2266 "column" : 33,
2267 "source_fragment" : "= src_iface; ..."
2268 }
2269 },
2270 {
2271 "op" : "assign",
2272 "parameters" : [
2273 {
2274 "type" : "field",
2275 "value" : ["scalars", "fabric_metadata_t._spgw_direction19"]
2276 },
2277 {
2278 "type" : "runtime_data",
2279 "value" : 1
2280 }
2281 ],
2282 "source_info" : {
2283 "filename" : "include/control/spgw.p4",
2284 "line" : 51,
2285 "column" : 33,
2286 "source_fragment" : "= direction; ..."
2287 }
2288 },
2289 {
2290 "op" : "assign",
2291 "parameters" : [
2292 {
2293 "type" : "field",
2294 "value" : ["scalars", "fabric_metadata_t._spgw_skip_spgw28"]
2295 },
2296 {
2297 "type" : "expression",
2298 "value" : {
2299 "type" : "expression",
2300 "value" : {
2301 "op" : "b2d",
2302 "left" : null,
2303 "right" : {
2304 "type" : "expression",
2305 "value" : {
2306 "op" : "!=",
2307 "left" : {
2308 "type" : "local",
2309 "value" : 2
2310 },
2311 "right" : {
2312 "type" : "hexstr",
2313 "value" : "0x00"
2314 }
2315 }
2316 }
2317 }
2318 }
2319 }
2320 ],
2321 "source_info" : {
2322 "filename" : "include/control/spgw.p4",
2323 "line" : 52,
2324 "column" : 33,
2325 "source_fragment" : "= (bool)skip_spgw; ..."
2326 }
2327 }
2328 ]
2329 },
2330 {
2331 "name" : "FabricIngress.spgw_ingress.set_pdr_attributes",
2332 "id" : 28,
2333 "runtime_data" : [
2334 {
2335 "name" : "ctr_id",
2336 "bitwidth" : 32
2337 },
2338 {
2339 "name" : "far_id",
2340 "bitwidth" : 32
2341 },
2342 {
2343 "name" : "needs_gtpu_decap",
2344 "bitwidth" : 1
2345 }
2346 ],
2347 "primitives" : [
2348 {
2349 "op" : "assign",
2350 "parameters" : [
2351 {
2352 "type" : "field",
2353 "value" : ["scalars", "fabric_metadata_t._spgw_pdr_hit29"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002354 },
2355 {
2356 "type" : "expression",
2357 "value" : {
2358 "type" : "expression",
2359 "value" : {
2360 "op" : "b2d",
2361 "left" : null,
2362 "right" : {
2363 "type" : "bool",
2364 "value" : true
2365 }
2366 }
2367 }
2368 }
2369 ],
2370 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07002371 "filename" : "include/control/spgw.p4",
2372 "line" : 75,
2373 "column" : 31,
2374 "source_fragment" : "= true; ..."
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002375 }
2376 },
2377 {
2378 "op" : "assign",
2379 "parameters" : [
2380 {
2381 "type" : "field",
Robert MacDavidde12b982020-07-15 18:38:59 -07002382 "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id25"]
2383 },
2384 {
2385 "type" : "runtime_data",
2386 "value" : 0
2387 }
2388 ],
2389 "source_info" : {
2390 "filename" : "include/control/spgw.p4",
2391 "line" : 76,
2392 "column" : 30,
2393 "source_fragment" : "= ctr_id; ..."
2394 }
2395 },
2396 {
2397 "op" : "assign",
2398 "parameters" : [
2399 {
2400 "type" : "field",
2401 "value" : ["scalars", "fabric_metadata_t._spgw_far_id26"]
2402 },
2403 {
2404 "type" : "runtime_data",
2405 "value" : 1
2406 }
2407 ],
2408 "source_info" : {
2409 "filename" : "include/control/spgw.p4",
2410 "line" : 77,
2411 "column" : 30,
2412 "source_fragment" : "= far_id; ..."
2413 }
2414 },
2415 {
2416 "op" : "assign",
2417 "parameters" : [
2418 {
2419 "type" : "field",
2420 "value" : ["scalars", "fabric_metadata_t._spgw_needs_gtpu_decap33"]
2421 },
2422 {
2423 "type" : "expression",
2424 "value" : {
2425 "type" : "expression",
2426 "value" : {
2427 "op" : "b2d",
2428 "left" : null,
2429 "right" : {
2430 "type" : "expression",
2431 "value" : {
2432 "op" : "!=",
2433 "left" : {
2434 "type" : "local",
2435 "value" : 2
2436 },
2437 "right" : {
2438 "type" : "hexstr",
2439 "value" : "0x00"
2440 }
2441 }
2442 }
2443 }
2444 }
2445 }
2446 ],
2447 "source_info" : {
2448 "filename" : "include/control/spgw.p4",
2449 "line" : 78,
2450 "column" : 40,
2451 "source_fragment" : "= (bool)needs_gtpu_decap; ..."
2452 }
2453 }
2454 ]
2455 },
2456 {
2457 "name" : "FabricIngress.spgw_ingress.set_pdr_attributes",
2458 "id" : 29,
2459 "runtime_data" : [
2460 {
2461 "name" : "ctr_id",
2462 "bitwidth" : 32
2463 },
2464 {
2465 "name" : "far_id",
2466 "bitwidth" : 32
2467 },
2468 {
2469 "name" : "needs_gtpu_decap",
2470 "bitwidth" : 1
2471 }
2472 ],
2473 "primitives" : [
2474 {
2475 "op" : "assign",
2476 "parameters" : [
2477 {
2478 "type" : "field",
2479 "value" : ["scalars", "fabric_metadata_t._spgw_pdr_hit29"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002480 },
2481 {
2482 "type" : "expression",
2483 "value" : {
2484 "type" : "expression",
2485 "value" : {
2486 "op" : "b2d",
2487 "left" : null,
2488 "right" : {
2489 "type" : "bool",
Robert MacDavidde12b982020-07-15 18:38:59 -07002490 "value" : true
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002491 }
2492 }
2493 }
2494 }
Robert MacDavidde12b982020-07-15 18:38:59 -07002495 ],
2496 "source_info" : {
2497 "filename" : "include/control/spgw.p4",
2498 "line" : 75,
2499 "column" : 31,
2500 "source_fragment" : "= true; ..."
2501 }
2502 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002503 {
Robert MacDavidde12b982020-07-15 18:38:59 -07002504 "op" : "assign",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002505 "parameters" : [
2506 {
Robert MacDavidde12b982020-07-15 18:38:59 -07002507 "type" : "field",
2508 "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id25"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002509 },
2510 {
Robert MacDavidde12b982020-07-15 18:38:59 -07002511 "type" : "runtime_data",
2512 "value" : 0
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002513 }
2514 ],
2515 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07002516 "filename" : "include/control/spgw.p4",
2517 "line" : 76,
2518 "column" : 30,
2519 "source_fragment" : "= ctr_id; ..."
2520 }
2521 },
2522 {
2523 "op" : "assign",
2524 "parameters" : [
2525 {
2526 "type" : "field",
2527 "value" : ["scalars", "fabric_metadata_t._spgw_far_id26"]
2528 },
2529 {
2530 "type" : "runtime_data",
2531 "value" : 1
2532 }
2533 ],
2534 "source_info" : {
2535 "filename" : "include/control/spgw.p4",
2536 "line" : 77,
2537 "column" : 30,
2538 "source_fragment" : "= far_id; ..."
2539 }
2540 },
2541 {
2542 "op" : "assign",
2543 "parameters" : [
2544 {
2545 "type" : "field",
2546 "value" : ["scalars", "fabric_metadata_t._spgw_needs_gtpu_decap33"]
2547 },
2548 {
2549 "type" : "expression",
2550 "value" : {
2551 "type" : "expression",
2552 "value" : {
2553 "op" : "b2d",
2554 "left" : null,
2555 "right" : {
2556 "type" : "expression",
2557 "value" : {
2558 "op" : "!=",
2559 "left" : {
2560 "type" : "local",
2561 "value" : 2
2562 },
2563 "right" : {
2564 "type" : "hexstr",
2565 "value" : "0x00"
2566 }
2567 }
2568 }
2569 }
2570 }
2571 }
2572 ],
2573 "source_info" : {
2574 "filename" : "include/control/spgw.p4",
2575 "line" : 78,
2576 "column" : 40,
2577 "source_fragment" : "= (bool)needs_gtpu_decap; ..."
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002578 }
2579 }
2580 ]
2581 },
2582 {
Robert MacDavidde12b982020-07-15 18:38:59 -07002583 "name" : "FabricIngress.spgw_ingress.load_normal_far_attributes",
2584 "id" : 30,
2585 "runtime_data" : [
2586 {
2587 "name" : "drop",
2588 "bitwidth" : 1
2589 },
2590 {
2591 "name" : "notify_cp",
2592 "bitwidth" : 1
2593 }
2594 ],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002595 "primitives" : [
2596 {
Robert MacDavidde12b982020-07-15 18:38:59 -07002597 "op" : "assign",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002598 "parameters" : [
2599 {
Robert MacDavidde12b982020-07-15 18:38:59 -07002600 "type" : "field",
2601 "value" : ["scalars", "fabric_metadata_t._spgw_far_dropped30"]
2602 },
2603 {
2604 "type" : "expression",
2605 "value" : {
2606 "type" : "expression",
2607 "value" : {
2608 "op" : "b2d",
2609 "left" : null,
2610 "right" : {
2611 "type" : "expression",
2612 "value" : {
2613 "op" : "!=",
2614 "left" : {
2615 "type" : "local",
2616 "value" : 0
2617 },
2618 "right" : {
2619 "type" : "hexstr",
2620 "value" : "0x00"
2621 }
2622 }
2623 }
2624 }
2625 }
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002626 }
2627 ],
2628 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07002629 "filename" : "include/control/spgw.p4",
2630 "line" : 140,
2631 "column" : 35,
2632 "source_fragment" : "= (bool)drop; ..."
2633 }
2634 },
2635 {
2636 "op" : "assign",
2637 "parameters" : [
2638 {
2639 "type" : "field",
2640 "value" : ["scalars", "fabric_metadata_t._spgw_notify_spgwc31"]
2641 },
2642 {
2643 "type" : "expression",
2644 "value" : {
2645 "type" : "expression",
2646 "value" : {
2647 "op" : "b2d",
2648 "left" : null,
2649 "right" : {
2650 "type" : "expression",
2651 "value" : {
2652 "op" : "!=",
2653 "left" : {
2654 "type" : "local",
2655 "value" : 1
2656 },
2657 "right" : {
2658 "type" : "hexstr",
2659 "value" : "0x00"
2660 }
2661 }
2662 }
2663 }
2664 }
2665 }
2666 ],
2667 "source_info" : {
2668 "filename" : "include/control/spgw.p4",
2669 "line" : 141,
2670 "column" : 36,
2671 "source_fragment" : "= (bool)notify_cp; ..."
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002672 }
2673 }
2674 ]
2675 },
2676 {
Robert MacDavidde12b982020-07-15 18:38:59 -07002677 "name" : "FabricIngress.spgw_ingress.load_tunnel_far_attributes",
2678 "id" : 31,
2679 "runtime_data" : [
2680 {
2681 "name" : "drop",
2682 "bitwidth" : 1
2683 },
2684 {
2685 "name" : "notify_cp",
2686 "bitwidth" : 1
2687 },
2688 {
2689 "name" : "tunnel_src_port",
2690 "bitwidth" : 16
2691 },
2692 {
2693 "name" : "tunnel_src_addr",
2694 "bitwidth" : 32
2695 },
2696 {
2697 "name" : "tunnel_dst_addr",
2698 "bitwidth" : 32
2699 },
2700 {
2701 "name" : "teid",
2702 "bitwidth" : 32
2703 }
2704 ],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002705 "primitives" : [
2706 {
Robert MacDavidde12b982020-07-15 18:38:59 -07002707 "op" : "assign",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002708 "parameters" : [
2709 {
Robert MacDavidde12b982020-07-15 18:38:59 -07002710 "type" : "field",
2711 "value" : ["scalars", "fabric_metadata_t._spgw_far_dropped30"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002712 },
2713 {
Robert MacDavidde12b982020-07-15 18:38:59 -07002714 "type" : "expression",
2715 "value" : {
2716 "type" : "expression",
2717 "value" : {
2718 "op" : "b2d",
2719 "left" : null,
2720 "right" : {
2721 "type" : "expression",
2722 "value" : {
2723 "op" : "!=",
2724 "left" : {
2725 "type" : "local",
2726 "value" : 0
2727 },
2728 "right" : {
2729 "type" : "hexstr",
2730 "value" : "0x00"
2731 }
2732 }
2733 }
2734 }
2735 }
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002736 }
2737 ],
2738 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07002739 "filename" : "include/control/spgw.p4",
2740 "line" : 150,
2741 "column" : 35,
2742 "source_fragment" : "= (bool)drop; ..."
2743 }
2744 },
2745 {
2746 "op" : "assign",
2747 "parameters" : [
2748 {
2749 "type" : "field",
2750 "value" : ["scalars", "fabric_metadata_t._spgw_notify_spgwc31"]
2751 },
2752 {
2753 "type" : "expression",
2754 "value" : {
2755 "type" : "expression",
2756 "value" : {
2757 "op" : "b2d",
2758 "left" : null,
2759 "right" : {
2760 "type" : "expression",
2761 "value" : {
2762 "op" : "!=",
2763 "left" : {
2764 "type" : "local",
2765 "value" : 1
2766 },
2767 "right" : {
2768 "type" : "hexstr",
2769 "value" : "0x00"
2770 }
2771 }
2772 }
2773 }
2774 }
2775 }
2776 ],
2777 "source_info" : {
2778 "filename" : "include/control/spgw.p4",
2779 "line" : 151,
2780 "column" : 36,
2781 "source_fragment" : "= (bool)notify_cp; ..."
2782 }
2783 },
2784 {
2785 "op" : "assign",
2786 "parameters" : [
2787 {
2788 "type" : "field",
2789 "value" : ["scalars", "fabric_metadata_t._spgw_needs_gtpu_encap32"]
2790 },
2791 {
2792 "type" : "expression",
2793 "value" : {
2794 "type" : "expression",
2795 "value" : {
2796 "op" : "b2d",
2797 "left" : null,
2798 "right" : {
2799 "type" : "bool",
2800 "value" : true
2801 }
2802 }
2803 }
2804 }
2805 ],
2806 "source_info" : {
2807 "filename" : "include/control/spgw.p4",
2808 "line" : 153,
2809 "column" : 40,
2810 "source_fragment" : "= true; ..."
2811 }
2812 },
2813 {
2814 "op" : "assign",
2815 "parameters" : [
2816 {
2817 "type" : "field",
2818 "value" : ["scalars", "fabric_metadata_t._spgw_teid21"]
2819 },
2820 {
2821 "type" : "runtime_data",
2822 "value" : 5
2823 }
2824 ],
2825 "source_info" : {
2826 "filename" : "include/control/spgw.p4",
2827 "line" : 154,
2828 "column" : 28,
2829 "source_fragment" : "= teid; ..."
2830 }
2831 },
2832 {
2833 "op" : "assign",
2834 "parameters" : [
2835 {
2836 "type" : "field",
2837 "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_src_port22"]
2838 },
2839 {
2840 "type" : "runtime_data",
2841 "value" : 2
2842 }
2843 ],
2844 "source_info" : {
2845 "filename" : "include/control/spgw.p4",
2846 "line" : 155,
2847 "column" : 39,
2848 "source_fragment" : "= tunnel_src_port; ..."
2849 }
2850 },
2851 {
2852 "op" : "assign",
2853 "parameters" : [
2854 {
2855 "type" : "field",
2856 "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_src_addr23"]
2857 },
2858 {
2859 "type" : "runtime_data",
2860 "value" : 3
2861 }
2862 ],
2863 "source_info" : {
2864 "filename" : "include/control/spgw.p4",
2865 "line" : 156,
2866 "column" : 39,
2867 "source_fragment" : "= tunnel_src_addr; ..."
2868 }
2869 },
2870 {
2871 "op" : "assign",
2872 "parameters" : [
2873 {
2874 "type" : "field",
2875 "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_dst_addr24"]
2876 },
2877 {
2878 "type" : "runtime_data",
2879 "value" : 4
2880 }
2881 ],
2882 "source_info" : {
2883 "filename" : "include/control/spgw.p4",
2884 "line" : 157,
2885 "column" : 39,
2886 "source_fragment" : "= tunnel_dst_addr; ..."
2887 }
2888 },
2889 {
2890 "op" : "assign",
2891 "parameters" : [
2892 {
2893 "type" : "field",
2894 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
2895 },
2896 {
2897 "type" : "runtime_data",
2898 "value" : 3
2899 }
2900 ],
2901 "source_info" : {
2902 "filename" : "include/control/spgw.p4",
2903 "line" : 159,
2904 "column" : 32,
2905 "source_fragment" : "= tunnel_src_addr; ..."
2906 }
2907 },
2908 {
2909 "op" : "assign",
2910 "parameters" : [
2911 {
2912 "type" : "field",
2913 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
2914 },
2915 {
2916 "type" : "runtime_data",
2917 "value" : 4
2918 }
2919 ],
2920 "source_info" : {
2921 "filename" : "include/control/spgw.p4",
2922 "line" : 160,
2923 "column" : 32,
2924 "source_fragment" : "= tunnel_dst_addr; ..."
2925 }
2926 },
2927 {
2928 "op" : "assign",
2929 "parameters" : [
2930 {
2931 "type" : "field",
2932 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
2933 },
2934 {
2935 "type" : "runtime_data",
2936 "value" : 2
2937 }
2938 ],
2939 "source_info" : {
2940 "filename" : "include/control/spgw.p4",
2941 "line" : 161,
2942 "column" : 27,
2943 "source_fragment" : "= tunnel_src_port; ..."
2944 }
2945 },
2946 {
2947 "op" : "assign",
2948 "parameters" : [
2949 {
2950 "type" : "field",
2951 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
2952 },
2953 {
2954 "type" : "hexstr",
2955 "value" : "0x0868"
2956 }
2957 ],
2958 "source_info" : {
2959 "filename" : "include/control/spgw.p4",
2960 "line" : 162,
2961 "column" : 27,
2962 "source_fragment" : "= 2152; ..."
2963 }
2964 }
2965 ]
2966 },
2967 {
2968 "name" : "FabricIngress.spgw_ingress.decap_inner_tcp",
2969 "id" : 32,
2970 "runtime_data" : [],
2971 "primitives" : [
2972 {
2973 "op" : "assign",
2974 "parameters" : [
2975 {
2976 "type" : "field",
2977 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
2978 },
2979 {
2980 "type" : "hexstr",
2981 "value" : "0x0800"
2982 }
2983 ],
2984 "source_info" : {
2985 "filename" : "include/control/../define.p4",
2986 "line" : 128,
2987 "column" : 31,
2988 "source_fragment" : "0x0800; ..."
2989 }
2990 },
2991 {
2992 "op" : "assign",
2993 "parameters" : [
2994 {
2995 "type" : "field",
2996 "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
2997 },
2998 {
2999 "type" : "field",
3000 "value" : ["inner_ipv4", "protocol"]
3001 }
3002 ],
3003 "source_info" : {
3004 "filename" : "include/control/spgw.p4",
3005 "line" : 189,
3006 "column" : 27,
3007 "source_fragment" : "= hdr.inner_ipv4.protocol; ..."
3008 }
3009 },
3010 {
3011 "op" : "assign",
3012 "parameters" : [
3013 {
3014 "type" : "field",
3015 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
3016 },
3017 {
3018 "type" : "field",
3019 "value" : ["inner_ipv4", "src_addr"]
3020 }
3021 ],
3022 "source_info" : {
3023 "filename" : "include/control/spgw.p4",
3024 "line" : 190,
3025 "column" : 32,
3026 "source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
3027 }
3028 },
3029 {
3030 "op" : "assign",
3031 "parameters" : [
3032 {
3033 "type" : "field",
3034 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
3035 },
3036 {
3037 "type" : "field",
3038 "value" : ["inner_ipv4", "dst_addr"]
3039 }
3040 ],
3041 "source_info" : {
3042 "filename" : "include/control/spgw.p4",
3043 "line" : 191,
3044 "column" : 32,
3045 "source_fragment" : "= hdr.inner_ipv4.dst_addr; ..."
3046 }
3047 },
3048 {
3049 "op" : "assign",
3050 "parameters" : [
3051 {
3052 "type" : "field",
3053 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
3054 },
3055 {
3056 "type" : "field",
3057 "value" : ["scalars", "fabric_metadata_t._inner_l4_sport17"]
3058 }
3059 ],
3060 "source_info" : {
3061 "filename" : "include/control/spgw.p4",
3062 "line" : 192,
3063 "column" : 27,
3064 "source_fragment" : "= fabric_md.inner_l4_sport; ..."
3065 }
3066 },
3067 {
3068 "op" : "assign",
3069 "parameters" : [
3070 {
3071 "type" : "field",
3072 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
3073 },
3074 {
3075 "type" : "field",
3076 "value" : ["scalars", "fabric_metadata_t._inner_l4_dport18"]
3077 }
3078 ],
3079 "source_info" : {
3080 "filename" : "include/control/spgw.p4",
3081 "line" : 193,
3082 "column" : 27,
3083 "source_fragment" : "= fabric_md.inner_l4_dport; ..."
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003084 }
3085 },
3086 {
3087 "op" : "assign_header",
3088 "parameters" : [
3089 {
3090 "type" : "header",
3091 "value" : "ipv4"
3092 },
3093 {
3094 "type" : "header",
3095 "value" : "inner_ipv4"
3096 }
3097 ],
3098 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07003099 "filename" : "include/control/spgw.p4",
3100 "line" : 195,
3101 "column" : 8,
3102 "source_fragment" : "hdr.ipv4 = hdr.inner_ipv4"
3103 }
3104 },
3105 {
3106 "op" : "remove_header",
3107 "parameters" : [
3108 {
3109 "type" : "header",
3110 "value" : "inner_ipv4"
3111 }
3112 ],
3113 "source_info" : {
3114 "filename" : "include/control/spgw.p4",
3115 "line" : 196,
3116 "column" : 8,
3117 "source_fragment" : "hdr.inner_ipv4.setInvalid()"
3118 }
3119 },
3120 {
3121 "op" : "remove_header",
3122 "parameters" : [
3123 {
3124 "type" : "header",
3125 "value" : "gtpu"
3126 }
3127 ],
3128 "source_info" : {
3129 "filename" : "include/control/spgw.p4",
3130 "line" : 197,
3131 "column" : 8,
3132 "source_fragment" : "hdr.gtpu.setInvalid()"
3133 }
3134 },
3135 {
3136 "op" : "remove_header",
3137 "parameters" : [
3138 {
3139 "type" : "header",
3140 "value" : "udp"
3141 }
3142 ],
3143 "source_info" : {
3144 "filename" : "include/control/spgw.p4",
3145 "line" : 201,
3146 "column" : 8,
3147 "source_fragment" : "hdr.udp.setInvalid()"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003148 }
3149 },
3150 {
3151 "op" : "assign_header",
3152 "parameters" : [
3153 {
3154 "type" : "header",
Robert MacDavidde12b982020-07-15 18:38:59 -07003155 "value" : "tcp"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003156 },
3157 {
3158 "type" : "header",
Robert MacDavidde12b982020-07-15 18:38:59 -07003159 "value" : "inner_tcp"
3160 }
3161 ],
3162 "source_info" : {
3163 "filename" : "include/control/spgw.p4",
3164 "line" : 202,
3165 "column" : 8,
3166 "source_fragment" : "hdr.tcp = hdr.inner_tcp"
3167 }
3168 },
3169 {
3170 "op" : "remove_header",
3171 "parameters" : [
3172 {
3173 "type" : "header",
3174 "value" : "inner_tcp"
3175 }
3176 ],
3177 "source_info" : {
3178 "filename" : "include/control/spgw.p4",
3179 "line" : 203,
3180 "column" : 8,
3181 "source_fragment" : "hdr.inner_tcp.setInvalid()"
3182 }
3183 }
3184 ]
3185 },
3186 {
3187 "name" : "FabricIngress.spgw_ingress.decap_inner_udp",
3188 "id" : 33,
3189 "runtime_data" : [],
3190 "primitives" : [
3191 {
3192 "op" : "assign",
3193 "parameters" : [
3194 {
3195 "type" : "field",
3196 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
3197 },
3198 {
3199 "type" : "hexstr",
3200 "value" : "0x0800"
3201 }
3202 ],
3203 "source_info" : {
3204 "filename" : "include/control/../define.p4",
3205 "line" : 128,
3206 "column" : 31,
3207 "source_fragment" : "0x0800; ..."
3208 }
3209 },
3210 {
3211 "op" : "assign",
3212 "parameters" : [
3213 {
3214 "type" : "field",
3215 "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
3216 },
3217 {
3218 "type" : "field",
3219 "value" : ["inner_ipv4", "protocol"]
3220 }
3221 ],
3222 "source_info" : {
3223 "filename" : "include/control/spgw.p4",
3224 "line" : 189,
3225 "column" : 27,
3226 "source_fragment" : "= hdr.inner_ipv4.protocol; ..."
3227 }
3228 },
3229 {
3230 "op" : "assign",
3231 "parameters" : [
3232 {
3233 "type" : "field",
3234 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
3235 },
3236 {
3237 "type" : "field",
3238 "value" : ["inner_ipv4", "src_addr"]
3239 }
3240 ],
3241 "source_info" : {
3242 "filename" : "include/control/spgw.p4",
3243 "line" : 190,
3244 "column" : 32,
3245 "source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
3246 }
3247 },
3248 {
3249 "op" : "assign",
3250 "parameters" : [
3251 {
3252 "type" : "field",
3253 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
3254 },
3255 {
3256 "type" : "field",
3257 "value" : ["inner_ipv4", "dst_addr"]
3258 }
3259 ],
3260 "source_info" : {
3261 "filename" : "include/control/spgw.p4",
3262 "line" : 191,
3263 "column" : 32,
3264 "source_fragment" : "= hdr.inner_ipv4.dst_addr; ..."
3265 }
3266 },
3267 {
3268 "op" : "assign",
3269 "parameters" : [
3270 {
3271 "type" : "field",
3272 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
3273 },
3274 {
3275 "type" : "field",
3276 "value" : ["scalars", "fabric_metadata_t._inner_l4_sport17"]
3277 }
3278 ],
3279 "source_info" : {
3280 "filename" : "include/control/spgw.p4",
3281 "line" : 192,
3282 "column" : 27,
3283 "source_fragment" : "= fabric_md.inner_l4_sport; ..."
3284 }
3285 },
3286 {
3287 "op" : "assign",
3288 "parameters" : [
3289 {
3290 "type" : "field",
3291 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
3292 },
3293 {
3294 "type" : "field",
3295 "value" : ["scalars", "fabric_metadata_t._inner_l4_dport18"]
3296 }
3297 ],
3298 "source_info" : {
3299 "filename" : "include/control/spgw.p4",
3300 "line" : 193,
3301 "column" : 27,
3302 "source_fragment" : "= fabric_md.inner_l4_dport; ..."
3303 }
3304 },
3305 {
3306 "op" : "assign_header",
3307 "parameters" : [
3308 {
3309 "type" : "header",
3310 "value" : "ipv4"
3311 },
3312 {
3313 "type" : "header",
3314 "value" : "inner_ipv4"
3315 }
3316 ],
3317 "source_info" : {
3318 "filename" : "include/control/spgw.p4",
3319 "line" : 195,
3320 "column" : 8,
3321 "source_fragment" : "hdr.ipv4 = hdr.inner_ipv4"
3322 }
3323 },
3324 {
3325 "op" : "remove_header",
3326 "parameters" : [
3327 {
3328 "type" : "header",
3329 "value" : "inner_ipv4"
3330 }
3331 ],
3332 "source_info" : {
3333 "filename" : "include/control/spgw.p4",
3334 "line" : 196,
3335 "column" : 8,
3336 "source_fragment" : "hdr.inner_ipv4.setInvalid()"
3337 }
3338 },
3339 {
3340 "op" : "remove_header",
3341 "parameters" : [
3342 {
3343 "type" : "header",
3344 "value" : "gtpu"
3345 }
3346 ],
3347 "source_info" : {
3348 "filename" : "include/control/spgw.p4",
3349 "line" : 197,
3350 "column" : 8,
3351 "source_fragment" : "hdr.gtpu.setInvalid()"
3352 }
3353 },
3354 {
3355 "op" : "assign_header",
3356 "parameters" : [
3357 {
3358 "type" : "header",
3359 "value" : "udp"
3360 },
3361 {
3362 "type" : "header",
3363 "value" : "inner_udp"
3364 }
3365 ],
3366 "source_info" : {
3367 "filename" : "include/control/spgw.p4",
3368 "line" : 207,
3369 "column" : 8,
3370 "source_fragment" : "hdr.udp = hdr.inner_udp"
3371 }
3372 },
3373 {
3374 "op" : "remove_header",
3375 "parameters" : [
3376 {
3377 "type" : "header",
3378 "value" : "inner_udp"
3379 }
3380 ],
3381 "source_info" : {
3382 "filename" : "include/control/spgw.p4",
3383 "line" : 208,
3384 "column" : 8,
3385 "source_fragment" : "hdr.inner_udp.setInvalid()"
3386 }
3387 }
3388 ]
3389 },
3390 {
3391 "name" : "FabricIngress.spgw_ingress.decap_inner_icmp",
3392 "id" : 34,
3393 "runtime_data" : [],
3394 "primitives" : [
3395 {
3396 "op" : "assign",
3397 "parameters" : [
3398 {
3399 "type" : "field",
3400 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
3401 },
3402 {
3403 "type" : "hexstr",
3404 "value" : "0x0800"
3405 }
3406 ],
3407 "source_info" : {
3408 "filename" : "include/control/../define.p4",
3409 "line" : 128,
3410 "column" : 31,
3411 "source_fragment" : "0x0800; ..."
3412 }
3413 },
3414 {
3415 "op" : "assign",
3416 "parameters" : [
3417 {
3418 "type" : "field",
3419 "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
3420 },
3421 {
3422 "type" : "field",
3423 "value" : ["inner_ipv4", "protocol"]
3424 }
3425 ],
3426 "source_info" : {
3427 "filename" : "include/control/spgw.p4",
3428 "line" : 189,
3429 "column" : 27,
3430 "source_fragment" : "= hdr.inner_ipv4.protocol; ..."
3431 }
3432 },
3433 {
3434 "op" : "assign",
3435 "parameters" : [
3436 {
3437 "type" : "field",
3438 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
3439 },
3440 {
3441 "type" : "field",
3442 "value" : ["inner_ipv4", "src_addr"]
3443 }
3444 ],
3445 "source_info" : {
3446 "filename" : "include/control/spgw.p4",
3447 "line" : 190,
3448 "column" : 32,
3449 "source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
3450 }
3451 },
3452 {
3453 "op" : "assign",
3454 "parameters" : [
3455 {
3456 "type" : "field",
3457 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
3458 },
3459 {
3460 "type" : "field",
3461 "value" : ["inner_ipv4", "dst_addr"]
3462 }
3463 ],
3464 "source_info" : {
3465 "filename" : "include/control/spgw.p4",
3466 "line" : 191,
3467 "column" : 32,
3468 "source_fragment" : "= hdr.inner_ipv4.dst_addr; ..."
3469 }
3470 },
3471 {
3472 "op" : "assign",
3473 "parameters" : [
3474 {
3475 "type" : "field",
3476 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
3477 },
3478 {
3479 "type" : "field",
3480 "value" : ["scalars", "fabric_metadata_t._inner_l4_sport17"]
3481 }
3482 ],
3483 "source_info" : {
3484 "filename" : "include/control/spgw.p4",
3485 "line" : 192,
3486 "column" : 27,
3487 "source_fragment" : "= fabric_md.inner_l4_sport; ..."
3488 }
3489 },
3490 {
3491 "op" : "assign",
3492 "parameters" : [
3493 {
3494 "type" : "field",
3495 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
3496 },
3497 {
3498 "type" : "field",
3499 "value" : ["scalars", "fabric_metadata_t._inner_l4_dport18"]
3500 }
3501 ],
3502 "source_info" : {
3503 "filename" : "include/control/spgw.p4",
3504 "line" : 193,
3505 "column" : 27,
3506 "source_fragment" : "= fabric_md.inner_l4_dport; ..."
3507 }
3508 },
3509 {
3510 "op" : "assign_header",
3511 "parameters" : [
3512 {
3513 "type" : "header",
3514 "value" : "ipv4"
3515 },
3516 {
3517 "type" : "header",
3518 "value" : "inner_ipv4"
3519 }
3520 ],
3521 "source_info" : {
3522 "filename" : "include/control/spgw.p4",
3523 "line" : 195,
3524 "column" : 8,
3525 "source_fragment" : "hdr.ipv4 = hdr.inner_ipv4"
3526 }
3527 },
3528 {
3529 "op" : "remove_header",
3530 "parameters" : [
3531 {
3532 "type" : "header",
3533 "value" : "inner_ipv4"
3534 }
3535 ],
3536 "source_info" : {
3537 "filename" : "include/control/spgw.p4",
3538 "line" : 196,
3539 "column" : 8,
3540 "source_fragment" : "hdr.inner_ipv4.setInvalid()"
3541 }
3542 },
3543 {
3544 "op" : "remove_header",
3545 "parameters" : [
3546 {
3547 "type" : "header",
3548 "value" : "gtpu"
3549 }
3550 ],
3551 "source_info" : {
3552 "filename" : "include/control/spgw.p4",
3553 "line" : 197,
3554 "column" : 8,
3555 "source_fragment" : "hdr.gtpu.setInvalid()"
3556 }
3557 },
3558 {
3559 "op" : "remove_header",
3560 "parameters" : [
3561 {
3562 "type" : "header",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003563 "value" : "udp"
3564 }
3565 ],
3566 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07003567 "filename" : "include/control/spgw.p4",
3568 "line" : 212,
3569 "column" : 8,
3570 "source_fragment" : "hdr.udp.setInvalid()"
3571 }
3572 },
3573 {
3574 "op" : "assign_header",
3575 "parameters" : [
3576 {
3577 "type" : "header",
3578 "value" : "icmp"
3579 },
3580 {
3581 "type" : "header",
3582 "value" : "inner_icmp"
3583 }
3584 ],
3585 "source_info" : {
3586 "filename" : "include/control/spgw.p4",
3587 "line" : 213,
3588 "column" : 8,
3589 "source_fragment" : "hdr.icmp = hdr.inner_icmp"
3590 }
3591 },
3592 {
3593 "op" : "remove_header",
3594 "parameters" : [
3595 {
3596 "type" : "header",
3597 "value" : "inner_icmp"
3598 }
3599 ],
3600 "source_info" : {
3601 "filename" : "include/control/spgw.p4",
3602 "line" : 214,
3603 "column" : 8,
3604 "source_fragment" : "hdr.inner_icmp.setInvalid()"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003605 }
3606 }
3607 ]
3608 },
3609 {
Robert MacDavidde12b982020-07-15 18:38:59 -07003610 "name" : "FabricIngress.spgw_ingress.decap_inner_unknown",
3611 "id" : 35,
3612 "runtime_data" : [],
3613 "primitives" : [
3614 {
3615 "op" : "assign",
3616 "parameters" : [
3617 {
3618 "type" : "field",
3619 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
3620 },
3621 {
3622 "type" : "hexstr",
3623 "value" : "0x0800"
3624 }
3625 ],
3626 "source_info" : {
3627 "filename" : "include/control/../define.p4",
3628 "line" : 128,
3629 "column" : 31,
3630 "source_fragment" : "0x0800; ..."
3631 }
3632 },
3633 {
3634 "op" : "assign",
3635 "parameters" : [
3636 {
3637 "type" : "field",
3638 "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
3639 },
3640 {
3641 "type" : "field",
3642 "value" : ["inner_ipv4", "protocol"]
3643 }
3644 ],
3645 "source_info" : {
3646 "filename" : "include/control/spgw.p4",
3647 "line" : 189,
3648 "column" : 27,
3649 "source_fragment" : "= hdr.inner_ipv4.protocol; ..."
3650 }
3651 },
3652 {
3653 "op" : "assign",
3654 "parameters" : [
3655 {
3656 "type" : "field",
3657 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
3658 },
3659 {
3660 "type" : "field",
3661 "value" : ["inner_ipv4", "src_addr"]
3662 }
3663 ],
3664 "source_info" : {
3665 "filename" : "include/control/spgw.p4",
3666 "line" : 190,
3667 "column" : 32,
3668 "source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
3669 }
3670 },
3671 {
3672 "op" : "assign",
3673 "parameters" : [
3674 {
3675 "type" : "field",
3676 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
3677 },
3678 {
3679 "type" : "field",
3680 "value" : ["inner_ipv4", "dst_addr"]
3681 }
3682 ],
3683 "source_info" : {
3684 "filename" : "include/control/spgw.p4",
3685 "line" : 191,
3686 "column" : 32,
3687 "source_fragment" : "= hdr.inner_ipv4.dst_addr; ..."
3688 }
3689 },
3690 {
3691 "op" : "assign",
3692 "parameters" : [
3693 {
3694 "type" : "field",
3695 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
3696 },
3697 {
3698 "type" : "field",
3699 "value" : ["scalars", "fabric_metadata_t._inner_l4_sport17"]
3700 }
3701 ],
3702 "source_info" : {
3703 "filename" : "include/control/spgw.p4",
3704 "line" : 192,
3705 "column" : 27,
3706 "source_fragment" : "= fabric_md.inner_l4_sport; ..."
3707 }
3708 },
3709 {
3710 "op" : "assign",
3711 "parameters" : [
3712 {
3713 "type" : "field",
3714 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
3715 },
3716 {
3717 "type" : "field",
3718 "value" : ["scalars", "fabric_metadata_t._inner_l4_dport18"]
3719 }
3720 ],
3721 "source_info" : {
3722 "filename" : "include/control/spgw.p4",
3723 "line" : 193,
3724 "column" : 27,
3725 "source_fragment" : "= fabric_md.inner_l4_dport; ..."
3726 }
3727 },
3728 {
3729 "op" : "assign_header",
3730 "parameters" : [
3731 {
3732 "type" : "header",
3733 "value" : "ipv4"
3734 },
3735 {
3736 "type" : "header",
3737 "value" : "inner_ipv4"
3738 }
3739 ],
3740 "source_info" : {
3741 "filename" : "include/control/spgw.p4",
3742 "line" : 195,
3743 "column" : 8,
3744 "source_fragment" : "hdr.ipv4 = hdr.inner_ipv4"
3745 }
3746 },
3747 {
3748 "op" : "remove_header",
3749 "parameters" : [
3750 {
3751 "type" : "header",
3752 "value" : "inner_ipv4"
3753 }
3754 ],
3755 "source_info" : {
3756 "filename" : "include/control/spgw.p4",
3757 "line" : 196,
3758 "column" : 8,
3759 "source_fragment" : "hdr.inner_ipv4.setInvalid()"
3760 }
3761 },
3762 {
3763 "op" : "remove_header",
3764 "parameters" : [
3765 {
3766 "type" : "header",
3767 "value" : "gtpu"
3768 }
3769 ],
3770 "source_info" : {
3771 "filename" : "include/control/spgw.p4",
3772 "line" : 197,
3773 "column" : 8,
3774 "source_fragment" : "hdr.gtpu.setInvalid()"
3775 }
3776 },
3777 {
3778 "op" : "remove_header",
3779 "parameters" : [
3780 {
3781 "type" : "header",
3782 "value" : "udp"
3783 }
3784 ],
3785 "source_info" : {
3786 "filename" : "include/control/spgw.p4",
3787 "line" : 218,
3788 "column" : 8,
3789 "source_fragment" : "hdr.udp.setInvalid()"
3790 }
3791 }
3792 ]
3793 },
3794 {
3795 "name" : "act",
3796 "id" : 36,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003797 "runtime_data" : [],
3798 "primitives" : [
3799 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003800 "op" : "assign",
3801 "parameters" : [
3802 {
3803 "type" : "field",
3804 "value" : ["standard_metadata", "egress_spec"]
3805 },
3806 {
3807 "type" : "field",
3808 "value" : ["packet_out", "egress_port"]
3809 }
3810 ],
3811 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003812 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003813 "line" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003814 "column" : 12,
3815 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
3816 }
3817 },
3818 {
3819 "op" : "remove_header",
3820 "parameters" : [
3821 {
3822 "type" : "header",
3823 "value" : "packet_out"
3824 }
3825 ],
3826 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003827 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003828 "line" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003829 "column" : 12,
3830 "source_fragment" : "hdr.packet_out.setInvalid()"
3831 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003832 },
3833 {
3834 "op" : "assign",
3835 "parameters" : [
3836 {
3837 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003838 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out11"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003839 },
3840 {
3841 "type" : "expression",
3842 "value" : {
3843 "type" : "expression",
3844 "value" : {
3845 "op" : "b2d",
3846 "left" : null,
3847 "right" : {
3848 "type" : "bool",
3849 "value" : true
3850 }
3851 }
3852 }
3853 }
3854 ],
3855 "source_info" : {
3856 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003857 "line" : 27,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003858 "column" : 53,
3859 "source_fragment" : "= true; ..."
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003860 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003861 },
3862 {
3863 "op" : "exit",
3864 "parameters" : [],
3865 "source_info" : {
3866 "filename" : "include/control/packetio.p4",
3867 "line" : 29,
3868 "column" : 12,
3869 "source_fragment" : "exit"
3870 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003871 }
3872 ]
3873 },
3874 {
Robert MacDavidde12b982020-07-15 18:38:59 -07003875 "name" : "act_0",
3876 "id" : 37,
3877 "runtime_data" : [],
3878 "primitives" : [
3879 {
3880 "op" : "assign",
3881 "parameters" : [
3882 {
3883 "type" : "field",
3884 "value" : ["scalars", "spgw_ingress_hasReturned"]
3885 },
3886 {
3887 "type" : "expression",
3888 "value" : {
3889 "type" : "expression",
3890 "value" : {
3891 "op" : "b2d",
3892 "left" : null,
3893 "right" : {
3894 "type" : "bool",
3895 "value" : false
3896 }
3897 }
3898 }
3899 }
3900 ]
3901 }
3902 ]
3903 },
3904 {
3905 "name" : "act_1",
3906 "id" : 38,
3907 "runtime_data" : [],
3908 "primitives" : [
3909 {
3910 "op" : "assign",
3911 "parameters" : [
3912 {
3913 "type" : "field",
3914 "value" : ["scalars", "spgw_ingress_hasReturned"]
3915 },
3916 {
3917 "type" : "expression",
3918 "value" : {
3919 "type" : "expression",
3920 "value" : {
3921 "op" : "b2d",
3922 "left" : null,
3923 "right" : {
3924 "type" : "bool",
3925 "value" : true
3926 }
3927 }
3928 }
3929 }
3930 ],
3931 "source_info" : {
3932 "filename" : "include/control/spgw.p4",
3933 "line" : 251,
3934 "column" : 46,
3935 "source_fragment" : "return"
3936 }
3937 }
3938 ]
3939 },
3940 {
3941 "name" : "act_2",
3942 "id" : 39,
3943 "runtime_data" : [],
3944 "primitives" : [
3945 {
3946 "op" : "count",
3947 "parameters" : [
3948 {
3949 "type" : "counter_array",
3950 "value" : "FabricIngress.spgw_ingress.pdr_counter"
3951 },
3952 {
3953 "type" : "field",
3954 "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id25"]
3955 }
3956 ],
3957 "source_info" : {
3958 "filename" : "include/control/spgw.p4",
3959 "line" : 265,
3960 "column" : 8,
3961 "source_fragment" : "pdr_counter.count(fabric_md.spgw.ctr_id)"
3962 }
3963 }
3964 ]
3965 },
3966 {
3967 "name" : "act_3",
3968 "id" : 40,
3969 "runtime_data" : [],
3970 "primitives" : [
3971 {
3972 "op" : "assign",
3973 "parameters" : [
3974 {
3975 "type" : "field",
3976 "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
3977 },
3978 {
3979 "type" : "expression",
3980 "value" : {
3981 "type" : "expression",
3982 "value" : {
3983 "op" : "b2d",
3984 "left" : null,
3985 "right" : {
3986 "type" : "bool",
3987 "value" : true
3988 }
3989 }
3990 }
3991 }
3992 ],
3993 "source_info" : {
3994 "filename" : "include/control/spgw.p4",
3995 "line" : 282,
3996 "column" : 38,
3997 "source_fragment" : "= true; ..."
3998 }
3999 },
4000 {
4001 "op" : "assign",
4002 "parameters" : [
4003 {
4004 "type" : "field",
4005 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
4006 },
4007 {
4008 "type" : "expression",
4009 "value" : {
4010 "type" : "expression",
4011 "value" : {
4012 "op" : "b2d",
4013 "left" : null,
4014 "right" : {
4015 "type" : "bool",
4016 "value" : true
4017 }
4018 }
4019 }
4020 }
4021 ],
4022 "source_info" : {
4023 "filename" : "include/control/spgw.p4",
4024 "line" : 283,
4025 "column" : 32,
4026 "source_fragment" : "= true; ..."
4027 }
4028 }
4029 ]
4030 },
4031 {
4032 "name" : "act_4",
4033 "id" : 41,
4034 "runtime_data" : [],
4035 "primitives" : [
4036 {
4037 "op" : "assign",
4038 "parameters" : [
4039 {
4040 "type" : "field",
4041 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"]
4042 },
4043 {
4044 "type" : "field",
4045 "value" : ["ipv4", "total_len"]
4046 }
4047 ],
4048 "source_info" : {
4049 "filename" : "include/control/spgw.p4",
4050 "line" : 291,
4051 "column" : 32,
4052 "source_fragment" : "= hdr.ipv4.total_len; ..."
4053 }
4054 }
4055 ]
4056 },
4057 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004058 "name" : "act_5",
Robert MacDavidde12b982020-07-15 18:38:59 -07004059 "id" : 42,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004060 "runtime_data" : [],
4061 "primitives" : [
4062 {
4063 "op" : "assign",
4064 "parameters" : [
4065 {
4066 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004067 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004068 },
4069 {
4070 "type" : "field",
4071 "value" : ["vlan_tag", "vlan_id"]
4072 }
4073 ],
4074 "source_info" : {
4075 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004076 "line" : 111,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004077 "column" : 36,
4078 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004079 }
4080 },
4081 {
4082 "op" : "assign",
4083 "parameters" : [
4084 {
4085 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004086 "value" : ["scalars", "fabric_metadata_t._vlan_pri2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004087 },
4088 {
4089 "type" : "field",
4090 "value" : ["vlan_tag", "pri"]
4091 }
4092 ],
4093 "source_info" : {
4094 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004095 "line" : 112,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004096 "column" : 37,
4097 "source_fragment" : "= hdr.vlan_tag.pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004098 }
4099 },
4100 {
4101 "op" : "assign",
4102 "parameters" : [
4103 {
4104 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004105 "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004106 },
4107 {
4108 "type" : "field",
4109 "value" : ["vlan_tag", "cfi"]
4110 }
4111 ],
4112 "source_info" : {
4113 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004114 "line" : 113,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004115 "column" : 37,
4116 "source_fragment" : "= hdr.vlan_tag.cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004117 }
4118 }
4119 ]
4120 },
4121 {
4122 "name" : "act_6",
Robert MacDavidde12b982020-07-15 18:38:59 -07004123 "id" : 43,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004124 "runtime_data" : [],
4125 "primitives" : [
4126 {
4127 "op" : "assign",
4128 "parameters" : [
4129 {
4130 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004131 "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004132 },
4133 {
4134 "type" : "hexstr",
4135 "value" : "0x41"
4136 }
4137 ],
4138 "source_info" : {
4139 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004140 "line" : 127,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004141 "column" : 37,
4142 "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004143 }
4144 }
4145 ]
4146 },
4147 {
4148 "name" : "act_7",
Robert MacDavidde12b982020-07-15 18:38:59 -07004149 "id" : 44,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004150 "runtime_data" : [],
4151 "primitives" : [
4152 {
4153 "op" : "assign",
4154 "parameters" : [
4155 {
4156 "type" : "field",
Robert MacDavidde12b982020-07-15 18:38:59 -07004157 "value" : ["scalars", "tmp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004158 },
4159 {
4160 "type" : "expression",
4161 "value" : {
4162 "type" : "expression",
4163 "value" : {
4164 "op" : "&",
4165 "left" : {
4166 "type" : "field",
4167 "value" : ["standard_metadata", "egress_spec"]
4168 },
4169 "right" : {
4170 "type" : "hexstr",
4171 "value" : "0xffffffff"
4172 }
4173 }
4174 }
4175 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004176 ],
4177 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004178 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004179 "line" : 31,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004180 "column" : 38,
4181 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
4182 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004183 },
4184 {
4185 "op" : "count",
4186 "parameters" : [
4187 {
4188 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004189 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004190 },
4191 {
4192 "type" : "field",
Robert MacDavidde12b982020-07-15 18:38:59 -07004193 "value" : ["scalars", "tmp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004194 }
4195 ],
4196 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004197 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004198 "line" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004199 "column" : 12,
4200 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
4201 }
4202 }
4203 ]
4204 },
4205 {
Robert MacDavidde12b982020-07-15 18:38:59 -07004206 "name" : "act_8",
4207 "id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004208 "runtime_data" : [],
4209 "primitives" : [
4210 {
4211 "op" : "assign",
4212 "parameters" : [
4213 {
4214 "type" : "field",
Robert MacDavidde12b982020-07-15 18:38:59 -07004215 "value" : ["scalars", "tmp_3"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004216 },
4217 {
4218 "type" : "expression",
4219 "value" : {
4220 "type" : "expression",
4221 "value" : {
4222 "op" : "&",
4223 "left" : {
4224 "type" : "field",
4225 "value" : ["standard_metadata", "ingress_port"]
4226 },
4227 "right" : {
4228 "type" : "hexstr",
4229 "value" : "0xffffffff"
4230 }
4231 }
4232 }
4233 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004234 ],
4235 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004236 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004237 "line" : 34,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004238 "column" : 39,
4239 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
4240 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004241 },
4242 {
4243 "op" : "count",
4244 "parameters" : [
4245 {
4246 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004247 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004248 },
4249 {
4250 "type" : "field",
Robert MacDavidde12b982020-07-15 18:38:59 -07004251 "value" : ["scalars", "tmp_3"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004252 }
4253 ],
4254 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004255 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004256 "line" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004257 "column" : 12,
4258 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
4259 }
4260 }
4261 ]
4262 },
4263 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004264 "name" : "nop",
Robert MacDavidde12b982020-07-15 18:38:59 -07004265 "id" : 46,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004266 "runtime_data" : [],
Charles Chancd03f072018-08-31 17:46:37 -07004267 "primitives" : []
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004268 },
4269 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004270 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
Robert MacDavidde12b982020-07-15 18:38:59 -07004271 "id" : 47,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004272 "runtime_data" : [],
4273 "primitives" : [
4274 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004275 "op" : "remove_header",
4276 "parameters" : [
4277 {
4278 "type" : "header",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004279 "value" : "mpls"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004280 }
4281 ],
4282 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004283 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004284 "line" : 270,
Yi Tseng47eac892018-07-11 02:17:04 +08004285 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004286 "source_fragment" : "hdr.mpls.setInvalid()"
Yi Tseng47eac892018-07-11 02:17:04 +08004287 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004288 },
Yi Tseng47eac892018-07-11 02:17:04 +08004289 {
4290 "op" : "assign",
4291 "parameters" : [
4292 {
4293 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004294 "value" : ["eth_type", "value"]
Yi Tseng47eac892018-07-11 02:17:04 +08004295 },
4296 {
4297 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004298 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004299 }
4300 ],
4301 "source_info" : {
4302 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004303 "line" : 272,
Daniele Moro5a2de712019-09-24 14:34:07 -07004304 "column" : 8,
4305 "source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004306 }
4307 }
4308 ]
4309 },
4310 {
4311 "name" : "FabricEgress.egress_next.set_mpls",
Robert MacDavidde12b982020-07-15 18:38:59 -07004312 "id" : 48,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004313 "runtime_data" : [],
4314 "primitives" : [
4315 {
4316 "op" : "add_header",
4317 "parameters" : [
4318 {
4319 "type" : "header",
4320 "value" : "mpls"
Yi Tseng47eac892018-07-11 02:17:04 +08004321 }
4322 ],
4323 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004324 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004325 "line" : 277,
Yi Tseng47eac892018-07-11 02:17:04 +08004326 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004327 "source_fragment" : "hdr.mpls.setValid()"
4328 }
4329 },
4330 {
4331 "op" : "assign",
4332 "parameters" : [
4333 {
4334 "type" : "field",
4335 "value" : ["mpls", "label"]
4336 },
4337 {
4338 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004339 "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004340 }
4341 ],
4342 "source_info" : {
4343 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004344 "line" : 278,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004345 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004346 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004347 }
4348 },
4349 {
4350 "op" : "assign",
4351 "parameters" : [
4352 {
4353 "type" : "field",
4354 "value" : ["mpls", "tc"]
4355 },
4356 {
4357 "type" : "hexstr",
4358 "value" : "0x00"
4359 }
4360 ],
4361 "source_info" : {
4362 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004363 "line" : 279,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004364 "column" : 8,
4365 "source_fragment" : "hdr.mpls.tc = 3w0"
4366 }
4367 },
4368 {
4369 "op" : "assign",
4370 "parameters" : [
4371 {
4372 "type" : "field",
4373 "value" : ["mpls", "bos"]
4374 },
4375 {
4376 "type" : "hexstr",
4377 "value" : "0x01"
4378 }
4379 ],
4380 "source_info" : {
4381 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004382 "line" : 280,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004383 "column" : 8,
4384 "source_fragment" : "hdr.mpls.bos = 1w1"
4385 }
4386 },
4387 {
4388 "op" : "assign",
4389 "parameters" : [
4390 {
4391 "type" : "field",
4392 "value" : ["mpls", "ttl"]
4393 },
4394 {
4395 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004396 "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004397 }
4398 ],
4399 "source_info" : {
4400 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004401 "line" : 281,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004402 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004403 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004404 }
4405 },
4406 {
4407 "op" : "assign",
4408 "parameters" : [
4409 {
4410 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004411 "value" : ["eth_type", "value"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004412 },
4413 {
4414 "type" : "hexstr",
4415 "value" : "0x8847"
4416 }
4417 ],
4418 "source_info" : {
4419 "filename" : "include/control/../define.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07004420 "line" : 126,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004421 "column" : 31,
4422 "source_fragment" : "0x8847; ..."
4423 }
4424 }
4425 ]
4426 },
4427 {
4428 "name" : "FabricEgress.egress_next.push_vlan",
Robert MacDavidde12b982020-07-15 18:38:59 -07004429 "id" : 49,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004430 "runtime_data" : [],
4431 "primitives" : [
4432 {
4433 "op" : "add_header",
4434 "parameters" : [
4435 {
4436 "type" : "header",
4437 "value" : "vlan_tag"
4438 }
4439 ],
4440 "source_info" : {
4441 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004442 "line" : 289,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004443 "column" : 8,
4444 "source_fragment" : "hdr.vlan_tag.setValid()"
4445 }
4446 },
4447 {
4448 "op" : "assign",
4449 "parameters" : [
4450 {
4451 "type" : "field",
4452 "value" : ["vlan_tag", "cfi"]
4453 },
4454 {
4455 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004456 "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004457 }
4458 ],
4459 "source_info" : {
4460 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004461 "line" : 290,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004462 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004463 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004464 }
4465 },
4466 {
4467 "op" : "assign",
4468 "parameters" : [
4469 {
4470 "type" : "field",
4471 "value" : ["vlan_tag", "pri"]
4472 },
4473 {
4474 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004475 "value" : ["scalars", "fabric_metadata_t._vlan_pri2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004476 }
4477 ],
4478 "source_info" : {
4479 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004480 "line" : 291,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004481 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004482 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004483 }
4484 },
4485 {
4486 "op" : "assign",
4487 "parameters" : [
4488 {
4489 "type" : "field",
4490 "value" : ["vlan_tag", "eth_type"]
4491 },
4492 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004493 "type" : "hexstr",
4494 "value" : "0x8100"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004495 }
4496 ],
4497 "source_info" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004498 "filename" : "include/control/../define.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07004499 "line" : 125,
Daniele Moro5a2de712019-09-24 14:34:07 -07004500 "column" : 31,
4501 "source_fragment" : "0x8100; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004502 }
4503 },
4504 {
4505 "op" : "assign",
4506 "parameters" : [
4507 {
4508 "type" : "field",
4509 "value" : ["vlan_tag", "vlan_id"]
4510 },
4511 {
4512 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004513 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004514 }
4515 ],
4516 "source_info" : {
4517 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004518 "line" : 293,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004519 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004520 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004521 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004522 }
4523 ]
4524 },
4525 {
4526 "name" : "FabricEgress.egress_next.pop_vlan",
Robert MacDavidde12b982020-07-15 18:38:59 -07004527 "id" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004528 "runtime_data" : [],
4529 "primitives" : [
4530 {
Yi Tseng47eac892018-07-11 02:17:04 +08004531 "op" : "remove_header",
4532 "parameters" : [
4533 {
4534 "type" : "header",
4535 "value" : "vlan_tag"
4536 }
4537 ],
4538 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004539 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004540 "line" : 316,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004541 "column" : 8,
4542 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4543 }
4544 }
4545 ]
4546 },
4547 {
Robert MacDavidde12b982020-07-15 18:38:59 -07004548 "name" : "FabricEgress.spgw_egress.gtpu_encap",
4549 "id" : 51,
4550 "runtime_data" : [],
4551 "primitives" : [
4552 {
4553 "op" : "add_header",
4554 "parameters" : [
4555 {
4556 "type" : "header",
4557 "value" : "gtpu_ipv4"
4558 }
4559 ],
4560 "source_info" : {
4561 "filename" : "include/control/spgw.p4",
4562 "line" : 308,
4563 "column" : 8,
4564 "source_fragment" : "hdr.gtpu_ipv4.setValid()"
4565 }
4566 },
4567 {
4568 "op" : "assign",
4569 "parameters" : [
4570 {
4571 "type" : "field",
4572 "value" : ["gtpu_ipv4", "version"]
4573 },
4574 {
4575 "type" : "hexstr",
4576 "value" : "0x04"
4577 }
4578 ],
4579 "source_info" : {
4580 "filename" : "include/control/spgw.p4",
4581 "line" : 309,
4582 "column" : 8,
4583 "source_fragment" : "hdr.gtpu_ipv4.version = 4"
4584 }
4585 },
4586 {
4587 "op" : "assign",
4588 "parameters" : [
4589 {
4590 "type" : "field",
4591 "value" : ["gtpu_ipv4", "ihl"]
4592 },
4593 {
4594 "type" : "hexstr",
4595 "value" : "0x05"
4596 }
4597 ],
4598 "source_info" : {
4599 "filename" : "include/control/../define.p4",
4600 "line" : 143,
4601 "column" : 28,
4602 "source_fragment" : "5; ..."
4603 }
4604 },
4605 {
4606 "op" : "assign",
4607 "parameters" : [
4608 {
4609 "type" : "field",
4610 "value" : ["gtpu_ipv4", "dscp"]
4611 },
4612 {
4613 "type" : "hexstr",
4614 "value" : "0x00"
4615 }
4616 ],
4617 "source_info" : {
4618 "filename" : "include/control/spgw.p4",
4619 "line" : 311,
4620 "column" : 8,
4621 "source_fragment" : "hdr.gtpu_ipv4.dscp = 0"
4622 }
4623 },
4624 {
4625 "op" : "assign",
4626 "parameters" : [
4627 {
4628 "type" : "field",
4629 "value" : ["gtpu_ipv4", "ecn"]
4630 },
4631 {
4632 "type" : "hexstr",
4633 "value" : "0x00"
4634 }
4635 ],
4636 "source_info" : {
4637 "filename" : "include/control/spgw.p4",
4638 "line" : 312,
4639 "column" : 8,
4640 "source_fragment" : "hdr.gtpu_ipv4.ecn = 0"
4641 }
4642 },
4643 {
4644 "op" : "assign",
4645 "parameters" : [
4646 {
4647 "type" : "field",
4648 "value" : ["gtpu_ipv4", "total_len"]
4649 },
4650 {
4651 "type" : "expression",
4652 "value" : {
4653 "type" : "expression",
4654 "value" : {
4655 "op" : "&",
4656 "left" : {
4657 "type" : "expression",
4658 "value" : {
4659 "op" : "+",
4660 "left" : {
4661 "type" : "field",
4662 "value" : ["ipv4", "total_len"]
4663 },
4664 "right" : {
4665 "type" : "hexstr",
4666 "value" : "0x0024"
4667 }
4668 }
4669 },
4670 "right" : {
4671 "type" : "hexstr",
4672 "value" : "0xffff"
4673 }
4674 }
4675 }
4676 }
4677 ],
4678 "source_info" : {
4679 "filename" : "include/control/spgw.p4",
4680 "line" : 313,
4681 "column" : 8,
4682 "source_fragment" : "hdr.gtpu_ipv4.total_len = hdr.ipv4.total_len ..."
4683 }
4684 },
4685 {
4686 "op" : "assign",
4687 "parameters" : [
4688 {
4689 "type" : "field",
4690 "value" : ["gtpu_ipv4", "identification"]
4691 },
4692 {
4693 "type" : "hexstr",
4694 "value" : "0x1513"
4695 }
4696 ],
4697 "source_info" : {
4698 "filename" : "include/control/spgw.p4",
4699 "line" : 315,
4700 "column" : 8,
4701 "source_fragment" : "hdr.gtpu_ipv4.identification = 0x1513"
4702 }
4703 },
4704 {
4705 "op" : "assign",
4706 "parameters" : [
4707 {
4708 "type" : "field",
4709 "value" : ["gtpu_ipv4", "flags"]
4710 },
4711 {
4712 "type" : "hexstr",
4713 "value" : "0x00"
4714 }
4715 ],
4716 "source_info" : {
4717 "filename" : "include/control/spgw.p4",
4718 "line" : 316,
4719 "column" : 8,
4720 "source_fragment" : "hdr.gtpu_ipv4.flags = 0"
4721 }
4722 },
4723 {
4724 "op" : "assign",
4725 "parameters" : [
4726 {
4727 "type" : "field",
4728 "value" : ["gtpu_ipv4", "frag_offset"]
4729 },
4730 {
4731 "type" : "hexstr",
4732 "value" : "0x0000"
4733 }
4734 ],
4735 "source_info" : {
4736 "filename" : "include/control/spgw.p4",
4737 "line" : 317,
4738 "column" : 8,
4739 "source_fragment" : "hdr.gtpu_ipv4.frag_offset = 0"
4740 }
4741 },
4742 {
4743 "op" : "assign",
4744 "parameters" : [
4745 {
4746 "type" : "field",
4747 "value" : ["gtpu_ipv4", "ttl"]
4748 },
4749 {
4750 "type" : "hexstr",
4751 "value" : "0x40"
4752 }
4753 ],
4754 "source_info" : {
4755 "filename" : "include/control/../define.p4",
4756 "line" : 156,
4757 "column" : 32,
4758 "source_fragment" : "64; ..."
4759 }
4760 },
4761 {
4762 "op" : "assign",
4763 "parameters" : [
4764 {
4765 "type" : "field",
4766 "value" : ["gtpu_ipv4", "protocol"]
4767 },
4768 {
4769 "type" : "hexstr",
4770 "value" : "0x11"
4771 }
4772 ],
4773 "source_info" : {
4774 "filename" : "include/control/../define.p4",
4775 "line" : 140,
4776 "column" : 25,
4777 "source_fragment" : "17; ..."
4778 }
4779 },
4780 {
4781 "op" : "assign",
4782 "parameters" : [
4783 {
4784 "type" : "field",
4785 "value" : ["gtpu_ipv4", "src_addr"]
4786 },
4787 {
4788 "type" : "field",
4789 "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_src_addr23"]
4790 }
4791 ],
4792 "source_info" : {
4793 "filename" : "include/control/spgw.p4",
4794 "line" : 320,
4795 "column" : 8,
4796 "source_fragment" : "hdr.gtpu_ipv4.src_addr = fabric_md.spgw.tunnel_src_addr; ..."
4797 }
4798 },
4799 {
4800 "op" : "assign",
4801 "parameters" : [
4802 {
4803 "type" : "field",
4804 "value" : ["gtpu_ipv4", "dst_addr"]
4805 },
4806 {
4807 "type" : "field",
4808 "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_dst_addr24"]
4809 }
4810 ],
4811 "source_info" : {
4812 "filename" : "include/control/spgw.p4",
4813 "line" : 321,
4814 "column" : 8,
4815 "source_fragment" : "hdr.gtpu_ipv4.dst_addr = fabric_md.spgw.tunnel_dst_addr; ..."
4816 }
4817 },
4818 {
4819 "op" : "assign",
4820 "parameters" : [
4821 {
4822 "type" : "field",
4823 "value" : ["gtpu_ipv4", "hdr_checksum"]
4824 },
4825 {
4826 "type" : "hexstr",
4827 "value" : "0x0000"
4828 }
4829 ],
4830 "source_info" : {
4831 "filename" : "include/control/spgw.p4",
4832 "line" : 322,
4833 "column" : 8,
4834 "source_fragment" : "hdr.gtpu_ipv4.hdr_checksum = 0"
4835 }
4836 },
4837 {
4838 "op" : "add_header",
4839 "parameters" : [
4840 {
4841 "type" : "header",
4842 "value" : "gtpu_udp"
4843 }
4844 ],
4845 "source_info" : {
4846 "filename" : "include/control/spgw.p4",
4847 "line" : 324,
4848 "column" : 8,
4849 "source_fragment" : "hdr.gtpu_udp.setValid()"
4850 }
4851 },
4852 {
4853 "op" : "assign",
4854 "parameters" : [
4855 {
4856 "type" : "field",
4857 "value" : ["gtpu_udp", "sport"]
4858 },
4859 {
4860 "type" : "field",
4861 "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_src_port22"]
4862 }
4863 ],
4864 "source_info" : {
4865 "filename" : "include/control/spgw.p4",
4866 "line" : 325,
4867 "column" : 8,
4868 "source_fragment" : "hdr.gtpu_udp.sport = fabric_md.spgw.tunnel_src_port; ..."
4869 }
4870 },
4871 {
4872 "op" : "assign",
4873 "parameters" : [
4874 {
4875 "type" : "field",
4876 "value" : ["gtpu_udp", "dport"]
4877 },
4878 {
4879 "type" : "hexstr",
4880 "value" : "0x0868"
4881 }
4882 ],
4883 "source_info" : {
4884 "filename" : "include/control/spgw.p4",
4885 "line" : 326,
4886 "column" : 8,
4887 "source_fragment" : "hdr.gtpu_udp.dport = 2152"
4888 }
4889 },
4890 {
4891 "op" : "assign",
4892 "parameters" : [
4893 {
4894 "type" : "field",
4895 "value" : ["gtpu_udp", "len"]
4896 },
4897 {
4898 "type" : "expression",
4899 "value" : {
4900 "type" : "expression",
4901 "value" : {
4902 "op" : "&",
4903 "left" : {
4904 "type" : "expression",
4905 "value" : {
4906 "op" : "+",
4907 "left" : {
4908 "type" : "field",
4909 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"]
4910 },
4911 "right" : {
4912 "type" : "hexstr",
4913 "value" : "0x0010"
4914 }
4915 }
4916 },
4917 "right" : {
4918 "type" : "hexstr",
4919 "value" : "0xffff"
4920 }
4921 }
4922 }
4923 }
4924 ],
4925 "source_info" : {
4926 "filename" : "include/control/spgw.p4",
4927 "line" : 327,
4928 "column" : 8,
4929 "source_fragment" : "hdr.gtpu_udp.len = fabric_md.spgw.ipv4_len ..."
4930 }
4931 },
4932 {
4933 "op" : "assign",
4934 "parameters" : [
4935 {
4936 "type" : "field",
4937 "value" : ["gtpu_udp", "checksum"]
4938 },
4939 {
4940 "type" : "hexstr",
4941 "value" : "0x0000"
4942 }
4943 ],
4944 "source_info" : {
4945 "filename" : "include/control/spgw.p4",
4946 "line" : 329,
4947 "column" : 8,
4948 "source_fragment" : "hdr.gtpu_udp.checksum = 0"
4949 }
4950 },
4951 {
4952 "op" : "add_header",
4953 "parameters" : [
4954 {
4955 "type" : "header",
4956 "value" : "outer_gtpu"
4957 }
4958 ],
4959 "source_info" : {
4960 "filename" : "include/control/spgw.p4",
4961 "line" : 332,
4962 "column" : 8,
4963 "source_fragment" : "hdr.outer_gtpu.setValid()"
4964 }
4965 },
4966 {
4967 "op" : "assign",
4968 "parameters" : [
4969 {
4970 "type" : "field",
4971 "value" : ["outer_gtpu", "version"]
4972 },
4973 {
4974 "type" : "hexstr",
4975 "value" : "0x01"
4976 }
4977 ],
4978 "source_info" : {
4979 "filename" : "include/control/spgw.p4",
4980 "line" : 333,
4981 "column" : 8,
4982 "source_fragment" : "hdr.outer_gtpu.version = 0x01"
4983 }
4984 },
4985 {
4986 "op" : "assign",
4987 "parameters" : [
4988 {
4989 "type" : "field",
4990 "value" : ["outer_gtpu", "pt"]
4991 },
4992 {
4993 "type" : "hexstr",
4994 "value" : "0x01"
4995 }
4996 ],
4997 "source_info" : {
4998 "filename" : "include/control/spgw.p4",
4999 "line" : 334,
5000 "column" : 8,
5001 "source_fragment" : "hdr.outer_gtpu.pt = 0x01"
5002 }
5003 },
5004 {
5005 "op" : "assign",
5006 "parameters" : [
5007 {
5008 "type" : "field",
5009 "value" : ["outer_gtpu", "spare"]
5010 },
5011 {
5012 "type" : "hexstr",
5013 "value" : "0x00"
5014 }
5015 ],
5016 "source_info" : {
5017 "filename" : "include/control/spgw.p4",
5018 "line" : 335,
5019 "column" : 8,
5020 "source_fragment" : "hdr.outer_gtpu.spare = 0"
5021 }
5022 },
5023 {
5024 "op" : "assign",
5025 "parameters" : [
5026 {
5027 "type" : "field",
5028 "value" : ["outer_gtpu", "ex_flag"]
5029 },
5030 {
5031 "type" : "hexstr",
5032 "value" : "0x00"
5033 }
5034 ],
5035 "source_info" : {
5036 "filename" : "include/control/spgw.p4",
5037 "line" : 336,
5038 "column" : 8,
5039 "source_fragment" : "hdr.outer_gtpu.ex_flag = 0"
5040 }
5041 },
5042 {
5043 "op" : "assign",
5044 "parameters" : [
5045 {
5046 "type" : "field",
5047 "value" : ["outer_gtpu", "seq_flag"]
5048 },
5049 {
5050 "type" : "hexstr",
5051 "value" : "0x00"
5052 }
5053 ],
5054 "source_info" : {
5055 "filename" : "include/control/spgw.p4",
5056 "line" : 337,
5057 "column" : 8,
5058 "source_fragment" : "hdr.outer_gtpu.seq_flag = 0"
5059 }
5060 },
5061 {
5062 "op" : "assign",
5063 "parameters" : [
5064 {
5065 "type" : "field",
5066 "value" : ["outer_gtpu", "npdu_flag"]
5067 },
5068 {
5069 "type" : "hexstr",
5070 "value" : "0x00"
5071 }
5072 ],
5073 "source_info" : {
5074 "filename" : "include/control/spgw.p4",
5075 "line" : 338,
5076 "column" : 8,
5077 "source_fragment" : "hdr.outer_gtpu.npdu_flag = 0"
5078 }
5079 },
5080 {
5081 "op" : "assign",
5082 "parameters" : [
5083 {
5084 "type" : "field",
5085 "value" : ["outer_gtpu", "msgtype"]
5086 },
5087 {
5088 "type" : "hexstr",
5089 "value" : "0xff"
5090 }
5091 ],
5092 "source_info" : {
5093 "filename" : "include/control/spgw.p4",
5094 "line" : 339,
5095 "column" : 8,
5096 "source_fragment" : "hdr.outer_gtpu.msgtype = 0xff"
5097 }
5098 },
5099 {
5100 "op" : "assign",
5101 "parameters" : [
5102 {
5103 "type" : "field",
5104 "value" : ["outer_gtpu", "msglen"]
5105 },
5106 {
5107 "type" : "field",
5108 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"]
5109 }
5110 ],
5111 "source_info" : {
5112 "filename" : "include/control/spgw.p4",
5113 "line" : 340,
5114 "column" : 8,
5115 "source_fragment" : "hdr.outer_gtpu.msglen = fabric_md.spgw.ipv4_len; ..."
5116 }
5117 },
5118 {
5119 "op" : "assign",
5120 "parameters" : [
5121 {
5122 "type" : "field",
5123 "value" : ["outer_gtpu", "teid"]
5124 },
5125 {
5126 "type" : "field",
5127 "value" : ["scalars", "fabric_metadata_t._spgw_teid21"]
5128 }
5129 ],
5130 "source_info" : {
5131 "filename" : "include/control/spgw.p4",
5132 "line" : 341,
5133 "column" : 8,
5134 "source_fragment" : "hdr.outer_gtpu.teid = fabric_md.spgw.teid; ..."
5135 }
5136 }
5137 ]
5138 },
5139 {
5140 "name" : "act_9",
5141 "id" : 52,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005142 "runtime_data" : [],
5143 "primitives" : [
5144 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005145 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005146 "parameters" : [],
5147 "source_info" : {
5148 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005149 "line" : 41,
5150 "column" : 12,
5151 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005152 }
5153 }
5154 ]
5155 },
5156 {
Robert MacDavidde12b982020-07-15 18:38:59 -07005157 "name" : "act_10",
5158 "id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005159 "runtime_data" : [],
5160 "primitives" : [
5161 {
5162 "op" : "add_header",
5163 "parameters" : [
5164 {
5165 "type" : "header",
5166 "value" : "packet_in"
5167 }
5168 ],
5169 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005170 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005171 "line" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005172 "column" : 12,
5173 "source_fragment" : "hdr.packet_in.setValid()"
5174 }
5175 },
5176 {
5177 "op" : "assign",
5178 "parameters" : [
5179 {
5180 "type" : "field",
5181 "value" : ["packet_in", "ingress_port"]
5182 },
5183 {
5184 "type" : "field",
5185 "value" : ["standard_metadata", "ingress_port"]
5186 }
5187 ],
5188 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005189 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005190 "line" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005191 "column" : 12,
5192 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
5193 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005194 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005195 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005196 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005197 "parameters" : [],
5198 "source_info" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005199 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005200 "line" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005201 "column" : 12,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005202 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005203 }
5204 }
5205 ]
5206 },
5207 {
Robert MacDavidde12b982020-07-15 18:38:59 -07005208 "name" : "act_11",
5209 "id" : 54,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005210 "runtime_data" : [],
5211 "primitives" : [
5212 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005213 "op" : "mark_to_drop",
5214 "parameters" : [
5215 {
5216 "type" : "header",
5217 "value" : "standard_metadata"
5218 }
5219 ],
5220 "source_info" : {
5221 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005222 "line" : 337,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005223 "column" : 12,
5224 "source_fragment" : "mark_to_drop(standard_metadata)"
5225 }
5226 }
5227 ]
5228 },
5229 {
Robert MacDavidde12b982020-07-15 18:38:59 -07005230 "name" : "act_12",
5231 "id" : 55,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005232 "runtime_data" : [],
5233 "primitives" : [
5234 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005235 "op" : "assign",
5236 "parameters" : [
5237 {
5238 "type" : "field",
5239 "value" : ["scalars", "egress_next_tmp"]
5240 },
5241 {
5242 "type" : "expression",
5243 "value" : {
5244 "type" : "expression",
5245 "value" : {
5246 "op" : "b2d",
5247 "left" : null,
5248 "right" : {
5249 "type" : "bool",
5250 "value" : true
5251 }
5252 }
5253 }
5254 }
5255 ]
5256 }
5257 ]
5258 },
5259 {
Robert MacDavidde12b982020-07-15 18:38:59 -07005260 "name" : "act_13",
5261 "id" : 56,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005262 "runtime_data" : [],
5263 "primitives" : [
5264 {
5265 "op" : "assign",
5266 "parameters" : [
5267 {
5268 "type" : "field",
5269 "value" : ["scalars", "egress_next_tmp"]
5270 },
5271 {
5272 "type" : "expression",
5273 "value" : {
5274 "type" : "expression",
5275 "value" : {
5276 "op" : "b2d",
5277 "left" : null,
5278 "right" : {
5279 "type" : "bool",
5280 "value" : false
5281 }
5282 }
5283 }
5284 }
5285 ]
5286 }
5287 ]
5288 },
5289 {
Robert MacDavidde12b982020-07-15 18:38:59 -07005290 "name" : "act_14",
5291 "id" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005292 "runtime_data" : [],
5293 "primitives" : [
5294 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005295 "op" : "mark_to_drop",
5296 "parameters" : [
5297 {
5298 "type" : "header",
5299 "value" : "standard_metadata"
5300 }
5301 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005302 "source_info" : {
5303 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005304 "line" : 370,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005305 "column" : 35,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005306 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005307 }
5308 }
5309 ]
5310 },
5311 {
Robert MacDavidde12b982020-07-15 18:38:59 -07005312 "name" : "act_15",
5313 "id" : 58,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005314 "runtime_data" : [],
5315 "primitives" : [
5316 {
5317 "op" : "assign",
5318 "parameters" : [
5319 {
5320 "type" : "field",
5321 "value" : ["mpls", "ttl"]
5322 },
5323 {
5324 "type" : "expression",
5325 "value" : {
5326 "type" : "expression",
5327 "value" : {
5328 "op" : "&",
5329 "left" : {
5330 "type" : "expression",
5331 "value" : {
5332 "op" : "+",
5333 "left" : {
5334 "type" : "field",
5335 "value" : ["mpls", "ttl"]
5336 },
5337 "right" : {
5338 "type" : "hexstr",
5339 "value" : "0xff"
5340 }
5341 }
5342 },
5343 "right" : {
5344 "type" : "hexstr",
5345 "value" : "0xff"
5346 }
5347 }
5348 }
5349 }
5350 ],
5351 "source_info" : {
5352 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005353 "line" : 369,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005354 "column" : 12,
5355 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
5356 }
5357 }
5358 ]
5359 },
5360 {
Robert MacDavidde12b982020-07-15 18:38:59 -07005361 "name" : "act_16",
5362 "id" : 59,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005363 "runtime_data" : [],
5364 "primitives" : [
5365 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005366 "op" : "mark_to_drop",
5367 "parameters" : [
5368 {
5369 "type" : "header",
5370 "value" : "standard_metadata"
5371 }
5372 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005373 "source_info" : {
5374 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005375 "line" : 374,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005376 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005377 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005378 }
5379 }
5380 ]
5381 },
5382 {
Robert MacDavidde12b982020-07-15 18:38:59 -07005383 "name" : "act_17",
5384 "id" : 60,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005385 "runtime_data" : [],
5386 "primitives" : [
5387 {
5388 "op" : "assign",
5389 "parameters" : [
5390 {
5391 "type" : "field",
5392 "value" : ["ipv4", "ttl"]
5393 },
5394 {
5395 "type" : "expression",
5396 "value" : {
5397 "type" : "expression",
5398 "value" : {
5399 "op" : "&",
5400 "left" : {
5401 "type" : "expression",
5402 "value" : {
5403 "op" : "+",
5404 "left" : {
5405 "type" : "field",
5406 "value" : ["ipv4", "ttl"]
5407 },
5408 "right" : {
5409 "type" : "hexstr",
5410 "value" : "0xff"
5411 }
5412 }
5413 },
5414 "right" : {
5415 "type" : "hexstr",
5416 "value" : "0xff"
5417 }
5418 }
5419 }
5420 }
5421 ],
5422 "source_info" : {
5423 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005424 "line" : 373,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005425 "column" : 16,
5426 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
5427 }
5428 }
5429 ]
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005430 },
5431 {
Robert MacDavidde12b982020-07-15 18:38:59 -07005432 "name" : "act_18",
5433 "id" : 61,
5434 "runtime_data" : [],
5435 "primitives" : [
5436 {
5437 "op" : "assign",
5438 "parameters" : [
5439 {
5440 "type" : "field",
5441 "value" : ["scalars", "spgw_egress_hasReturned"]
5442 },
5443 {
5444 "type" : "expression",
5445 "value" : {
5446 "type" : "expression",
5447 "value" : {
5448 "op" : "b2d",
5449 "left" : null,
5450 "right" : {
5451 "type" : "bool",
5452 "value" : true
5453 }
5454 }
5455 }
5456 }
5457 ],
5458 "source_info" : {
5459 "filename" : "include/control/spgw.p4",
5460 "line" : 345,
5461 "column" : 46,
5462 "source_fragment" : "return"
5463 }
5464 }
5465 ]
5466 },
5467 {
5468 "name" : "act_19",
5469 "id" : 62,
5470 "runtime_data" : [],
5471 "primitives" : [
5472 {
5473 "op" : "assign",
5474 "parameters" : [
5475 {
5476 "type" : "field",
5477 "value" : ["scalars", "spgw_egress_hasReturned"]
5478 },
5479 {
5480 "type" : "expression",
5481 "value" : {
5482 "type" : "expression",
5483 "value" : {
5484 "op" : "b2d",
5485 "left" : null,
5486 "right" : {
5487 "type" : "bool",
5488 "value" : false
5489 }
5490 }
5491 }
5492 }
5493 ]
5494 }
5495 ]
5496 },
5497 {
5498 "name" : "act_20",
5499 "id" : 63,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005500 "runtime_data" : [],
5501 "primitives" : [
5502 {
5503 "op" : "count",
5504 "parameters" : [
5505 {
5506 "type" : "counter_array",
5507 "value" : "FabricEgress.spgw_egress.pdr_counter"
5508 },
5509 {
5510 "type" : "field",
Robert MacDavidde12b982020-07-15 18:38:59 -07005511 "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id25"]
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005512 }
5513 ],
5514 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07005515 "filename" : "include/control/spgw.p4",
5516 "line" : 346,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005517 "column" : 8,
Robert MacDavidde12b982020-07-15 18:38:59 -07005518 "source_fragment" : "pdr_counter.count(fabric_md.spgw.ctr_id)"
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005519 }
5520 }
5521 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005522 }
5523 ],
5524 "pipelines" : [
5525 {
5526 "name" : "ingress",
5527 "id" : 0,
5528 "source_info" : {
5529 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005530 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005531 "column" : 8,
5532 "source_fragment" : "FabricIngress"
5533 },
Robert MacDavidde12b982020-07-15 18:38:59 -07005534 "init_table" : "node_2",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005535 "tables" : [
5536 {
5537 "name" : "tbl_act",
5538 "id" : 0,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005539 "source_info" : {
Carmelo Cascone3032b872019-04-13 01:23:54 -07005540 "filename" : "include/control/packetio.p4",
5541 "line" : 25,
5542 "column" : 42,
5543 "source_fragment" : "= hdr.packet_out.egress_port; ..."
5544 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005545 "key" : [],
5546 "match_type" : "exact",
5547 "type" : "simple",
5548 "max_size" : 1024,
5549 "with_counters" : false,
5550 "support_timeout" : false,
5551 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07005552 "action_ids" : [36],
5553 "actions" : ["act"],
5554 "base_default_next" : "tbl_act_0",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005555 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07005556 "act" : "tbl_act_0"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005557 },
5558 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07005559 "action_id" : 36,
5560 "action_const" : true,
5561 "action_data" : [],
5562 "action_entry_const" : true
5563 }
5564 },
5565 {
5566 "name" : "tbl_act_0",
5567 "id" : 1,
5568 "key" : [],
5569 "match_type" : "exact",
5570 "type" : "simple",
5571 "max_size" : 1024,
5572 "with_counters" : false,
5573 "support_timeout" : false,
5574 "direct_meters" : null,
5575 "action_ids" : [37],
5576 "actions" : ["act_0"],
5577 "base_default_next" : "FabricIngress.spgw_ingress.interface_lookup",
5578 "next_tables" : {
5579 "act_0" : "FabricIngress.spgw_ingress.interface_lookup"
5580 },
5581 "default_entry" : {
5582 "action_id" : 37,
5583 "action_const" : true,
5584 "action_data" : [],
5585 "action_entry_const" : true
5586 }
5587 },
5588 {
5589 "name" : "FabricIngress.spgw_ingress.interface_lookup",
5590 "id" : 2,
5591 "source_info" : {
5592 "filename" : "include/control/spgw.p4",
5593 "line" : 55,
5594 "column" : 10,
5595 "source_fragment" : "interface_lookup"
5596 },
5597 "key" : [
5598 {
5599 "match_type" : "lpm",
5600 "name" : "ipv4_dst_addr",
5601 "target" : ["ipv4", "dst_addr"],
5602 "mask" : null
5603 },
5604 {
5605 "match_type" : "exact",
5606 "name" : "gtpu_is_valid",
5607 "target" : ["gtpu", "$valid$"],
5608 "mask" : null
5609 }
5610 ],
5611 "match_type" : "lpm",
5612 "type" : "simple",
5613 "max_size" : 128,
5614 "with_counters" : false,
5615 "support_timeout" : false,
5616 "direct_meters" : null,
5617 "action_ids" : [27],
5618 "actions" : ["FabricIngress.spgw_ingress.set_source_iface"],
5619 "base_default_next" : "node_6",
5620 "next_tables" : {
5621 "FabricIngress.spgw_ingress.set_source_iface" : "node_6"
5622 },
5623 "default_entry" : {
5624 "action_id" : 27,
5625 "action_const" : true,
5626 "action_data" : ["0x0", "0x0", "0x1"],
5627 "action_entry_const" : true
5628 }
5629 },
5630 {
5631 "name" : "tbl_act_1",
5632 "id" : 3,
5633 "source_info" : {
5634 "filename" : "include/control/spgw.p4",
5635 "line" : 251,
5636 "column" : 46,
5637 "source_fragment" : "return"
5638 },
5639 "key" : [],
5640 "match_type" : "exact",
5641 "type" : "simple",
5642 "max_size" : 1024,
5643 "with_counters" : false,
5644 "support_timeout" : false,
5645 "direct_meters" : null,
5646 "action_ids" : [38],
5647 "actions" : ["act_1"],
5648 "base_default_next" : "node_8",
5649 "next_tables" : {
5650 "act_1" : "node_8"
5651 },
5652 "default_entry" : {
5653 "action_id" : 38,
5654 "action_const" : true,
5655 "action_data" : [],
5656 "action_entry_const" : true
5657 }
5658 },
5659 {
5660 "name" : "FabricIngress.spgw_ingress.uplink_pdr_lookup",
5661 "id" : 4,
5662 "source_info" : {
5663 "filename" : "include/control/spgw.p4",
5664 "line" : 93,
5665 "column" : 10,
5666 "source_fragment" : "uplink_pdr_lookup"
5667 },
5668 "key" : [
5669 {
5670 "match_type" : "exact",
5671 "name" : "tunnel_ipv4_dst",
5672 "target" : ["ipv4", "dst_addr"],
5673 "mask" : null
5674 },
5675 {
5676 "match_type" : "exact",
5677 "name" : "teid",
5678 "target" : ["gtpu", "teid"],
5679 "mask" : null
5680 },
5681 {
5682 "match_type" : "exact",
5683 "name" : "ue_addr",
5684 "target" : ["inner_ipv4", "src_addr"],
5685 "mask" : null
5686 }
5687 ],
5688 "match_type" : "exact",
5689 "type" : "simple",
5690 "max_size" : 1024,
5691 "with_counters" : false,
5692 "support_timeout" : false,
5693 "direct_meters" : null,
5694 "action_ids" : [29],
5695 "actions" : ["FabricIngress.spgw_ingress.set_pdr_attributes"],
5696 "base_default_next" : "tbl_act_2",
5697 "next_tables" : {
5698 "FabricIngress.spgw_ingress.set_pdr_attributes" : "tbl_act_2"
5699 },
5700 "default_entry" : {
5701 "action_id" : 29,
5702 "action_const" : true,
5703 "action_data" : ["0x0", "0x0", "0x0"],
5704 "action_entry_const" : true
5705 }
5706 },
5707 {
5708 "name" : "FabricIngress.spgw_ingress.downlink_pdr_lookup",
5709 "id" : 5,
5710 "source_info" : {
5711 "filename" : "include/control/spgw.p4",
5712 "line" : 82,
5713 "column" : 10,
5714 "source_fragment" : "downlink_pdr_lookup"
5715 },
5716 "key" : [
5717 {
5718 "match_type" : "exact",
5719 "name" : "ue_addr",
5720 "target" : ["ipv4", "dst_addr"],
5721 "mask" : null
5722 }
5723 ],
5724 "match_type" : "exact",
5725 "type" : "simple",
5726 "max_size" : 1024,
5727 "with_counters" : false,
5728 "support_timeout" : false,
5729 "direct_meters" : null,
5730 "action_ids" : [28],
5731 "actions" : ["FabricIngress.spgw_ingress.set_pdr_attributes"],
5732 "base_default_next" : "tbl_act_2",
5733 "next_tables" : {
5734 "FabricIngress.spgw_ingress.set_pdr_attributes" : "tbl_act_2"
5735 },
5736 "default_entry" : {
5737 "action_id" : 28,
5738 "action_const" : true,
5739 "action_data" : ["0x0", "0x0", "0x0"],
5740 "action_entry_const" : true
5741 }
5742 },
5743 {
5744 "name" : "tbl_act_2",
5745 "id" : 6,
5746 "source_info" : {
5747 "filename" : "include/control/spgw.p4",
5748 "line" : 265,
5749 "column" : 8,
5750 "source_fragment" : "pdr_counter.count(fabric_md.spgw.ctr_id)"
5751 },
5752 "key" : [],
5753 "match_type" : "exact",
5754 "type" : "simple",
5755 "max_size" : 1024,
5756 "with_counters" : false,
5757 "support_timeout" : false,
5758 "direct_meters" : null,
5759 "action_ids" : [39],
5760 "actions" : ["act_2"],
5761 "base_default_next" : "node_13",
5762 "next_tables" : {
5763 "act_2" : "node_13"
5764 },
5765 "default_entry" : {
5766 "action_id" : 39,
5767 "action_const" : true,
5768 "action_data" : [],
5769 "action_entry_const" : true
5770 }
5771 },
5772 {
5773 "name" : "FabricIngress.spgw_ingress.decap_gtpu",
5774 "id" : 7,
5775 "source_info" : {
5776 "filename" : "include/control/spgw.p4",
5777 "line" : 221,
5778 "column" : 10,
5779 "source_fragment" : "decap_gtpu"
5780 },
5781 "key" : [
5782 {
5783 "match_type" : "exact",
5784 "name" : "hdr.inner_tcp.$valid$",
5785 "target" : ["inner_tcp", "$valid$"],
5786 "mask" : null
5787 },
5788 {
5789 "match_type" : "exact",
5790 "name" : "hdr.inner_udp.$valid$",
5791 "target" : ["inner_udp", "$valid$"],
5792 "mask" : null
5793 },
5794 {
5795 "match_type" : "exact",
5796 "name" : "hdr.inner_icmp.$valid$",
5797 "target" : ["inner_icmp", "$valid$"],
5798 "mask" : null
5799 }
5800 ],
5801 "match_type" : "exact",
5802 "type" : "simple",
5803 "max_size" : 1024,
5804 "with_counters" : false,
5805 "support_timeout" : false,
5806 "direct_meters" : null,
5807 "action_ids" : [32, 33, 34, 35],
5808 "actions" : ["FabricIngress.spgw_ingress.decap_inner_tcp", "FabricIngress.spgw_ingress.decap_inner_udp", "FabricIngress.spgw_ingress.decap_inner_icmp", "FabricIngress.spgw_ingress.decap_inner_unknown"],
5809 "base_default_next" : "FabricIngress.spgw_ingress.far_lookup",
5810 "next_tables" : {
5811 "FabricIngress.spgw_ingress.decap_inner_tcp" : "FabricIngress.spgw_ingress.far_lookup",
5812 "FabricIngress.spgw_ingress.decap_inner_udp" : "FabricIngress.spgw_ingress.far_lookup",
5813 "FabricIngress.spgw_ingress.decap_inner_icmp" : "FabricIngress.spgw_ingress.far_lookup",
5814 "FabricIngress.spgw_ingress.decap_inner_unknown" : "FabricIngress.spgw_ingress.far_lookup"
5815 },
5816 "default_entry" : {
5817 "action_id" : 35,
5818 "action_const" : true,
5819 "action_data" : [],
5820 "action_entry_const" : true
5821 },
5822 "entries" : [
5823 {
5824 "source_info" : {
5825 "filename" : "include/control/spgw.p4",
5826 "line" : 235,
5827 "column" : 12,
5828 "source_fragment" : "(true, false, false) : decap_inner_tcp()"
5829 },
5830 "match_key" : [
5831 {
5832 "match_type" : "exact",
5833 "key" : "0x01"
5834 },
5835 {
5836 "match_type" : "exact",
5837 "key" : "0x00"
5838 },
5839 {
5840 "match_type" : "exact",
5841 "key" : "0x00"
5842 }
5843 ],
5844 "action_entry" : {
5845 "action_id" : 32,
5846 "action_data" : []
5847 },
5848 "priority" : 1
5849 },
5850 {
5851 "source_info" : {
5852 "filename" : "include/control/spgw.p4",
5853 "line" : 236,
5854 "column" : 12,
5855 "source_fragment" : "(false, true, false) : decap_inner_udp()"
5856 },
5857 "match_key" : [
5858 {
5859 "match_type" : "exact",
5860 "key" : "0x00"
5861 },
5862 {
5863 "match_type" : "exact",
5864 "key" : "0x01"
5865 },
5866 {
5867 "match_type" : "exact",
5868 "key" : "0x00"
5869 }
5870 ],
5871 "action_entry" : {
5872 "action_id" : 33,
5873 "action_data" : []
5874 },
5875 "priority" : 2
5876 },
5877 {
5878 "source_info" : {
5879 "filename" : "include/control/spgw.p4",
5880 "line" : 237,
5881 "column" : 12,
5882 "source_fragment" : "(false, false, true) : decap_inner_icmp()"
5883 },
5884 "match_key" : [
5885 {
5886 "match_type" : "exact",
5887 "key" : "0x00"
5888 },
5889 {
5890 "match_type" : "exact",
5891 "key" : "0x00"
5892 },
5893 {
5894 "match_type" : "exact",
5895 "key" : "0x01"
5896 }
5897 ],
5898 "action_entry" : {
5899 "action_id" : 34,
5900 "action_data" : []
5901 },
5902 "priority" : 3
5903 }
5904 ]
5905 },
5906 {
5907 "name" : "FabricIngress.spgw_ingress.far_lookup",
5908 "id" : 8,
5909 "source_info" : {
5910 "filename" : "include/control/spgw.p4",
5911 "line" : 165,
5912 "column" : 10,
5913 "source_fragment" : "far_lookup"
5914 },
5915 "key" : [
5916 {
5917 "match_type" : "exact",
5918 "name" : "far_id",
5919 "target" : ["scalars", "fabric_metadata_t._spgw_far_id26"],
5920 "mask" : null
5921 }
5922 ],
5923 "match_type" : "exact",
5924 "type" : "simple",
5925 "max_size" : 2048,
5926 "with_counters" : false,
5927 "support_timeout" : false,
5928 "direct_meters" : null,
5929 "action_ids" : [30, 31],
5930 "actions" : ["FabricIngress.spgw_ingress.load_normal_far_attributes", "FabricIngress.spgw_ingress.load_tunnel_far_attributes"],
5931 "base_default_next" : "node_16",
5932 "next_tables" : {
5933 "FabricIngress.spgw_ingress.load_normal_far_attributes" : "node_16",
5934 "FabricIngress.spgw_ingress.load_tunnel_far_attributes" : "node_16"
5935 },
5936 "default_entry" : {
5937 "action_id" : 30,
5938 "action_const" : true,
5939 "action_data" : ["0x1", "0x1"],
5940 "action_entry_const" : true
5941 }
5942 },
5943 {
5944 "name" : "tbl_act_3",
5945 "id" : 9,
5946 "source_info" : {
5947 "filename" : "include/control/spgw.p4",
5948 "line" : 282,
5949 "column" : 38,
5950 "source_fragment" : "= true; ..."
5951 },
5952 "key" : [],
5953 "match_type" : "exact",
5954 "type" : "simple",
5955 "max_size" : 1024,
5956 "with_counters" : false,
5957 "support_timeout" : false,
5958 "direct_meters" : null,
5959 "action_ids" : [40],
5960 "actions" : ["act_3"],
5961 "base_default_next" : "tbl_act_4",
5962 "next_tables" : {
5963 "act_3" : "tbl_act_4"
5964 },
5965 "default_entry" : {
5966 "action_id" : 40,
5967 "action_const" : true,
5968 "action_data" : [],
5969 "action_entry_const" : true
5970 }
5971 },
5972 {
5973 "name" : "tbl_act_4",
5974 "id" : 10,
5975 "source_info" : {
5976 "filename" : "include/control/spgw.p4",
5977 "line" : 291,
5978 "column" : 32,
5979 "source_fragment" : "="
5980 },
5981 "key" : [],
5982 "match_type" : "exact",
5983 "type" : "simple",
5984 "max_size" : 1024,
5985 "with_counters" : false,
5986 "support_timeout" : false,
5987 "direct_meters" : null,
5988 "action_ids" : [41],
5989 "actions" : ["act_4"],
5990 "base_default_next" : "node_19",
5991 "next_tables" : {
5992 "act_4" : "node_19"
5993 },
5994 "default_entry" : {
5995 "action_id" : 41,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005996 "action_const" : true,
5997 "action_data" : [],
5998 "action_entry_const" : true
5999 }
6000 },
6001 {
6002 "name" : "tbl_act_5",
Robert MacDavidde12b982020-07-15 18:38:59 -07006003 "id" : 11,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006004 "source_info" : {
6005 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006006 "line" : 111,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006007 "column" : 36,
6008 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07006009 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -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,
Robert MacDavidde12b982020-07-15 18:38:59 -07006017 "action_ids" : [42],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006018 "actions" : ["act_5"],
Robert MacDavidde12b982020-07-15 18:38:59 -07006019 "base_default_next" : "node_21",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006020 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07006021 "act_5" : "node_21"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006022 },
6023 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07006024 "action_id" : 42,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006025 "action_const" : true,
6026 "action_data" : [],
6027 "action_entry_const" : true
6028 }
6029 },
6030 {
6031 "name" : "tbl_act_6",
Robert MacDavidde12b982020-07-15 18:38:59 -07006032 "id" : 12,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006033 "source_info" : {
6034 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006035 "line" : 127,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006036 "column" : 37,
6037 "source_fragment" : "="
6038 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006039 "key" : [],
6040 "match_type" : "exact",
6041 "type" : "simple",
6042 "max_size" : 1024,
6043 "with_counters" : false,
6044 "support_timeout" : false,
6045 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07006046 "action_ids" : [43],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006047 "actions" : ["act_6"],
Daniele Moro5a2de712019-09-24 14:34:07 -07006048 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006049 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006050 "act_6" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006051 },
6052 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07006053 "action_id" : 43,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006054 "action_const" : true,
6055 "action_data" : [],
6056 "action_entry_const" : true
6057 }
6058 },
6059 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006060 "name" : "FabricIngress.filtering.ingress_port_vlan",
Robert MacDavidde12b982020-07-15 18:38:59 -07006061 "id" : 13,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006062 "source_info" : {
6063 "filename" : "include/control/filtering.p4",
6064 "line" : 53,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006065 "column" : 10,
6066 "source_fragment" : "ingress_port_vlan"
6067 },
6068 "key" : [
6069 {
6070 "match_type" : "exact",
6071 "name" : "ig_port",
6072 "target" : ["standard_metadata", "ingress_port"],
6073 "mask" : null
6074 },
6075 {
6076 "match_type" : "exact",
6077 "name" : "vlan_is_valid",
6078 "target" : ["vlan_tag", "$valid$"],
6079 "mask" : null
6080 },
6081 {
6082 "match_type" : "ternary",
6083 "name" : "vlan_id",
6084 "target" : ["vlan_tag", "vlan_id"],
6085 "mask" : null
6086 }
6087 ],
6088 "match_type" : "ternary",
6089 "type" : "simple",
6090 "max_size" : 1024,
6091 "with_counters" : true,
6092 "support_timeout" : false,
6093 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07006094 "action_ids" : [7, 8, 9],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006095 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
6096 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
6097 "next_tables" : {
6098 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
6099 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
6100 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
6101 },
6102 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07006103 "action_id" : 7,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006104 "action_const" : true,
6105 "action_data" : [],
6106 "action_entry_const" : true
6107 }
6108 },
6109 {
6110 "name" : "FabricIngress.filtering.fwd_classifier",
Robert MacDavidde12b982020-07-15 18:38:59 -07006111 "id" : 14,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006112 "source_info" : {
6113 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006114 "line" : 92,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006115 "column" : 10,
6116 "source_fragment" : "fwd_classifier"
6117 },
6118 "key" : [
6119 {
6120 "match_type" : "exact",
6121 "name" : "ig_port",
6122 "target" : ["standard_metadata", "ingress_port"],
6123 "mask" : null
6124 },
6125 {
6126 "match_type" : "ternary",
6127 "name" : "eth_dst",
6128 "target" : ["ethernet", "dst_addr"],
6129 "mask" : null
6130 },
6131 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006132 "match_type" : "ternary",
6133 "name" : "eth_type",
6134 "target" : ["eth_type", "value"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07006135 "mask" : null
6136 },
6137 {
6138 "match_type" : "exact",
Daniele Moro5a2de712019-09-24 14:34:07 -07006139 "name" : "ip_eth_type",
6140 "target" : ["scalars", "fabric_metadata_t._ip_eth_type0"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006141 "mask" : null
6142 }
6143 ],
6144 "match_type" : "ternary",
6145 "type" : "simple",
6146 "max_size" : 1024,
6147 "with_counters" : true,
6148 "support_timeout" : false,
6149 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07006150 "action_ids" : [10],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006151 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Robert MacDavidde12b982020-07-15 18:38:59 -07006152 "base_default_next" : "node_25",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006153 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07006154 "FabricIngress.filtering.set_forwarding_type" : "node_25"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006155 },
6156 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07006157 "action_id" : 10,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006158 "action_const" : true,
6159 "action_data" : ["0x0"],
6160 "action_entry_const" : true
6161 }
6162 },
6163 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006164 "name" : "FabricIngress.forwarding.bridging",
Robert MacDavidde12b982020-07-15 18:38:59 -07006165 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006166 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006167 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006168 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006169 "column" : 10,
6170 "source_fragment" : "bridging"
6171 },
6172 "key" : [
6173 {
6174 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006175 "name" : "vlan_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07006176 "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006177 "mask" : null
6178 },
6179 {
6180 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006181 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006182 "target" : ["ethernet", "dst_addr"],
6183 "mask" : null
6184 }
6185 ],
6186 "match_type" : "ternary",
6187 "type" : "simple",
6188 "max_size" : 1024,
6189 "with_counters" : true,
6190 "support_timeout" : false,
6191 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07006192 "action_ids" : [11, 0],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006193 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
6194 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006195 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006196 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.acl.acl",
6197 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006198 },
6199 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07006200 "action_id" : 0,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006201 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006202 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006203 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006204 }
6205 },
6206 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006207 "name" : "FabricIngress.forwarding.mpls",
Robert MacDavidde12b982020-07-15 18:38:59 -07006208 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006209 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006210 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006211 "line" : 71,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006212 "column" : 10,
6213 "source_fragment" : "mpls"
6214 },
6215 "key" : [
6216 {
6217 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006218 "name" : "mpls_label",
Daniele Moro5a2de712019-09-24 14:34:07 -07006219 "target" : ["scalars", "fabric_metadata_t._mpls_label4"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006220 "mask" : null
6221 }
6222 ],
6223 "match_type" : "exact",
6224 "type" : "simple",
6225 "max_size" : 1024,
6226 "with_counters" : true,
6227 "support_timeout" : false,
6228 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07006229 "action_ids" : [12, 1],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006230 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
6231 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006232 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006233 "FabricIngress.forwarding.pop_mpls_and_next" : "FabricIngress.acl.acl",
6234 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006235 },
6236 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07006237 "action_id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006238 "action_const" : true,
6239 "action_data" : [],
6240 "action_entry_const" : true
6241 }
6242 },
6243 {
Charles Chan384aea22018-08-23 22:08:02 -07006244 "name" : "FabricIngress.forwarding.routing_v4",
Robert MacDavidde12b982020-07-15 18:38:59 -07006245 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006246 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006247 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006248 "line" : 108,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006249 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07006250 "source_fragment" : "routing_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006251 },
6252 "key" : [
6253 {
6254 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006255 "name" : "ipv4_dst",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006256 "target" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006257 "mask" : null
6258 }
6259 ],
6260 "match_type" : "lpm",
6261 "type" : "simple",
6262 "max_size" : 1024,
Daniele Moro5a2de712019-09-24 14:34:07 -07006263 "with_counters" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006264 "support_timeout" : false,
6265 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07006266 "action_ids" : [13, 14, 2],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006267 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
6268 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006269 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006270 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.acl.acl",
6271 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.acl.acl",
6272 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006273 },
6274 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07006275 "action_id" : 2,
CyberHasHe9ba39c2019-10-11 05:59:12 +08006276 "action_const" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006277 "action_data" : [],
CyberHasHe9ba39c2019-10-11 05:59:12 +08006278 "action_entry_const" : false
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006279 }
6280 },
6281 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006282 "name" : "FabricIngress.acl.acl",
Robert MacDavidde12b982020-07-15 18:38:59 -07006283 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006284 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006285 "filename" : "include/control/acl.p4",
6286 "line" : 60,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006287 "column" : 10,
6288 "source_fragment" : "acl"
6289 },
6290 "key" : [
6291 {
6292 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006293 "name" : "ig_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006294 "target" : ["standard_metadata", "ingress_port"],
6295 "mask" : null
6296 },
6297 {
6298 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006299 "name" : "ip_proto",
Daniele Moro5a2de712019-09-24 14:34:07 -07006300 "target" : ["scalars", "fabric_metadata_t._ip_proto12"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006301 "mask" : null
6302 },
6303 {
6304 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006305 "name" : "l4_sport",
Daniele Moro5a2de712019-09-24 14:34:07 -07006306 "target" : ["scalars", "fabric_metadata_t._l4_sport13"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006307 "mask" : null
6308 },
6309 {
6310 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006311 "name" : "l4_dport",
Daniele Moro5a2de712019-09-24 14:34:07 -07006312 "target" : ["scalars", "fabric_metadata_t._l4_dport14"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006313 "mask" : null
6314 },
6315 {
6316 "match_type" : "ternary",
Daniele Moro0cecfe12019-12-13 17:24:33 -08006317 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006318 "target" : ["ethernet", "dst_addr"],
6319 "mask" : null
6320 },
6321 {
6322 "match_type" : "ternary",
Daniele Moro0cecfe12019-12-13 17:24:33 -08006323 "name" : "eth_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006324 "target" : ["ethernet", "src_addr"],
6325 "mask" : null
6326 },
6327 {
6328 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006329 "name" : "vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006330 "target" : ["vlan_tag", "vlan_id"],
6331 "mask" : null
6332 },
6333 {
6334 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006335 "name" : "eth_type",
Daniele Moro5a2de712019-09-24 14:34:07 -07006336 "target" : ["eth_type", "value"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08006337 "mask" : null
6338 },
6339 {
6340 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006341 "name" : "ipv4_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006342 "target" : ["ipv4", "src_addr"],
6343 "mask" : null
6344 },
6345 {
6346 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006347 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006348 "target" : ["ipv4", "dst_addr"],
6349 "mask" : null
6350 },
6351 {
6352 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006353 "name" : "icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006354 "target" : ["icmp", "icmp_type"],
6355 "mask" : null
6356 },
6357 {
6358 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006359 "name" : "icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006360 "target" : ["icmp", "icmp_code"],
6361 "mask" : null
6362 }
6363 ],
6364 "match_type" : "ternary",
6365 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006366 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006367 "with_counters" : true,
6368 "support_timeout" : false,
6369 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07006370 "action_ids" : [15, 16, 17, 18, 19],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006371 "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"],
Robert MacDavidde12b982020-07-15 18:38:59 -07006372 "base_default_next" : "node_33",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006373 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07006374 "FabricIngress.acl.set_next_id_acl" : "node_33",
6375 "FabricIngress.acl.punt_to_cpu" : "node_33",
6376 "FabricIngress.acl.set_clone_session_id" : "node_33",
6377 "FabricIngress.acl.drop" : "node_33",
6378 "FabricIngress.acl.nop_acl" : "node_33"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006379 },
6380 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07006381 "action_id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006382 "action_const" : true,
6383 "action_data" : [],
6384 "action_entry_const" : true
6385 }
6386 },
6387 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006388 "name" : "FabricIngress.next.xconnect",
Robert MacDavidde12b982020-07-15 18:38:59 -07006389 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006390 "source_info" : {
6391 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006392 "line" : 119,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006393 "column" : 10,
6394 "source_fragment" : "xconnect"
6395 },
6396 "key" : [
6397 {
6398 "match_type" : "exact",
6399 "name" : "ig_port",
6400 "target" : ["standard_metadata", "ingress_port"],
6401 "mask" : null
6402 },
6403 {
6404 "match_type" : "exact",
6405 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07006406 "target" : ["scalars", "fabric_metadata_t._next_id9"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006407 "mask" : null
6408 }
6409 ],
6410 "match_type" : "exact",
6411 "type" : "simple",
6412 "max_size" : 1024,
6413 "with_counters" : true,
6414 "support_timeout" : false,
6415 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07006416 "action_ids" : [21, 22, 4],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006417 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
6418 "base_default_next" : "FabricIngress.next.hashed",
6419 "next_tables" : {
6420 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
6421 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
6422 "nop" : "FabricIngress.next.hashed"
6423 },
6424 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07006425 "action_id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006426 "action_const" : true,
6427 "action_data" : [],
6428 "action_entry_const" : true
6429 }
6430 },
6431 {
6432 "name" : "FabricIngress.next.hashed",
Robert MacDavidde12b982020-07-15 18:38:59 -07006433 "id" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006434 "source_info" : {
6435 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006436 "line" : 202,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006437 "column" : 10,
6438 "source_fragment" : "hashed"
6439 },
6440 "key" : [
6441 {
6442 "match_type" : "exact",
6443 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07006444 "target" : ["scalars", "fabric_metadata_t._next_id9"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006445 "mask" : null
6446 }
6447 ],
6448 "match_type" : "exact",
6449 "type" : "indirect_ws",
6450 "action_profile" : "FabricIngress.next.hashed_selector",
6451 "max_size" : 1024,
6452 "with_counters" : true,
6453 "support_timeout" : false,
6454 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07006455 "action_ids" : [23, 24, 25, 5],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006456 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
6457 "base_default_next" : "FabricIngress.next.multicast",
6458 "next_tables" : {
6459 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
6460 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
6461 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
6462 "nop" : "FabricIngress.next.multicast"
6463 }
6464 },
6465 {
6466 "name" : "FabricIngress.next.multicast",
Robert MacDavidde12b982020-07-15 18:38:59 -07006467 "id" : 21,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006468 "source_info" : {
6469 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006470 "line" : 236,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006471 "column" : 10,
6472 "source_fragment" : "multicast"
6473 },
6474 "key" : [
6475 {
6476 "match_type" : "exact",
6477 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07006478 "target" : ["scalars", "fabric_metadata_t._next_id9"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006479 "mask" : null
6480 }
6481 ],
6482 "match_type" : "exact",
6483 "type" : "simple",
6484 "max_size" : 1024,
6485 "with_counters" : true,
6486 "support_timeout" : false,
6487 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07006488 "action_ids" : [26, 6],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006489 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
6490 "base_default_next" : "FabricIngress.next.next_vlan",
6491 "next_tables" : {
6492 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
6493 "nop" : "FabricIngress.next.next_vlan"
6494 },
6495 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07006496 "action_id" : 6,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006497 "action_const" : true,
6498 "action_data" : [],
6499 "action_entry_const" : true
6500 }
6501 },
6502 {
6503 "name" : "FabricIngress.next.next_vlan",
Robert MacDavidde12b982020-07-15 18:38:59 -07006504 "id" : 22,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006505 "source_info" : {
6506 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006507 "line" : 86,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006508 "column" : 10,
6509 "source_fragment" : "next_vlan"
6510 },
6511 "key" : [
6512 {
6513 "match_type" : "exact",
6514 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07006515 "target" : ["scalars", "fabric_metadata_t._next_id9"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006516 "mask" : null
6517 }
6518 ],
6519 "match_type" : "exact",
6520 "type" : "simple",
6521 "max_size" : 1024,
6522 "with_counters" : true,
6523 "support_timeout" : false,
6524 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07006525 "action_ids" : [20, 3],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006526 "actions" : ["FabricIngress.next.set_vlan", "nop"],
Robert MacDavidde12b982020-07-15 18:38:59 -07006527 "base_default_next" : "node_38",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006528 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07006529 "FabricIngress.next.set_vlan" : "node_38",
6530 "nop" : "node_38"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006531 },
6532 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07006533 "action_id" : 3,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006534 "action_const" : true,
6535 "action_data" : [],
6536 "action_entry_const" : true
6537 }
6538 },
6539 {
Robert MacDavidde12b982020-07-15 18:38:59 -07006540 "name" : "tbl_act_7",
6541 "id" : 23,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006542 "source_info" : {
6543 "filename" : "include/control/port_counter.p4",
6544 "line" : 31,
6545 "column" : 12,
6546 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
6547 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006548 "key" : [],
6549 "match_type" : "exact",
6550 "type" : "simple",
6551 "max_size" : 1024,
6552 "with_counters" : false,
6553 "support_timeout" : false,
6554 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07006555 "action_ids" : [44],
6556 "actions" : ["act_7"],
6557 "base_default_next" : "node_40",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006558 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07006559 "act_7" : "node_40"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006560 },
6561 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07006562 "action_id" : 44,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006563 "action_const" : true,
6564 "action_data" : [],
6565 "action_entry_const" : true
6566 }
6567 },
6568 {
Robert MacDavidde12b982020-07-15 18:38:59 -07006569 "name" : "tbl_act_8",
6570 "id" : 24,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006571 "source_info" : {
6572 "filename" : "include/control/port_counter.p4",
6573 "line" : 34,
6574 "column" : 12,
6575 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
6576 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006577 "key" : [],
6578 "match_type" : "exact",
6579 "type" : "simple",
6580 "max_size" : 1024,
6581 "with_counters" : false,
6582 "support_timeout" : false,
6583 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07006584 "action_ids" : [45],
6585 "actions" : ["act_8"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006586 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006587 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07006588 "act_8" : null
Carmelo Casconea5400af2018-07-17 22:11:54 +02006589 },
6590 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07006591 "action_id" : 45,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006592 "action_const" : true,
6593 "action_data" : [],
6594 "action_entry_const" : true
6595 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006596 }
6597 ],
6598 "action_profiles" : [
6599 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006600 "name" : "FabricIngress.next.hashed_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006601 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006602 "source_info" : {
6603 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006604 "line" : 183,
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006605 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006606 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006607 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006608 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006609 "selector" : {
6610 "algo" : "crc16",
6611 "input" : [
6612 {
6613 "type" : "field",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006614 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006615 },
6616 {
6617 "type" : "field",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006618 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006619 },
6620 {
6621 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006622 "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006623 },
6624 {
6625 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006626 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006627 },
6628 {
6629 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006630 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006631 }
6632 ]
6633 }
6634 }
6635 ],
6636 "conditionals" : [
6637 {
Robert MacDavidde12b982020-07-15 18:38:59 -07006638 "name" : "node_2",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006639 "id" : 0,
6640 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006641 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006642 "line" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006643 "column" : 12,
6644 "source_fragment" : "hdr.packet_out.isValid()"
6645 },
6646 "expression" : {
6647 "type" : "expression",
6648 "value" : {
6649 "op" : "d2b",
6650 "left" : null,
6651 "right" : {
6652 "type" : "field",
6653 "value" : ["packet_out", "$valid$"]
6654 }
6655 }
6656 },
Robert MacDavidde12b982020-07-15 18:38:59 -07006657 "true_next" : "tbl_act",
6658 "false_next" : "tbl_act_0"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006659 },
6660 {
Robert MacDavidde12b982020-07-15 18:38:59 -07006661 "name" : "node_6",
6662 "id" : 1,
6663 "source_info" : {
6664 "filename" : "include/control/spgw.p4",
6665 "line" : 251,
6666 "column" : 12,
6667 "source_fragment" : "fabric_md.spgw.skip_spgw == true"
6668 },
6669 "expression" : {
6670 "type" : "expression",
6671 "value" : {
6672 "op" : "==",
6673 "left" : {
6674 "type" : "expression",
6675 "value" : {
6676 "op" : "d2b",
6677 "left" : null,
6678 "right" : {
6679 "type" : "field",
6680 "value" : ["scalars", "fabric_metadata_t._spgw_skip_spgw28"]
6681 }
6682 }
6683 },
6684 "right" : {
6685 "type" : "bool",
6686 "value" : true
6687 }
6688 }
6689 },
6690 "true_next" : "tbl_act_1",
6691 "false_next" : "node_8"
6692 },
6693 {
6694 "name" : "node_8",
6695 "id" : 2,
6696 "expression" : {
6697 "type" : "expression",
6698 "value" : {
6699 "op" : "not",
6700 "left" : null,
6701 "right" : {
6702 "type" : "expression",
6703 "value" : {
6704 "op" : "d2b",
6705 "left" : null,
6706 "right" : {
6707 "type" : "field",
6708 "value" : ["scalars", "spgw_ingress_hasReturned"]
6709 }
6710 }
6711 }
6712 }
6713 },
6714 "true_next" : "node_9",
6715 "false_next" : "node_19"
6716 },
6717 {
6718 "name" : "node_9",
6719 "id" : 3,
6720 "source_info" : {
6721 "filename" : "include/control/spgw.p4",
6722 "line" : 255,
6723 "column" : 12,
6724 "source_fragment" : "hdr.gtpu.isValid()"
6725 },
6726 "expression" : {
6727 "type" : "expression",
6728 "value" : {
6729 "op" : "d2b",
6730 "left" : null,
6731 "right" : {
6732 "type" : "field",
6733 "value" : ["gtpu", "$valid$"]
6734 }
6735 }
6736 },
6737 "true_next" : "FabricIngress.spgw_ingress.uplink_pdr_lookup",
6738 "false_next" : "FabricIngress.spgw_ingress.downlink_pdr_lookup"
6739 },
6740 {
6741 "name" : "node_13",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006742 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006743 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07006744 "filename" : "include/control/spgw.p4",
6745 "line" : 268,
6746 "column" : 12,
6747 "source_fragment" : "fabric_md.spgw.needs_gtpu_decap == true"
6748 },
6749 "expression" : {
6750 "type" : "expression",
6751 "value" : {
6752 "op" : "==",
6753 "left" : {
6754 "type" : "expression",
6755 "value" : {
6756 "op" : "d2b",
6757 "left" : null,
6758 "right" : {
6759 "type" : "field",
6760 "value" : ["scalars", "fabric_metadata_t._spgw_needs_gtpu_decap33"]
6761 }
6762 }
6763 },
6764 "right" : {
6765 "type" : "bool",
6766 "value" : true
6767 }
6768 }
6769 },
6770 "true_next" : "FabricIngress.spgw_ingress.decap_gtpu",
6771 "false_next" : "FabricIngress.spgw_ingress.far_lookup"
6772 },
6773 {
6774 "name" : "node_16",
6775 "id" : 5,
6776 "source_info" : {
6777 "filename" : "include/control/spgw.p4",
6778 "line" : 279,
6779 "column" : 12,
6780 "source_fragment" : "fabric_md.spgw.far_dropped == true"
6781 },
6782 "expression" : {
6783 "type" : "expression",
6784 "value" : {
6785 "op" : "==",
6786 "left" : {
6787 "type" : "expression",
6788 "value" : {
6789 "op" : "d2b",
6790 "left" : null,
6791 "right" : {
6792 "type" : "field",
6793 "value" : ["scalars", "fabric_metadata_t._spgw_far_dropped30"]
6794 }
6795 }
6796 },
6797 "right" : {
6798 "type" : "bool",
6799 "value" : true
6800 }
6801 }
6802 },
6803 "true_next" : "tbl_act_3",
6804 "false_next" : "tbl_act_4"
6805 },
6806 {
6807 "name" : "node_19",
6808 "id" : 6,
6809 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006810 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006811 "line" : 110,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006812 "column" : 12,
6813 "source_fragment" : "hdr.vlan_tag.isValid()"
6814 },
6815 "expression" : {
6816 "type" : "expression",
6817 "value" : {
6818 "op" : "d2b",
6819 "left" : null,
6820 "right" : {
6821 "type" : "field",
6822 "value" : ["vlan_tag", "$valid$"]
6823 }
6824 }
6825 },
6826 "true_next" : "tbl_act_5",
Robert MacDavidde12b982020-07-15 18:38:59 -07006827 "false_next" : "node_21"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006828 },
6829 {
Robert MacDavidde12b982020-07-15 18:38:59 -07006830 "name" : "node_21",
6831 "id" : 7,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006832 "source_info" : {
6833 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006834 "line" : 122,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006835 "column" : 12,
6836 "source_fragment" : "!hdr.mpls.isValid()"
6837 },
6838 "expression" : {
6839 "type" : "expression",
6840 "value" : {
6841 "op" : "not",
6842 "left" : null,
6843 "right" : {
6844 "type" : "expression",
6845 "value" : {
6846 "op" : "d2b",
6847 "left" : null,
6848 "right" : {
6849 "type" : "field",
6850 "value" : ["mpls", "$valid$"]
6851 }
6852 }
6853 }
6854 }
6855 },
6856 "true_next" : "tbl_act_6",
Daniele Moro5a2de712019-09-24 14:34:07 -07006857 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006858 },
6859 {
Robert MacDavidde12b982020-07-15 18:38:59 -07006860 "name" : "node_25",
Daniele Moro5a2de712019-09-24 14:34:07 -07006861 "id" : 8,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006862 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006863 "filename" : "fabric.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07006864 "line" : 69,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006865 "column" : 12,
6866 "source_fragment" : "fabric_metadata.skip_forwarding == false"
6867 },
6868 "expression" : {
6869 "type" : "expression",
6870 "value" : {
6871 "op" : "==",
6872 "left" : {
6873 "type" : "expression",
6874 "value" : {
6875 "op" : "d2b",
6876 "left" : null,
6877 "right" : {
6878 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006879 "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006880 }
6881 }
6882 },
6883 "right" : {
6884 "type" : "bool",
6885 "value" : false
6886 }
6887 }
6888 },
Robert MacDavidde12b982020-07-15 18:38:59 -07006889 "true_next" : "node_26",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006890 "false_next" : "FabricIngress.acl.acl"
6891 },
6892 {
Robert MacDavidde12b982020-07-15 18:38:59 -07006893 "name" : "node_26",
6894 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006895 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006896 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006897 "line" : 150,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006898 "column" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006899 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
6900 },
6901 "expression" : {
6902 "type" : "expression",
6903 "value" : {
6904 "op" : "==",
6905 "left" : {
6906 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006907 "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006908 },
6909 "right" : {
6910 "type" : "hexstr",
6911 "value" : "0x00"
6912 }
6913 }
6914 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006915 "true_next" : "FabricIngress.forwarding.bridging",
Robert MacDavidde12b982020-07-15 18:38:59 -07006916 "false_next" : "node_28"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006917 },
6918 {
Robert MacDavidde12b982020-07-15 18:38:59 -07006919 "name" : "node_28",
6920 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006921 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006922 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006923 "line" : 151,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006924 "column" : 17,
6925 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
6926 },
6927 "expression" : {
6928 "type" : "expression",
6929 "value" : {
6930 "op" : "==",
6931 "left" : {
6932 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006933 "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006934 },
6935 "right" : {
6936 "type" : "hexstr",
6937 "value" : "0x01"
6938 }
6939 }
6940 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006941 "true_next" : "FabricIngress.forwarding.mpls",
Robert MacDavidde12b982020-07-15 18:38:59 -07006942 "false_next" : "node_30"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006943 },
6944 {
Robert MacDavidde12b982020-07-15 18:38:59 -07006945 "name" : "node_30",
6946 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006947 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006948 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006949 "line" : 152,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006950 "column" : 17,
6951 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
6952 },
6953 "expression" : {
6954 "type" : "expression",
6955 "value" : {
6956 "op" : "==",
6957 "left" : {
6958 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006959 "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006960 },
6961 "right" : {
6962 "type" : "hexstr",
6963 "value" : "0x02"
6964 }
6965 }
6966 },
Charles Chan384aea22018-08-23 22:08:02 -07006967 "true_next" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006968 "false_next" : "FabricIngress.acl.acl"
6969 },
6970 {
Robert MacDavidde12b982020-07-15 18:38:59 -07006971 "name" : "node_33",
6972 "id" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006973 "source_info" : {
6974 "filename" : "fabric.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07006975 "line" : 73,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006976 "column" : 12,
6977 "source_fragment" : "fabric_metadata.skip_next == false"
6978 },
6979 "expression" : {
6980 "type" : "expression",
6981 "value" : {
6982 "op" : "==",
6983 "left" : {
6984 "type" : "expression",
6985 "value" : {
6986 "op" : "d2b",
6987 "left" : null,
6988 "right" : {
6989 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006990 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006991 }
6992 }
6993 },
6994 "right" : {
6995 "type" : "bool",
6996 "value" : false
6997 }
6998 }
6999 },
7000 "false_next" : null,
7001 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08007002 },
7003 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007004 "name" : "node_38",
7005 "id" : 13,
Yi Tseng27b9bc02018-04-12 14:52:40 +08007006 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007007 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007008 "line" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007009 "column" : 12,
7010 "source_fragment" : "standard_metadata.egress_spec < 511"
7011 },
7012 "expression" : {
7013 "type" : "expression",
7014 "value" : {
7015 "op" : "<",
7016 "left" : {
7017 "type" : "field",
7018 "value" : ["standard_metadata", "egress_spec"]
7019 },
7020 "right" : {
7021 "type" : "hexstr",
7022 "value" : "0x01ff"
7023 }
7024 }
7025 },
Robert MacDavidde12b982020-07-15 18:38:59 -07007026 "true_next" : "tbl_act_7",
7027 "false_next" : "node_40"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007028 },
7029 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007030 "name" : "node_40",
7031 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007032 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007033 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007034 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007035 "column" : 12,
7036 "source_fragment" : "standard_metadata.ingress_port < 511"
7037 },
7038 "expression" : {
7039 "type" : "expression",
7040 "value" : {
7041 "op" : "<",
7042 "left" : {
7043 "type" : "field",
7044 "value" : ["standard_metadata", "ingress_port"]
7045 },
7046 "right" : {
7047 "type" : "hexstr",
7048 "value" : "0x01ff"
7049 }
7050 }
7051 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007052 "false_next" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07007053 "true_next" : "tbl_act_8"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007054 }
7055 ]
7056 },
7057 {
7058 "name" : "egress",
7059 "id" : 1,
7060 "source_info" : {
7061 "filename" : "fabric.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07007062 "line" : 91,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007063 "column" : 8,
7064 "source_fragment" : "FabricEgress"
7065 },
Robert MacDavidde12b982020-07-15 18:38:59 -07007066 "init_table" : "node_44",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007067 "tables" : [
7068 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007069 "name" : "tbl_act_9",
7070 "id" : 25,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007071 "source_info" : {
7072 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007073 "line" : 41,
7074 "column" : 12,
7075 "source_fragment" : "exit"
Carmelo Cascone3032b872019-04-13 01:23:54 -07007076 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02007077 "key" : [],
7078 "match_type" : "exact",
7079 "type" : "simple",
7080 "max_size" : 1024,
7081 "with_counters" : false,
7082 "support_timeout" : false,
7083 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07007084 "action_ids" : [52],
7085 "actions" : ["act_9"],
7086 "base_default_next" : "node_46",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007087 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007088 "act_9" : "node_46"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007089 },
7090 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007091 "action_id" : 52,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007092 "action_const" : true,
7093 "action_data" : [],
7094 "action_entry_const" : true
7095 }
7096 },
7097 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007098 "name" : "tbl_act_10",
7099 "id" : 26,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007100 "source_info" : {
7101 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07007102 "line" : 44,
7103 "column" : 12,
7104 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07007105 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007106 "key" : [],
7107 "match_type" : "exact",
7108 "type" : "simple",
7109 "max_size" : 1024,
7110 "with_counters" : false,
7111 "support_timeout" : false,
7112 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07007113 "action_ids" : [53],
7114 "actions" : ["act_10"],
7115 "base_default_next" : "node_48",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007116 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007117 "act_10" : "node_48"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007118 },
7119 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007120 "action_id" : 53,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007121 "action_const" : true,
7122 "action_data" : [],
7123 "action_entry_const" : true
7124 }
7125 },
7126 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007127 "name" : "tbl_act_11",
7128 "id" : 27,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007129 "source_info" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07007130 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007131 "line" : 337,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007132 "column" : 12,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07007133 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07007134 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007135 "key" : [],
7136 "match_type" : "exact",
7137 "type" : "simple",
7138 "max_size" : 1024,
7139 "with_counters" : false,
7140 "support_timeout" : false,
7141 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07007142 "action_ids" : [54],
7143 "actions" : ["act_11"],
7144 "base_default_next" : "node_50",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007145 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007146 "act_11" : "node_50"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007147 },
7148 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007149 "action_id" : 54,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007150 "action_const" : true,
7151 "action_data" : [],
7152 "action_entry_const" : true
7153 }
7154 },
7155 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007156 "name" : "tbl_egress_next_pop_mpls_if_present",
Robert MacDavidde12b982020-07-15 18:38:59 -07007157 "id" : 28,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007158 "source_info" : {
7159 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007160 "line" : 341,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007161 "column" : 36,
7162 "source_fragment" : "pop_mpls_if_present()"
7163 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007164 "key" : [],
7165 "match_type" : "exact",
7166 "type" : "simple",
7167 "max_size" : 1024,
7168 "with_counters" : false,
7169 "support_timeout" : false,
7170 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07007171 "action_ids" : [47],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007172 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
7173 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
7174 "next_tables" : {
7175 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
7176 },
7177 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007178 "action_id" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007179 "action_const" : true,
7180 "action_data" : [],
7181 "action_entry_const" : true
7182 }
7183 },
7184 {
7185 "name" : "tbl_egress_next_set_mpls",
Robert MacDavidde12b982020-07-15 18:38:59 -07007186 "id" : 29,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007187 "source_info" : {
7188 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007189 "line" : 343,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007190 "column" : 12,
7191 "source_fragment" : "set_mpls()"
7192 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007193 "key" : [],
7194 "match_type" : "exact",
7195 "type" : "simple",
7196 "max_size" : 1024,
7197 "with_counters" : false,
7198 "support_timeout" : false,
7199 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07007200 "action_ids" : [48],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007201 "actions" : ["FabricEgress.egress_next.set_mpls"],
7202 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
7203 "next_tables" : {
7204 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
7205 },
7206 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007207 "action_id" : 48,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007208 "action_const" : true,
7209 "action_data" : [],
7210 "action_entry_const" : true
7211 }
7212 },
7213 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007214 "name" : "FabricEgress.egress_next.egress_vlan",
Robert MacDavidde12b982020-07-15 18:38:59 -07007215 "id" : 30,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007216 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007217 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007218 "line" : 320,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007219 "column" : 10,
7220 "source_fragment" : "egress_vlan"
7221 },
7222 "key" : [
7223 {
7224 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007225 "name" : "vlan_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07007226 "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007227 "mask" : null
7228 },
7229 {
7230 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007231 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007232 "target" : ["standard_metadata", "egress_port"],
7233 "mask" : null
7234 }
7235 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08007236 "match_type" : "exact",
7237 "type" : "simple",
7238 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08007239 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08007240 "support_timeout" : false,
7241 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07007242 "action_ids" : [50, 46],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007243 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007244 "base_default_next" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08007245 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007246 "__HIT__" : "tbl_act_12",
7247 "__MISS__" : "tbl_act_13"
Daniele Moro7c3a0022019-07-12 13:38:34 -07007248 },
7249 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007250 "action_id" : 46,
Daniele Moro7c3a0022019-07-12 13:38:34 -07007251 "action_const" : true,
7252 "action_data" : [],
7253 "action_entry_const" : true
7254 }
7255 },
7256 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007257 "name" : "tbl_act_12",
7258 "id" : 31,
Daniele Moro7c3a0022019-07-12 13:38:34 -07007259 "key" : [],
7260 "match_type" : "exact",
7261 "type" : "simple",
7262 "max_size" : 1024,
7263 "with_counters" : false,
7264 "support_timeout" : false,
7265 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07007266 "action_ids" : [55],
7267 "actions" : ["act_12"],
7268 "base_default_next" : "node_57",
Daniele Moro7c3a0022019-07-12 13:38:34 -07007269 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007270 "act_12" : "node_57"
Daniele Moro7c3a0022019-07-12 13:38:34 -07007271 },
7272 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007273 "action_id" : 55,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007274 "action_const" : true,
7275 "action_data" : [],
7276 "action_entry_const" : true
7277 }
7278 },
7279 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007280 "name" : "tbl_act_13",
7281 "id" : 32,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007282 "key" : [],
7283 "match_type" : "exact",
7284 "type" : "simple",
7285 "max_size" : 1024,
7286 "with_counters" : false,
7287 "support_timeout" : false,
7288 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07007289 "action_ids" : [56],
7290 "actions" : ["act_13"],
7291 "base_default_next" : "node_57",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007292 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007293 "act_13" : "node_57"
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007294 },
7295 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007296 "action_id" : 56,
Daniele Moro7c3a0022019-07-12 13:38:34 -07007297 "action_const" : true,
7298 "action_data" : [],
7299 "action_entry_const" : true
7300 }
7301 },
7302 {
7303 "name" : "tbl_egress_next_push_vlan",
Robert MacDavidde12b982020-07-15 18:38:59 -07007304 "id" : 33,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007305 "source_info" : {
7306 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007307 "line" : 360,
Daniele Moro7c3a0022019-07-12 13:38:34 -07007308 "column" : 20,
7309 "source_fragment" : "push_vlan()"
7310 },
7311 "key" : [],
7312 "match_type" : "exact",
7313 "type" : "simple",
7314 "max_size" : 1024,
7315 "with_counters" : false,
7316 "support_timeout" : false,
7317 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07007318 "action_ids" : [49],
Daniele Moro7c3a0022019-07-12 13:38:34 -07007319 "actions" : ["FabricEgress.egress_next.push_vlan"],
Robert MacDavidde12b982020-07-15 18:38:59 -07007320 "base_default_next" : "node_60",
Daniele Moro7c3a0022019-07-12 13:38:34 -07007321 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007322 "FabricEgress.egress_next.push_vlan" : "node_60"
Daniele Moro7c3a0022019-07-12 13:38:34 -07007323 },
7324 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007325 "action_id" : 49,
Daniele Moro7c3a0022019-07-12 13:38:34 -07007326 "action_const" : true,
7327 "action_data" : [],
7328 "action_entry_const" : true
7329 }
7330 },
7331 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007332 "name" : "tbl_act_14",
7333 "id" : 34,
Daniele Moro7c3a0022019-07-12 13:38:34 -07007334 "source_info" : {
7335 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007336 "line" : 369,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007337 "column" : 25,
7338 "source_fragment" : "="
7339 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007340 "key" : [],
7341 "match_type" : "exact",
7342 "type" : "simple",
7343 "max_size" : 1024,
7344 "with_counters" : false,
7345 "support_timeout" : false,
7346 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07007347 "action_ids" : [58],
7348 "actions" : ["act_15"],
7349 "base_default_next" : "node_62",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007350 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007351 "act_15" : "node_62"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007352 },
7353 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007354 "action_id" : 58,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007355 "action_const" : true,
7356 "action_data" : [],
7357 "action_entry_const" : true
7358 }
7359 },
7360 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007361 "name" : "tbl_act_15",
7362 "id" : 35,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007363 "source_info" : {
7364 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007365 "line" : 370,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007366 "column" : 35,
7367 "source_fragment" : "mark_to_drop(standard_metadata)"
7368 },
7369 "key" : [],
7370 "match_type" : "exact",
7371 "type" : "simple",
7372 "max_size" : 1024,
7373 "with_counters" : false,
7374 "support_timeout" : false,
7375 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07007376 "action_ids" : [57],
7377 "actions" : ["act_14"],
7378 "base_default_next" : "tbl_act_18",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007379 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007380 "act_14" : "tbl_act_18"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007381 },
7382 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007383 "action_id" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007384 "action_const" : true,
7385 "action_data" : [],
7386 "action_entry_const" : true
7387 }
7388 },
7389 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007390 "name" : "tbl_act_16",
7391 "id" : 36,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007392 "source_info" : {
7393 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007394 "line" : 373,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007395 "column" : 29,
7396 "source_fragment" : "="
7397 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007398 "key" : [],
7399 "match_type" : "exact",
7400 "type" : "simple",
7401 "max_size" : 1024,
7402 "with_counters" : false,
7403 "support_timeout" : false,
7404 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07007405 "action_ids" : [60],
7406 "actions" : ["act_17"],
7407 "base_default_next" : "node_66",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007408 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007409 "act_17" : "node_66"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007410 },
7411 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007412 "action_id" : 60,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007413 "action_const" : true,
7414 "action_data" : [],
7415 "action_entry_const" : true
7416 }
7417 },
7418 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007419 "name" : "tbl_act_17",
7420 "id" : 37,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007421 "source_info" : {
7422 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007423 "line" : 374,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007424 "column" : 39,
7425 "source_fragment" : "mark_to_drop(standard_metadata)"
7426 },
7427 "key" : [],
7428 "match_type" : "exact",
7429 "type" : "simple",
7430 "max_size" : 1024,
7431 "with_counters" : false,
7432 "support_timeout" : false,
7433 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07007434 "action_ids" : [59],
7435 "actions" : ["act_16"],
7436 "base_default_next" : "tbl_act_18",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007437 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007438 "act_16" : "tbl_act_18"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007439 },
7440 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007441 "action_id" : 59,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007442 "action_const" : true,
7443 "action_data" : [],
7444 "action_entry_const" : true
7445 }
7446 },
7447 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007448 "name" : "tbl_act_18",
7449 "id" : 38,
7450 "key" : [],
7451 "match_type" : "exact",
7452 "type" : "simple",
7453 "max_size" : 1024,
7454 "with_counters" : false,
7455 "support_timeout" : false,
7456 "direct_meters" : null,
7457 "action_ids" : [62],
7458 "actions" : ["act_19"],
7459 "base_default_next" : "node_69",
7460 "next_tables" : {
7461 "act_19" : "node_69"
7462 },
7463 "default_entry" : {
7464 "action_id" : 62,
7465 "action_const" : true,
7466 "action_data" : [],
7467 "action_entry_const" : true
7468 }
7469 },
7470 {
7471 "name" : "tbl_act_19",
7472 "id" : 39,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007473 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007474 "filename" : "include/control/spgw.p4",
7475 "line" : 345,
7476 "column" : 46,
7477 "source_fragment" : "return"
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007478 },
7479 "key" : [],
7480 "match_type" : "exact",
7481 "type" : "simple",
7482 "max_size" : 1024,
7483 "with_counters" : false,
7484 "support_timeout" : false,
7485 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07007486 "action_ids" : [61],
7487 "actions" : ["act_18"],
7488 "base_default_next" : "node_71",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007489 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007490 "act_18" : "node_71"
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007491 },
7492 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007493 "action_id" : 61,
7494 "action_const" : true,
7495 "action_data" : [],
7496 "action_entry_const" : true
7497 }
7498 },
7499 {
7500 "name" : "tbl_act_20",
7501 "id" : 40,
7502 "source_info" : {
7503 "filename" : "include/control/spgw.p4",
7504 "line" : 346,
7505 "column" : 8,
7506 "source_fragment" : "pdr_counter.count(fabric_md.spgw.ctr_id)"
7507 },
7508 "key" : [],
7509 "match_type" : "exact",
7510 "type" : "simple",
7511 "max_size" : 1024,
7512 "with_counters" : false,
7513 "support_timeout" : false,
7514 "direct_meters" : null,
7515 "action_ids" : [63],
7516 "actions" : ["act_20"],
7517 "base_default_next" : "node_73",
7518 "next_tables" : {
7519 "act_20" : "node_73"
7520 },
7521 "default_entry" : {
7522 "action_id" : 63,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007523 "action_const" : true,
7524 "action_data" : [],
7525 "action_entry_const" : true
7526 }
7527 },
7528 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007529 "name" : "tbl_spgw_egress_gtpu_encap",
Robert MacDavidde12b982020-07-15 18:38:59 -07007530 "id" : 41,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007531 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007532 "filename" : "include/control/spgw.p4",
7533 "line" : 349,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007534 "column" : 12,
7535 "source_fragment" : "gtpu_encap()"
7536 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007537 "key" : [],
7538 "match_type" : "exact",
7539 "type" : "simple",
7540 "max_size" : 1024,
7541 "with_counters" : false,
7542 "support_timeout" : false,
7543 "direct_meters" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07007544 "action_ids" : [51],
Yi Tseng27b9bc02018-04-12 14:52:40 +08007545 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007546 "base_default_next" : null,
7547 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08007548 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007549 },
7550 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007551 "action_id" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007552 "action_const" : true,
7553 "action_data" : [],
7554 "action_entry_const" : true
7555 }
7556 }
7557 ],
7558 "action_profiles" : [],
7559 "conditionals" : [
7560 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007561 "name" : "node_44",
7562 "id" : 15,
Carmelo Casconea5400af2018-07-17 22:11:54 +02007563 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007564 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007565 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02007566 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007567 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02007568 },
7569 "expression" : {
7570 "type" : "expression",
7571 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007572 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02007573 "left" : {
7574 "type" : "expression",
7575 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007576 "op" : "d2b",
7577 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02007578 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007579 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07007580 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out11"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02007581 }
7582 }
7583 },
7584 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007585 "type" : "bool",
7586 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02007587 }
7588 }
7589 },
Robert MacDavidde12b982020-07-15 18:38:59 -07007590 "true_next" : "tbl_act_9",
7591 "false_next" : "node_46"
Carmelo Casconea5400af2018-07-17 22:11:54 +02007592 },
7593 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007594 "name" : "node_46",
7595 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007596 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007597 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007598 "line" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007599 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08007600 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007601 },
7602 "expression" : {
7603 "type" : "expression",
7604 "value" : {
7605 "op" : "==",
7606 "left" : {
7607 "type" : "field",
7608 "value" : ["standard_metadata", "egress_port"]
7609 },
7610 "right" : {
7611 "type" : "hexstr",
7612 "value" : "0x00ff"
7613 }
7614 }
7615 },
Robert MacDavidde12b982020-07-15 18:38:59 -07007616 "true_next" : "tbl_act_10",
7617 "false_next" : "node_48"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007618 },
7619 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007620 "name" : "node_48",
7621 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007622 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007623 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007624 "line" : 335,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007625 "column" : 12,
7626 "source_fragment" : "fabric_metadata.is_multicast == true ..."
7627 },
7628 "expression" : {
7629 "type" : "expression",
7630 "value" : {
7631 "op" : "and",
7632 "left" : {
7633 "type" : "expression",
7634 "value" : {
7635 "op" : "==",
7636 "left" : {
7637 "type" : "expression",
7638 "value" : {
7639 "op" : "d2b",
7640 "left" : null,
7641 "right" : {
7642 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07007643 "value" : ["scalars", "fabric_metadata_t._is_multicast10"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007644 }
7645 }
7646 },
7647 "right" : {
7648 "type" : "bool",
7649 "value" : true
7650 }
7651 }
7652 },
7653 "right" : {
7654 "type" : "expression",
7655 "value" : {
7656 "op" : "==",
7657 "left" : {
7658 "type" : "field",
7659 "value" : ["standard_metadata", "ingress_port"]
7660 },
7661 "right" : {
7662 "type" : "field",
7663 "value" : ["standard_metadata", "egress_port"]
7664 }
7665 }
7666 }
7667 }
7668 },
Robert MacDavidde12b982020-07-15 18:38:59 -07007669 "true_next" : "tbl_act_11",
7670 "false_next" : "node_50"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007671 },
7672 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007673 "name" : "node_50",
7674 "id" : 18,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007675 "source_info" : {
7676 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007677 "line" : 340,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007678 "column" : 12,
7679 "source_fragment" : "fabric_metadata.mpls_label == 0"
7680 },
7681 "expression" : {
7682 "type" : "expression",
7683 "value" : {
7684 "op" : "==",
7685 "left" : {
7686 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07007687 "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007688 },
7689 "right" : {
7690 "type" : "hexstr",
7691 "value" : "0x000000"
7692 }
7693 }
7694 },
Robert MacDavidde12b982020-07-15 18:38:59 -07007695 "true_next" : "node_51",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007696 "false_next" : "tbl_egress_next_set_mpls"
7697 },
7698 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007699 "name" : "node_51",
7700 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007701 "source_info" : {
7702 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007703 "line" : 341,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007704 "column" : 16,
7705 "source_fragment" : "hdr.mpls.isValid()"
7706 },
7707 "expression" : {
7708 "type" : "expression",
7709 "value" : {
7710 "op" : "d2b",
7711 "left" : null,
7712 "right" : {
7713 "type" : "field",
7714 "value" : ["mpls", "$valid$"]
7715 }
7716 }
7717 },
7718 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007719 "false_next" : "FabricEgress.egress_next.egress_vlan"
7720 },
7721 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007722 "name" : "node_57",
7723 "id" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007724 "source_info" : {
7725 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007726 "line" : 357,
Daniele Moro7c3a0022019-07-12 13:38:34 -07007727 "column" : 16,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007728 "source_fragment" : "!egress_vlan.apply().hit"
7729 },
7730 "expression" : {
7731 "type" : "expression",
7732 "value" : {
7733 "op" : "not",
7734 "left" : null,
7735 "right" : {
7736 "type" : "expression",
7737 "value" : {
7738 "op" : "d2b",
7739 "left" : null,
7740 "right" : {
7741 "type" : "field",
7742 "value" : ["scalars", "egress_next_tmp"]
7743 }
7744 }
7745 }
7746 }
7747 },
Robert MacDavidde12b982020-07-15 18:38:59 -07007748 "true_next" : "node_58",
7749 "false_next" : "node_60"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007750 },
7751 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007752 "name" : "node_58",
7753 "id" : 21,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007754 "source_info" : {
7755 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007756 "line" : 359,
Daniele Moro7c3a0022019-07-12 13:38:34 -07007757 "column" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007758 "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
7759 },
7760 "expression" : {
7761 "type" : "expression",
7762 "value" : {
7763 "op" : "!=",
7764 "left" : {
7765 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07007766 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007767 },
7768 "right" : {
7769 "type" : "hexstr",
7770 "value" : "0x0ffe"
7771 }
7772 }
7773 },
7774 "true_next" : "tbl_egress_next_push_vlan",
Robert MacDavidde12b982020-07-15 18:38:59 -07007775 "false_next" : "node_60"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007776 },
7777 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007778 "name" : "node_60",
7779 "id" : 22,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007780 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007781 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007782 "line" : 368,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007783 "column" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007784 "source_fragment" : "hdr.mpls.isValid()"
7785 },
7786 "expression" : {
7787 "type" : "expression",
7788 "value" : {
7789 "op" : "d2b",
7790 "left" : null,
7791 "right" : {
7792 "type" : "field",
7793 "value" : ["mpls", "$valid$"]
7794 }
7795 }
7796 },
Robert MacDavidde12b982020-07-15 18:38:59 -07007797 "true_next" : "tbl_act_14",
7798 "false_next" : "node_64"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007799 },
7800 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007801 "name" : "node_62",
7802 "id" : 23,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007803 "source_info" : {
7804 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007805 "line" : 370,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007806 "column" : 16,
7807 "source_fragment" : "hdr.mpls.ttl == 0"
7808 },
7809 "expression" : {
7810 "type" : "expression",
7811 "value" : {
7812 "op" : "==",
7813 "left" : {
7814 "type" : "field",
7815 "value" : ["mpls", "ttl"]
7816 },
7817 "right" : {
7818 "type" : "hexstr",
7819 "value" : "0x00"
7820 }
7821 }
7822 },
Robert MacDavidde12b982020-07-15 18:38:59 -07007823 "true_next" : "tbl_act_15",
7824 "false_next" : "tbl_act_18"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007825 },
7826 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007827 "name" : "node_64",
7828 "id" : 24,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007829 "source_info" : {
7830 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007831 "line" : 372,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007832 "column" : 15,
7833 "source_fragment" : "hdr.ipv4.isValid()"
7834 },
7835 "expression" : {
7836 "type" : "expression",
7837 "value" : {
7838 "op" : "d2b",
7839 "left" : null,
7840 "right" : {
7841 "type" : "field",
7842 "value" : ["ipv4", "$valid$"]
7843 }
7844 }
7845 },
Robert MacDavidde12b982020-07-15 18:38:59 -07007846 "true_next" : "tbl_act_16",
7847 "false_next" : "tbl_act_18"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007848 },
7849 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007850 "name" : "node_66",
7851 "id" : 25,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007852 "source_info" : {
7853 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007854 "line" : 374,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007855 "column" : 20,
7856 "source_fragment" : "hdr.ipv4.ttl == 0"
7857 },
7858 "expression" : {
7859 "type" : "expression",
7860 "value" : {
7861 "op" : "==",
7862 "left" : {
7863 "type" : "field",
7864 "value" : ["ipv4", "ttl"]
7865 },
7866 "right" : {
7867 "type" : "hexstr",
7868 "value" : "0x00"
7869 }
7870 }
7871 },
Robert MacDavidde12b982020-07-15 18:38:59 -07007872 "true_next" : "tbl_act_17",
7873 "false_next" : "tbl_act_18"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007874 },
7875 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007876 "name" : "node_69",
7877 "id" : 26,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007878 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007879 "filename" : "include/control/spgw.p4",
7880 "line" : 345,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007881 "column" : 12,
Robert MacDavidde12b982020-07-15 18:38:59 -07007882 "source_fragment" : "fabric_md.spgw.skip_spgw == true"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007883 },
7884 "expression" : {
7885 "type" : "expression",
7886 "value" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007887 "op" : "==",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007888 "left" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007889 "type" : "expression",
7890 "value" : {
7891 "op" : "d2b",
7892 "left" : null,
7893 "right" : {
7894 "type" : "field",
Robert MacDavidde12b982020-07-15 18:38:59 -07007895 "value" : ["scalars", "fabric_metadata_t._spgw_skip_spgw28"]
7896 }
7897 }
7898 },
7899 "right" : {
7900 "type" : "bool",
7901 "value" : true
7902 }
7903 }
7904 },
7905 "true_next" : "tbl_act_19",
7906 "false_next" : "node_71"
7907 },
7908 {
7909 "name" : "node_71",
7910 "id" : 27,
7911 "expression" : {
7912 "type" : "expression",
7913 "value" : {
7914 "op" : "not",
7915 "left" : null,
7916 "right" : {
7917 "type" : "expression",
7918 "value" : {
7919 "op" : "d2b",
7920 "left" : null,
7921 "right" : {
7922 "type" : "field",
7923 "value" : ["scalars", "spgw_egress_hasReturned"]
7924 }
7925 }
7926 }
7927 }
7928 },
7929 "false_next" : null,
7930 "true_next" : "tbl_act_20"
7931 },
7932 {
7933 "name" : "node_73",
7934 "id" : 28,
7935 "source_info" : {
7936 "filename" : "include/control/spgw.p4",
7937 "line" : 348,
7938 "column" : 12,
7939 "source_fragment" : "fabric_md.spgw.needs_gtpu_encap == true"
7940 },
7941 "expression" : {
7942 "type" : "expression",
7943 "value" : {
7944 "op" : "==",
7945 "left" : {
7946 "type" : "expression",
7947 "value" : {
7948 "op" : "d2b",
7949 "left" : null,
7950 "right" : {
7951 "type" : "field",
7952 "value" : ["scalars", "fabric_metadata_t._spgw_needs_gtpu_encap32"]
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007953 }
7954 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007955 },
7956 "right" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007957 "type" : "bool",
7958 "value" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007959 }
7960 }
7961 },
7962 "false_next" : null,
7963 "true_next" : "tbl_spgw_egress_gtpu_encap"
7964 }
7965 ]
7966 }
7967 ],
7968 "checksums" : [
7969 {
7970 "name" : "cksum",
7971 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07007972 "source_info" : {
7973 "filename" : "include/checksum.p4",
7974 "line" : 28,
7975 "column" : 8,
7976 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
7977 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007978 "target" : ["ipv4", "hdr_checksum"],
7979 "type" : "generic",
7980 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08007981 "verify" : false,
7982 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007983 "if_cond" : {
7984 "type" : "expression",
7985 "value" : {
7986 "op" : "d2b",
7987 "left" : null,
7988 "right" : {
7989 "type" : "field",
7990 "value" : ["ipv4", "$valid$"]
7991 }
7992 }
7993 }
7994 },
7995 {
7996 "name" : "cksum_0",
7997 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07007998 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007999 "filename" : "include/control/spgw.p4",
8000 "line" : 364,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07008001 "column" : 8,
8002 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
8003 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02008004 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008005 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08008006 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08008007 "verify" : false,
8008 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008009 "if_cond" : {
8010 "type" : "expression",
8011 "value" : {
8012 "op" : "d2b",
8013 "left" : null,
8014 "right" : {
8015 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02008016 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008017 }
8018 }
8019 }
8020 },
8021 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08008022 "name" : "cksum_1",
8023 "id" : 2,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07008024 "source_info" : {
8025 "filename" : "include/checksum.p4",
8026 "line" : 57,
8027 "column" : 8,
8028 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
8029 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02008030 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008031 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08008032 "calculation" : "calc_1",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08008033 "verify" : true,
8034 "update" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008035 "if_cond" : {
8036 "type" : "expression",
8037 "value" : {
8038 "op" : "d2b",
8039 "left" : null,
8040 "right" : {
8041 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02008042 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008043 }
8044 }
8045 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008046 }
8047 ],
8048 "force_arith" : [],
8049 "extern_instances" : [],
8050 "field_aliases" : [
8051 [
8052 "queueing_metadata.enq_timestamp",
8053 ["standard_metadata", "enq_timestamp"]
8054 ],
8055 [
8056 "queueing_metadata.enq_qdepth",
8057 ["standard_metadata", "enq_qdepth"]
8058 ],
8059 [
8060 "queueing_metadata.deq_timedelta",
8061 ["standard_metadata", "deq_timedelta"]
8062 ],
8063 [
8064 "queueing_metadata.deq_qdepth",
8065 ["standard_metadata", "deq_qdepth"]
8066 ],
8067 [
8068 "intrinsic_metadata.ingress_global_timestamp",
8069 ["standard_metadata", "ingress_global_timestamp"]
8070 ],
8071 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08008072 "intrinsic_metadata.egress_global_timestamp",
8073 ["standard_metadata", "egress_global_timestamp"]
8074 ],
8075 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008076 "intrinsic_metadata.lf_field_list",
8077 ["standard_metadata", "lf_field_list"]
8078 ],
8079 [
8080 "intrinsic_metadata.mcast_grp",
8081 ["standard_metadata", "mcast_grp"]
8082 ],
8083 [
8084 "intrinsic_metadata.resubmit_flag",
8085 ["standard_metadata", "resubmit_flag"]
8086 ],
8087 [
8088 "intrinsic_metadata.egress_rid",
8089 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08008090 ],
8091 [
8092 "intrinsic_metadata.recirculate_flag",
8093 ["standard_metadata", "recirculate_flag"]
Carmelo Cascone9b607da2019-05-08 14:03:01 -07008094 ],
8095 [
8096 "intrinsic_metadata.priority",
8097 ["standard_metadata", "priority"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008098 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02008099 ],
8100 "program" : "fabric.p4",
8101 "__meta__" : {
8102 "version" : [2, 18],
8103 "compiler" : "https://github.com/p4lang/p4c"
8104 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08008105}