blob: 036ea1d62a7fb1ff864c6ff2287996abc9554e13 [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_1", 16, false],
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008 ["tmp_2", 16, false],
9 ["tmp_3", 4, false],
Robert MacDavidde12b982020-07-15 18:38:59 -070010 ["tmp", 32, false],
Carmelo Cascone2102bfb2020-12-04 16:54:24 -080011 ["tmp_0", 32, false],
12 ["spgw_tmp", 1, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080013 ["egress_next_tmp", 1, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070014 ["fabric_metadata_t._ip_eth_type0", 16, false],
15 ["fabric_metadata_t._vlan_id1", 12, false],
16 ["fabric_metadata_t._vlan_pri2", 3, false],
17 ["fabric_metadata_t._vlan_cfi3", 1, false],
18 ["fabric_metadata_t._mpls_label4", 20, false],
19 ["fabric_metadata_t._mpls_ttl5", 8, false],
20 ["fabric_metadata_t._skip_forwarding6", 1, false],
21 ["fabric_metadata_t._skip_next7", 1, false],
22 ["fabric_metadata_t._fwd_type8", 3, false],
23 ["fabric_metadata_t._next_id9", 32, false],
24 ["fabric_metadata_t._is_multicast10", 1, false],
25 ["fabric_metadata_t._is_controller_packet_out11", 1, false],
26 ["fabric_metadata_t._ip_proto12", 8, false],
27 ["fabric_metadata_t._l4_sport13", 16, false],
28 ["fabric_metadata_t._l4_dport14", 16, false],
Robert MacDavidbec6b6a2020-05-21 21:32:38 -040029 ["fabric_metadata_t._ipv4_src_addr15", 32, false],
30 ["fabric_metadata_t._ipv4_dst_addr16", 32, false],
Robert MacDavidde12b982020-07-15 18:38:59 -070031 ["fabric_metadata_t._inner_l4_sport17", 16, false],
32 ["fabric_metadata_t._inner_l4_dport18", 16, false],
Carmelo Cascone2102bfb2020-12-04 16:54:24 -080033 ["fabric_metadata_t._spgw_ipv4_len19", 16, false],
34 ["fabric_metadata_t._spgw_teid20", 32, false],
35 ["fabric_metadata_t._spgw_tunnel_src_port21", 16, false],
36 ["fabric_metadata_t._spgw_tunnel_src_addr22", 32, false],
37 ["fabric_metadata_t._spgw_tunnel_dst_addr23", 32, false],
38 ["fabric_metadata_t._spgw_ctr_id24", 32, false],
39 ["fabric_metadata_t._spgw_far_id25", 32, false],
40 ["fabric_metadata_t._spgw_src_iface26", 8, false],
41 ["fabric_metadata_t._spgw_skip_spgw27", 1, false],
42 ["fabric_metadata_t._spgw_notify_spgwc28", 1, false],
43 ["fabric_metadata_t._spgw_needs_gtpu_encap29", 1, false],
44 ["fabric_metadata_t._spgw_needs_gtpu_decap30", 1, false],
45 ["fabric_metadata_t._spgw_skip_egress_pdr_ctr31", 1, false],
46 ["_padding_0", 2, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080047 ]
48 },
49 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020050 "name" : "standard_metadata",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080051 "id" : 1,
52 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020053 ["ingress_port", 9, false],
54 ["egress_spec", 9, false],
55 ["egress_port", 9, false],
56 ["clone_spec", 32, false],
57 ["instance_type", 32, false],
58 ["drop", 1, false],
59 ["recirculate_port", 16, false],
60 ["packet_length", 32, false],
61 ["enq_timestamp", 32, false],
62 ["enq_qdepth", 19, false],
63 ["deq_timedelta", 32, false],
64 ["deq_qdepth", 19, false],
65 ["ingress_global_timestamp", 48, false],
66 ["egress_global_timestamp", 48, false],
67 ["lf_field_list", 32, false],
68 ["mcast_grp", 16, false],
69 ["resubmit_flag", 32, false],
70 ["egress_rid", 16, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020071 ["recirculate_flag", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070072 ["checksum_error", 1, false],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -070073 ["parser_error", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070074 ["priority", 3, false],
75 ["_padding", 2, false]
Carmelo Cascone6af4e172018-06-15 16:01:30 +020076 ]
77 },
78 {
79 "name" : "ethernet_t",
80 "id" : 2,
81 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080082 ["dst_addr", 48, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070083 ["src_addr", 48, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080084 ]
85 },
86 {
87 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020088 "id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080089 "fields" : [
Daniele Moro5a2de712019-09-24 14:34:07 -070090 ["eth_type", 16, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080091 ["pri", 3, false],
92 ["cfi", 1, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070093 ["vlan_id", 12, false]
94 ]
95 },
96 {
97 "name" : "eth_type_t",
98 "id" : 4,
99 "fields" : [
100 ["value", 16, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800101 ]
102 },
103 {
104 "name" : "mpls_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700105 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800106 "fields" : [
107 ["label", 20, false],
108 ["tc", 3, false],
109 ["bos", 1, false],
110 ["ttl", 8, false]
111 ]
112 },
113 {
114 "name" : "ipv4_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700115 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800116 "fields" : [
117 ["version", 4, false],
118 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900119 ["dscp", 6, false],
120 ["ecn", 2, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800121 ["total_len", 16, false],
122 ["identification", 16, false],
123 ["flags", 3, false],
124 ["frag_offset", 13, false],
125 ["ttl", 8, false],
126 ["protocol", 8, false],
127 ["hdr_checksum", 16, false],
128 ["src_addr", 32, false],
129 ["dst_addr", 32, false]
130 ]
131 },
132 {
133 "name" : "udp_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700134 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800135 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800136 ["sport", 16, false],
137 ["dport", 16, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800138 ["len", 16, false],
139 ["checksum", 16, false]
140 ]
141 },
142 {
143 "name" : "gtpu_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700144 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800145 "fields" : [
146 ["version", 3, false],
147 ["pt", 1, false],
148 ["spare", 1, false],
149 ["ex_flag", 1, false],
150 ["seq_flag", 1, false],
151 ["npdu_flag", 1, false],
152 ["msgtype", 8, false],
153 ["msglen", 16, false],
154 ["teid", 32, false]
155 ]
156 },
157 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800158 "name" : "tcp_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700159 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800160 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800161 ["sport", 16, false],
162 ["dport", 16, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800163 ["seq_no", 32, false],
164 ["ack_no", 32, false],
165 ["data_offset", 4, false],
166 ["res", 3, false],
167 ["ecn", 3, false],
168 ["ctrl", 6, false],
169 ["window", 16, false],
170 ["checksum", 16, false],
171 ["urgent_ptr", 16, false]
172 ]
173 },
174 {
175 "name" : "icmp_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700176 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800177 "fields" : [
178 ["icmp_type", 8, false],
179 ["icmp_code", 8, false],
180 ["checksum", 16, false],
181 ["identifier", 16, false],
182 ["sequence_number", 16, false],
183 ["timestamp", 64, false]
184 ]
185 },
186 {
187 "name" : "packet_out_header_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700188 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800189 "fields" : [
190 ["egress_port", 9, false],
191 ["_pad", 7, false]
192 ]
193 },
194 {
195 "name" : "packet_in_header_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700196 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800197 "fields" : [
198 ["ingress_port", 9, false],
199 ["_pad", 7, false]
200 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800201 }
202 ],
203 "headers" : [
204 {
205 "name" : "scalars",
206 "id" : 0,
207 "header_type" : "scalars_0",
208 "metadata" : true,
209 "pi_omit" : true
210 },
211 {
212 "name" : "standard_metadata",
213 "id" : 1,
214 "header_type" : "standard_metadata",
215 "metadata" : true,
216 "pi_omit" : true
217 },
218 {
219 "name" : "ethernet",
220 "id" : 2,
221 "header_type" : "ethernet_t",
222 "metadata" : false,
223 "pi_omit" : true
224 },
225 {
226 "name" : "vlan_tag",
227 "id" : 3,
228 "header_type" : "vlan_tag_t",
229 "metadata" : false,
230 "pi_omit" : true
231 },
232 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800233 "name" : "inner_vlan_tag",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800234 "id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800235 "header_type" : "vlan_tag_t",
236 "metadata" : false,
237 "pi_omit" : true
238 },
239 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700240 "name" : "eth_type",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800241 "id" : 5,
Daniele Moro5a2de712019-09-24 14:34:07 -0700242 "header_type" : "eth_type_t",
243 "metadata" : false,
244 "pi_omit" : true
245 },
246 {
247 "name" : "mpls",
248 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800249 "header_type" : "mpls_t",
250 "metadata" : false,
251 "pi_omit" : true
252 },
253 {
254 "name" : "gtpu_ipv4",
Daniele Moro5a2de712019-09-24 14:34:07 -0700255 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800256 "header_type" : "ipv4_t",
257 "metadata" : false,
258 "pi_omit" : true
259 },
260 {
261 "name" : "gtpu_udp",
Daniele Moro5a2de712019-09-24 14:34:07 -0700262 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800263 "header_type" : "udp_t",
264 "metadata" : false,
265 "pi_omit" : true
266 },
267 {
Robert MacDavidde12b982020-07-15 18:38:59 -0700268 "name" : "outer_gtpu",
Daniele Moro5a2de712019-09-24 14:34:07 -0700269 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800270 "header_type" : "gtpu_t",
271 "metadata" : false,
272 "pi_omit" : true
273 },
274 {
Robert MacDavidde12b982020-07-15 18:38:59 -0700275 "name" : "gtpu",
Daniele Moro5a2de712019-09-24 14:34:07 -0700276 "id" : 10,
Robert MacDavidde12b982020-07-15 18:38:59 -0700277 "header_type" : "gtpu_t",
278 "metadata" : false,
279 "pi_omit" : true
280 },
281 {
282 "name" : "inner_ipv4",
283 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800284 "header_type" : "ipv4_t",
285 "metadata" : false,
286 "pi_omit" : true
287 },
288 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700289 "name" : "inner_udp",
Robert MacDavidde12b982020-07-15 18:38:59 -0700290 "id" : 12,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700291 "header_type" : "udp_t",
292 "metadata" : false,
293 "pi_omit" : true
294 },
295 {
Robert MacDavidde12b982020-07-15 18:38:59 -0700296 "name" : "inner_tcp",
Daniele Moro5a2de712019-09-24 14:34:07 -0700297 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800298 "header_type" : "tcp_t",
299 "metadata" : false,
300 "pi_omit" : true
301 },
302 {
Robert MacDavidde12b982020-07-15 18:38:59 -0700303 "name" : "inner_icmp",
Daniele Moro5a2de712019-09-24 14:34:07 -0700304 "id" : 14,
Robert MacDavidde12b982020-07-15 18:38:59 -0700305 "header_type" : "icmp_t",
306 "metadata" : false,
307 "pi_omit" : true
308 },
309 {
310 "name" : "ipv4",
311 "id" : 15,
312 "header_type" : "ipv4_t",
313 "metadata" : false,
314 "pi_omit" : true
315 },
316 {
317 "name" : "tcp",
318 "id" : 16,
319 "header_type" : "tcp_t",
320 "metadata" : false,
321 "pi_omit" : true
322 },
323 {
324 "name" : "udp",
325 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800326 "header_type" : "udp_t",
327 "metadata" : false,
328 "pi_omit" : true
329 },
330 {
331 "name" : "icmp",
Robert MacDavidde12b982020-07-15 18:38:59 -0700332 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800333 "header_type" : "icmp_t",
334 "metadata" : false,
335 "pi_omit" : true
336 },
337 {
338 "name" : "packet_out",
Robert MacDavidde12b982020-07-15 18:38:59 -0700339 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800340 "header_type" : "packet_out_header_t",
341 "metadata" : false,
342 "pi_omit" : true
343 },
344 {
345 "name" : "packet_in",
Robert MacDavidde12b982020-07-15 18:38:59 -0700346 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800347 "header_type" : "packet_in_header_t",
348 "metadata" : false,
349 "pi_omit" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800350 }
351 ],
352 "header_stacks" : [],
353 "header_union_types" : [],
354 "header_unions" : [],
355 "header_union_stacks" : [],
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700356 "field_lists" : [
357 {
358 "id" : 1,
359 "name" : "fl",
360 "source_info" : {
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700361 "filename" : "include/control/acl.p4",
362 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700363 "column" : 40,
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700364 "source_fragment" : "{standard_metadata.ingress_port}"
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700365 },
366 "elements" : [
367 {
368 "type" : "field",
369 "value" : ["standard_metadata", "ingress_port"]
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700370 }
371 ]
372 }
373 ],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700374 "errors" : [
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700375 ["NoError", 1],
376 ["PacketTooShort", 2],
377 ["NoMatch", 3],
378 ["StackOutOfBounds", 4],
379 ["HeaderTooShort", 5],
380 ["ParserTimeout", 6],
381 ["ParserInvalidArgument", 7]
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700382 ],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800383 "enums" : [],
384 "parsers" : [
385 {
386 "name" : "parser",
387 "id" : 0,
388 "init_state" : "start",
389 "parse_states" : [
390 {
391 "name" : "start",
392 "id" : 0,
393 "parser_ops" : [],
394 "transitions" : [
395 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800396 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800397 "value" : "0x00ff",
398 "mask" : null,
399 "next_state" : "parse_packet_out"
400 },
401 {
402 "value" : "default",
403 "mask" : null,
404 "next_state" : "parse_ethernet"
405 }
406 ],
407 "transition_key" : [
408 {
409 "type" : "field",
410 "value" : ["standard_metadata", "ingress_port"]
411 }
412 ]
413 },
414 {
415 "name" : "parse_packet_out",
416 "id" : 1,
417 "parser_ops" : [
418 {
419 "parameters" : [
420 {
421 "type" : "regular",
422 "value" : "packet_out"
423 }
424 ],
425 "op" : "extract"
426 }
427 ],
428 "transitions" : [
429 {
430 "value" : "default",
431 "mask" : null,
432 "next_state" : "parse_ethernet"
433 }
434 ],
435 "transition_key" : []
436 },
437 {
438 "name" : "parse_ethernet",
439 "id" : 2,
440 "parser_ops" : [
441 {
442 "parameters" : [
443 {
444 "type" : "regular",
445 "value" : "ethernet"
446 }
447 ],
448 "op" : "extract"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800449 },
450 {
451 "parameters" : [
452 {
453 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700454 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800455 },
456 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700457 "type" : "hexstr",
458 "value" : "0x0ffe"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800459 }
460 ],
461 "op" : "set"
462 },
463 {
464 "parameters" : [
465 {
466 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -0800467 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800468 },
469 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700470 "type" : "lookahead",
471 "value" : [0, 16]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800472 }
473 ],
474 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800475 }
476 ],
477 "transitions" : [
478 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800479 "type" : "hexstr",
Daniele Moro77654f92019-07-30 10:29:54 -0700480 "value" : "0x88a8",
481 "mask" : null,
482 "next_state" : "parse_vlan_tag"
483 },
484 {
485 "type" : "hexstr",
486 "value" : "0x9100",
487 "mask" : null,
488 "next_state" : "parse_vlan_tag"
489 },
490 {
491 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800492 "value" : "0x8100",
493 "mask" : null,
494 "next_state" : "parse_vlan_tag"
495 },
496 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800497 "value" : "default",
498 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700499 "next_state" : "parse_eth_type"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800500 }
501 ],
502 "transition_key" : [
503 {
504 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -0800505 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800506 }
507 ]
508 },
509 {
510 "name" : "parse_vlan_tag",
511 "id" : 3,
512 "parser_ops" : [
513 {
514 "parameters" : [
515 {
516 "type" : "regular",
517 "value" : "vlan_tag"
518 }
519 ],
520 "op" : "extract"
Daniele Moro5a2de712019-09-24 14:34:07 -0700521 },
522 {
523 "parameters" : [
524 {
525 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -0800526 "value" : ["scalars", "tmp_2"]
Daniele Moro5a2de712019-09-24 14:34:07 -0700527 },
528 {
529 "type" : "lookahead",
530 "value" : [0, 16]
531 }
532 ],
533 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800534 }
535 ],
536 "transitions" : [
537 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800538 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800539 "value" : "0x8100",
540 "mask" : null,
541 "next_state" : "parse_inner_vlan_tag"
542 },
543 {
544 "value" : "default",
545 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700546 "next_state" : "parse_eth_type"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800547 }
548 ],
549 "transition_key" : [
550 {
551 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -0800552 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800553 }
554 ]
555 },
556 {
557 "name" : "parse_inner_vlan_tag",
558 "id" : 4,
559 "parser_ops" : [
560 {
561 "parameters" : [
562 {
563 "type" : "regular",
564 "value" : "inner_vlan_tag"
565 }
566 ],
567 "op" : "extract"
568 }
569 ],
570 "transitions" : [
571 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700572 "value" : "default",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800573 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700574 "next_state" : "parse_eth_type"
575 }
576 ],
577 "transition_key" : []
578 },
579 {
580 "name" : "parse_eth_type",
581 "id" : 5,
582 "parser_ops" : [
583 {
584 "parameters" : [
585 {
586 "type" : "regular",
587 "value" : "eth_type"
588 }
589 ],
590 "op" : "extract"
591 }
592 ],
593 "transitions" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800594 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800595 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800596 "value" : "0x8847",
597 "mask" : null,
598 "next_state" : "parse_mpls"
599 },
600 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700601 "type" : "hexstr",
602 "value" : "0x0800",
603 "mask" : null,
604 "next_state" : "parse_ipv4"
605 },
606 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800607 "value" : "default",
608 "mask" : null,
609 "next_state" : null
610 }
611 ],
612 "transition_key" : [
613 {
614 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700615 "value" : ["eth_type", "value"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800616 }
617 ]
618 },
619 {
620 "name" : "parse_mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -0700621 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800622 "parser_ops" : [
623 {
624 "parameters" : [
625 {
626 "type" : "regular",
627 "value" : "mpls"
628 }
629 ],
630 "op" : "extract"
631 },
632 {
633 "parameters" : [
634 {
635 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700636 "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800637 },
638 {
639 "type" : "field",
640 "value" : ["mpls", "label"]
641 }
642 ],
643 "op" : "set"
644 },
645 {
646 "parameters" : [
647 {
648 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700649 "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800650 },
651 {
652 "type" : "field",
653 "value" : ["mpls", "ttl"]
654 }
655 ],
656 "op" : "set"
657 },
658 {
659 "parameters" : [
660 {
661 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -0800662 "value" : ["scalars", "tmp_3"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800663 },
664 {
665 "type" : "lookahead",
666 "value" : [0, 4]
667 }
668 ],
669 "op" : "set"
670 }
671 ],
672 "transitions" : [
673 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800674 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800675 "value" : "0x04",
676 "mask" : null,
677 "next_state" : "parse_ipv4"
678 },
679 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800680 "value" : "default",
681 "mask" : null,
682 "next_state" : "parse_ethernet"
683 }
684 ],
685 "transition_key" : [
686 {
687 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -0800688 "value" : ["scalars", "tmp_3"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800689 }
690 ]
691 },
692 {
Daniele Moro7c3a0022019-07-12 13:38:34 -0700693 "name" : "parse_ipv4",
694 "id" : 7,
695 "parser_ops" : [
696 {
697 "parameters" : [
698 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800699 "type" : "regular",
700 "value" : "ipv4"
701 }
702 ],
703 "op" : "extract"
704 },
705 {
706 "parameters" : [
707 {
708 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700709 "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800710 },
711 {
712 "type" : "field",
713 "value" : ["ipv4", "protocol"]
714 }
715 ],
716 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800717 },
718 {
719 "parameters" : [
720 {
721 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700722 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800723 },
724 {
725 "type" : "hexstr",
726 "value" : "0x0800"
727 }
728 ],
729 "op" : "set"
Robert MacDavidbec6b6a2020-05-21 21:32:38 -0400730 },
731 {
732 "parameters" : [
733 {
734 "type" : "field",
735 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
736 },
737 {
738 "type" : "field",
739 "value" : ["ipv4", "src_addr"]
740 }
741 ],
742 "op" : "set"
743 },
744 {
745 "parameters" : [
746 {
747 "type" : "field",
748 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
749 },
750 {
751 "type" : "field",
752 "value" : ["ipv4", "dst_addr"]
753 }
754 ],
755 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800756 }
757 ],
758 "transitions" : [
759 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800760 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800761 "value" : "0x06",
762 "mask" : null,
763 "next_state" : "parse_tcp"
764 },
765 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800766 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800767 "value" : "0x11",
768 "mask" : null,
769 "next_state" : "parse_udp"
770 },
771 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800772 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800773 "value" : "0x01",
774 "mask" : null,
775 "next_state" : "parse_icmp"
776 },
777 {
778 "value" : "default",
779 "mask" : null,
780 "next_state" : null
781 }
782 ],
783 "transition_key" : [
784 {
785 "type" : "field",
786 "value" : ["ipv4", "protocol"]
787 }
788 ]
789 },
790 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800791 "name" : "parse_tcp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700792 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800793 "parser_ops" : [
794 {
795 "parameters" : [
796 {
797 "type" : "regular",
798 "value" : "tcp"
799 }
800 ],
801 "op" : "extract"
802 },
803 {
804 "parameters" : [
805 {
806 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700807 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800808 },
809 {
810 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800811 "value" : ["tcp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800812 }
813 ],
814 "op" : "set"
815 },
816 {
817 "parameters" : [
818 {
819 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700820 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800821 },
822 {
823 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800824 "value" : ["tcp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800825 }
826 ],
827 "op" : "set"
828 }
829 ],
830 "transitions" : [
831 {
832 "value" : "default",
833 "mask" : null,
834 "next_state" : null
835 }
836 ],
837 "transition_key" : []
838 },
839 {
840 "name" : "parse_udp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700841 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800842 "parser_ops" : [
843 {
844 "parameters" : [
845 {
846 "type" : "regular",
847 "value" : "udp"
848 }
849 ],
850 "op" : "extract"
851 },
852 {
853 "parameters" : [
854 {
855 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700856 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800857 },
858 {
859 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800860 "value" : ["udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800861 }
862 ],
863 "op" : "set"
864 },
865 {
866 "parameters" : [
867 {
868 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700869 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800870 },
871 {
872 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800873 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800874 }
875 ],
876 "op" : "set"
877 }
878 ],
879 "transitions" : [
880 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800881 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800882 "value" : "0x0868",
883 "mask" : null,
884 "next_state" : "parse_gtpu"
885 },
886 {
887 "value" : "default",
888 "mask" : null,
889 "next_state" : null
890 }
891 ],
892 "transition_key" : [
893 {
894 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800895 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800896 }
897 ]
898 },
899 {
900 "name" : "parse_icmp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700901 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800902 "parser_ops" : [
903 {
904 "parameters" : [
905 {
906 "type" : "regular",
907 "value" : "icmp"
908 }
909 ],
910 "op" : "extract"
911 }
912 ],
913 "transitions" : [
914 {
915 "value" : "default",
916 "mask" : null,
917 "next_state" : null
918 }
919 ],
920 "transition_key" : []
921 },
922 {
923 "name" : "parse_gtpu",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700924 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800925 "parser_ops" : [
926 {
927 "parameters" : [
928 {
929 "type" : "regular",
930 "value" : "gtpu"
931 }
932 ],
933 "op" : "extract"
934 },
935 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800936 "parameters" : [
937 {
938 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700939 "value" : "inner_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800940 }
941 ],
942 "op" : "extract"
943 }
944 ],
945 "transitions" : [
946 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800947 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800948 "value" : "0x06",
949 "mask" : null,
950 "next_state" : "parse_tcp"
951 },
952 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800953 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800954 "value" : "0x11",
955 "mask" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700956 "next_state" : "parse_inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800957 },
958 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800959 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800960 "value" : "0x01",
961 "mask" : null,
962 "next_state" : "parse_icmp"
963 },
964 {
965 "value" : "default",
966 "mask" : null,
967 "next_state" : null
968 }
969 ],
970 "transition_key" : [
971 {
972 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700973 "value" : ["inner_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800974 }
975 ]
976 },
977 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700978 "name" : "parse_inner_udp",
Robert MacDavidde12b982020-07-15 18:38:59 -0700979 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800980 "parser_ops" : [
981 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800982 "parameters" : [
983 {
984 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700985 "value" : "inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800986 }
987 ],
988 "op" : "extract"
989 },
990 {
991 "parameters" : [
992 {
993 "type" : "field",
Robert MacDavidde12b982020-07-15 18:38:59 -0700994 "value" : ["scalars", "fabric_metadata_t._inner_l4_sport17"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800995 },
996 {
997 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800998 "value" : ["inner_udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800999 }
1000 ],
1001 "op" : "set"
1002 },
1003 {
1004 "parameters" : [
1005 {
1006 "type" : "field",
Robert MacDavidde12b982020-07-15 18:38:59 -07001007 "value" : ["scalars", "fabric_metadata_t._inner_l4_dport18"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001008 },
1009 {
1010 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001011 "value" : ["inner_udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001012 }
1013 ],
1014 "op" : "set"
1015 }
1016 ],
1017 "transitions" : [
1018 {
1019 "value" : "default",
1020 "mask" : null,
1021 "next_state" : null
1022 }
1023 ],
1024 "transition_key" : []
1025 }
1026 ]
1027 }
1028 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001029 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001030 "deparsers" : [
1031 {
1032 "name" : "deparser",
1033 "id" : 0,
1034 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001035 "filename" : "include/parser.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07001036 "line" : 268,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001037 "column" : 8,
1038 "source_fragment" : "FabricDeparser"
1039 },
Robert MacDavidde12b982020-07-15 18:38:59 -07001040 "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 -08001041 }
1042 ],
1043 "meter_arrays" : [],
1044 "counter_arrays" : [
1045 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001046 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001047 "id" : 0,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001048 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001049 "binding" : "FabricIngress.filtering.ingress_port_vlan",
1050 "source_info" : {
1051 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001052 "line" : 31,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001053 "column" : 50,
1054 "source_fragment" : "ingress_port_vlan_counter"
1055 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001056 },
1057 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001058 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001059 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001060 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001061 "binding" : "FabricIngress.filtering.fwd_classifier",
1062 "source_info" : {
1063 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001064 "line" : 85,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001065 "column" : 50,
1066 "source_fragment" : "fwd_classifier_counter"
1067 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001068 },
1069 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001070 "name" : "FabricIngress.forwarding.bridging_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001071 "id" : 2,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001072 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001073 "binding" : "FabricIngress.forwarding.bridging",
1074 "source_info" : {
1075 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001076 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001077 "column" : 50,
1078 "source_fragment" : "bridging_counter"
1079 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001080 },
1081 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001082 "name" : "FabricIngress.forwarding.mpls_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001083 "id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001084 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001085 "binding" : "FabricIngress.forwarding.mpls",
1086 "source_info" : {
1087 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001088 "line" : 63,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001089 "column" : 50,
1090 "source_fragment" : "mpls_counter"
1091 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001092 },
1093 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001094 "name" : "FabricIngress.acl.acl_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001095 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001096 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001097 "binding" : "FabricIngress.acl.acl",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001098 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001099 "filename" : "include/control/acl.p4",
1100 "line" : 30,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001101 "column" : 50,
1102 "source_fragment" : "acl_counter"
1103 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001104 },
1105 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001106 "name" : "FabricIngress.next.next_vlan_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001107 "id" : 5,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001108 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001109 "binding" : "FabricIngress.next.next_vlan",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001110 "source_info" : {
1111 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001112 "line" : 67,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001113 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001114 "source_fragment" : "next_vlan_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001115 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001116 },
1117 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001118 "name" : "FabricIngress.next.xconnect_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001119 "id" : 6,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001120 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001121 "binding" : "FabricIngress.next.xconnect",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001122 "source_info" : {
1123 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001124 "line" : 107,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001125 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001126 "source_fragment" : "xconnect_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001127 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001128 },
1129 {
1130 "name" : "FabricIngress.next.hashed_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001131 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001132 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001133 "binding" : "FabricIngress.next.hashed",
1134 "source_info" : {
1135 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001136 "line" : 184,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001137 "column" : 50,
1138 "source_fragment" : "hashed_counter"
1139 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001140 },
1141 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001142 "name" : "FabricIngress.next.multicast_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001143 "id" : 8,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001144 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001145 "binding" : "FabricIngress.next.multicast",
1146 "source_info" : {
1147 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001148 "line" : 228,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001149 "column" : 50,
1150 "source_fragment" : "multicast_counter"
1151 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00001152 },
1153 {
1154 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001155 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001156 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001157 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001158 "line" : 26,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001159 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001160 "source_fragment" : "egress_port_counter"
1161 },
1162 "size" : 511,
1163 "is_direct" : false
1164 },
1165 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001166 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001167 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001168 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001169 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001170 "line" : 27,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001171 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001172 "source_fragment" : "ingress_port_counter"
1173 },
1174 "size" : 511,
1175 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08001176 },
1177 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001178 "name" : "FabricIngress.spgw.pdr_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001179 "id" : 11,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001180 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07001181 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001182 "line" : 109,
Robert MacDavidde12b982020-07-15 18:38:59 -07001183 "column" : 53,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001184 "source_fragment" : "pdr_counter"
1185 },
Robert MacDavidde12b982020-07-15 18:38:59 -07001186 "size" : 2048,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001187 "is_direct" : false
1188 },
1189 {
1190 "name" : "FabricEgress.egress_next.egress_vlan_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001191 "id" : 12,
Yi Tseng47eac892018-07-11 02:17:04 +08001192 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001193 "binding" : "FabricEgress.egress_next.egress_vlan",
1194 "source_info" : {
1195 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001196 "line" : 313,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001197 "column" : 50,
1198 "source_fragment" : "egress_vlan_counter"
1199 }
Robert MacDavidde12b982020-07-15 18:38:59 -07001200 },
1201 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001202 "name" : "FabricEgress.spgw.pdr_counter",
Robert MacDavidde12b982020-07-15 18:38:59 -07001203 "id" : 13,
1204 "source_info" : {
1205 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001206 "line" : 286,
Robert MacDavidde12b982020-07-15 18:38:59 -07001207 "column" : 53,
1208 "source_fragment" : "pdr_counter"
1209 },
1210 "size" : 2048,
1211 "is_direct" : false
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001212 }
1213 ],
1214 "register_arrays" : [],
1215 "calculations" : [
1216 {
1217 "name" : "calc",
1218 "id" : 0,
1219 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001220 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001221 "line" : 28,
1222 "column" : 8,
1223 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1224 },
1225 "algo" : "csum16",
1226 "input" : [
1227 {
1228 "type" : "field",
1229 "value" : ["ipv4", "version"]
1230 },
1231 {
1232 "type" : "field",
1233 "value" : ["ipv4", "ihl"]
1234 },
1235 {
1236 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001237 "value" : ["ipv4", "dscp"]
1238 },
1239 {
1240 "type" : "field",
1241 "value" : ["ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001242 },
1243 {
1244 "type" : "field",
1245 "value" : ["ipv4", "total_len"]
1246 },
1247 {
1248 "type" : "field",
1249 "value" : ["ipv4", "identification"]
1250 },
1251 {
1252 "type" : "field",
1253 "value" : ["ipv4", "flags"]
1254 },
1255 {
1256 "type" : "field",
1257 "value" : ["ipv4", "frag_offset"]
1258 },
1259 {
1260 "type" : "field",
1261 "value" : ["ipv4", "ttl"]
1262 },
1263 {
1264 "type" : "field",
1265 "value" : ["ipv4", "protocol"]
1266 },
1267 {
1268 "type" : "field",
1269 "value" : ["ipv4", "src_addr"]
1270 },
1271 {
1272 "type" : "field",
1273 "value" : ["ipv4", "dst_addr"]
1274 }
1275 ]
1276 },
1277 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001278 "name" : "calc_0",
1279 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001280 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07001281 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001282 "line" : 349,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001283 "column" : 8,
1284 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1285 },
1286 "algo" : "csum16",
1287 "input" : [
1288 {
1289 "type" : "field",
1290 "value" : ["gtpu_ipv4", "version"]
1291 },
1292 {
1293 "type" : "field",
1294 "value" : ["gtpu_ipv4", "ihl"]
1295 },
1296 {
1297 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001298 "value" : ["gtpu_ipv4", "dscp"]
1299 },
1300 {
1301 "type" : "field",
1302 "value" : ["gtpu_ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001303 },
1304 {
1305 "type" : "field",
1306 "value" : ["gtpu_ipv4", "total_len"]
1307 },
1308 {
1309 "type" : "field",
1310 "value" : ["gtpu_ipv4", "identification"]
1311 },
1312 {
1313 "type" : "field",
1314 "value" : ["gtpu_ipv4", "flags"]
1315 },
1316 {
1317 "type" : "field",
1318 "value" : ["gtpu_ipv4", "frag_offset"]
1319 },
1320 {
1321 "type" : "field",
1322 "value" : ["gtpu_ipv4", "ttl"]
1323 },
1324 {
1325 "type" : "field",
1326 "value" : ["gtpu_ipv4", "protocol"]
1327 },
1328 {
1329 "type" : "field",
1330 "value" : ["gtpu_ipv4", "src_addr"]
1331 },
1332 {
1333 "type" : "field",
1334 "value" : ["gtpu_ipv4", "dst_addr"]
1335 }
1336 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001337 },
1338 {
1339 "name" : "calc_1",
1340 "id" : 2,
1341 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001342 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001343 "line" : 57,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001344 "column" : 8,
1345 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1346 },
1347 "algo" : "csum16",
1348 "input" : [
1349 {
1350 "type" : "field",
1351 "value" : ["ipv4", "version"]
1352 },
1353 {
1354 "type" : "field",
1355 "value" : ["ipv4", "ihl"]
1356 },
1357 {
1358 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001359 "value" : ["ipv4", "dscp"]
1360 },
1361 {
1362 "type" : "field",
1363 "value" : ["ipv4", "ecn"]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001364 },
1365 {
1366 "type" : "field",
1367 "value" : ["ipv4", "total_len"]
1368 },
1369 {
1370 "type" : "field",
1371 "value" : ["ipv4", "identification"]
1372 },
1373 {
1374 "type" : "field",
1375 "value" : ["ipv4", "flags"]
1376 },
1377 {
1378 "type" : "field",
1379 "value" : ["ipv4", "frag_offset"]
1380 },
1381 {
1382 "type" : "field",
1383 "value" : ["ipv4", "ttl"]
1384 },
1385 {
1386 "type" : "field",
1387 "value" : ["ipv4", "protocol"]
1388 },
1389 {
1390 "type" : "field",
1391 "value" : ["ipv4", "src_addr"]
1392 },
1393 {
1394 "type" : "field",
1395 "value" : ["ipv4", "dst_addr"]
1396 }
1397 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001398 }
1399 ],
1400 "learn_lists" : [],
1401 "actions" : [
1402 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001403 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001404 "id" : 0,
1405 "runtime_data" : [],
1406 "primitives" : []
1407 },
1408 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001409 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001410 "id" : 1,
1411 "runtime_data" : [],
1412 "primitives" : []
1413 },
1414 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001415 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001416 "id" : 2,
1417 "runtime_data" : [],
1418 "primitives" : []
1419 },
1420 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001421 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001422 "id" : 3,
1423 "runtime_data" : [],
1424 "primitives" : []
1425 },
1426 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001427 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001428 "id" : 4,
1429 "runtime_data" : [],
1430 "primitives" : []
1431 },
1432 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001433 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001434 "id" : 5,
1435 "runtime_data" : [],
1436 "primitives" : []
1437 },
1438 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001439 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001440 "id" : 6,
1441 "runtime_data" : [],
1442 "primitives" : []
1443 },
1444 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001445 "name" : "NoAction",
Robert MacDavidde12b982020-07-15 18:38:59 -07001446 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001447 "runtime_data" : [],
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001448 "primitives" : []
1449 },
1450 {
1451 "name" : "NoAction",
1452 "id" : 8,
1453 "runtime_data" : [],
1454 "primitives" : []
1455 },
1456 {
1457 "name" : "FabricIngress.filtering.deny",
1458 "id" : 9,
1459 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001460 "primitives" : [
1461 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001462 "op" : "assign",
1463 "parameters" : [
1464 {
1465 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001466 "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001467 },
1468 {
1469 "type" : "expression",
1470 "value" : {
1471 "type" : "expression",
1472 "value" : {
1473 "op" : "b2d",
1474 "left" : null,
1475 "right" : {
1476 "type" : "bool",
1477 "value" : true
1478 }
1479 }
1480 }
1481 }
1482 ],
1483 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001484 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001485 "line" : 36,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001486 "column" : 40,
1487 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001488 }
1489 },
1490 {
1491 "op" : "assign",
1492 "parameters" : [
1493 {
1494 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001495 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001496 },
1497 {
1498 "type" : "expression",
1499 "value" : {
1500 "type" : "expression",
1501 "value" : {
1502 "op" : "b2d",
1503 "left" : null,
1504 "right" : {
1505 "type" : "bool",
1506 "value" : true
1507 }
1508 }
1509 }
1510 }
1511 ],
1512 "source_info" : {
1513 "filename" : "include/control/filtering.p4",
1514 "line" : 37,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001515 "column" : 34,
1516 "source_fragment" : "= true; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001517 }
1518 }
1519 ]
1520 },
1521 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001522 "name" : "FabricIngress.filtering.permit",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001523 "id" : 10,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001524 "runtime_data" : [],
1525 "primitives" : []
1526 },
1527 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001528 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001529 "id" : 11,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001530 "runtime_data" : [
1531 {
1532 "name" : "vlan_id",
1533 "bitwidth" : 12
1534 }
1535 ],
1536 "primitives" : [
1537 {
1538 "op" : "assign",
1539 "parameters" : [
1540 {
1541 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001542 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001543 },
1544 {
1545 "type" : "runtime_data",
1546 "value" : 0
1547 }
1548 ],
1549 "source_info" : {
1550 "filename" : "include/control/filtering.p4",
1551 "line" : 47,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001552 "column" : 32,
1553 "source_fragment" : "= vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001554 }
1555 }
1556 ]
1557 },
1558 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001559 "name" : "FabricIngress.filtering.set_forwarding_type",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001560 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001561 "runtime_data" : [
1562 {
1563 "name" : "fwd_type",
1564 "bitwidth" : 3
1565 }
1566 ],
1567 "primitives" : [
1568 {
1569 "op" : "assign",
1570 "parameters" : [
1571 {
1572 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001573 "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001574 },
1575 {
1576 "type" : "runtime_data",
1577 "value" : 0
1578 }
1579 ],
1580 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001581 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001582 "line" : 88,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001583 "column" : 33,
1584 "source_fragment" : "= fwd_type; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001585 }
1586 }
1587 ]
1588 },
1589 {
Yi Tseng47eac892018-07-11 02:17:04 +08001590 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001591 "id" : 13,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001592 "runtime_data" : [
1593 {
1594 "name" : "next_id",
1595 "bitwidth" : 32
1596 }
1597 ],
1598 "primitives" : [
1599 {
1600 "op" : "assign",
1601 "parameters" : [
1602 {
1603 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001604 "value" : ["scalars", "fabric_metadata_t._next_id9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001605 },
1606 {
1607 "type" : "runtime_data",
1608 "value" : 0
1609 }
1610 ],
1611 "source_info" : {
1612 "filename" : "include/control/forwarding.p4",
1613 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001614 "column" : 32,
1615 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001616 }
1617 }
1618 ]
1619 },
1620 {
1621 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001622 "id" : 14,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001623 "runtime_data" : [
1624 {
1625 "name" : "next_id",
1626 "bitwidth" : 32
1627 }
1628 ],
1629 "primitives" : [
1630 {
1631 "op" : "assign",
1632 "parameters" : [
1633 {
1634 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001635 "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001636 },
1637 {
1638 "type" : "hexstr",
1639 "value" : "0x000000"
1640 }
1641 ],
1642 "source_info" : {
1643 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001644 "line" : 66,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001645 "column" : 35,
1646 "source_fragment" : "= 0; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001647 }
1648 },
1649 {
1650 "op" : "assign",
1651 "parameters" : [
1652 {
1653 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001654 "value" : ["scalars", "fabric_metadata_t._next_id9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001655 },
1656 {
1657 "type" : "runtime_data",
1658 "value" : 0
1659 }
1660 ],
1661 "source_info" : {
1662 "filename" : "include/control/forwarding.p4",
1663 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001664 "column" : 32,
1665 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001666 }
1667 }
1668 ]
1669 },
1670 {
1671 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001672 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001673 "runtime_data" : [
1674 {
1675 "name" : "next_id",
1676 "bitwidth" : 32
1677 }
1678 ],
1679 "primitives" : [
1680 {
1681 "op" : "assign",
1682 "parameters" : [
1683 {
1684 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001685 "value" : ["scalars", "fabric_metadata_t._next_id9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001686 },
1687 {
1688 "type" : "runtime_data",
1689 "value" : 0
1690 }
1691 ],
1692 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001693 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001694 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001695 "column" : 32,
1696 "source_fragment" : "= next_id; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001697 }
1698 }
1699 ]
1700 },
1701 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001702 "name" : "FabricIngress.forwarding.nop_routing_v4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001703 "id" : 16,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001704 "runtime_data" : [],
1705 "primitives" : []
Yi Tseng47eac892018-07-11 02:17:04 +08001706 },
1707 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001708 "name" : "FabricIngress.acl.set_next_id_acl",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001709 "id" : 17,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001710 "runtime_data" : [
1711 {
1712 "name" : "next_id",
1713 "bitwidth" : 32
1714 }
1715 ],
1716 "primitives" : [
1717 {
1718 "op" : "assign",
1719 "parameters" : [
1720 {
1721 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001722 "value" : ["scalars", "fabric_metadata_t._next_id9"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08001723 },
1724 {
1725 "type" : "runtime_data",
1726 "value" : 0
1727 }
1728 ],
1729 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001730 "filename" : "include/control/acl.p4",
1731 "line" : 33,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001732 "column" : 32,
1733 "source_fragment" : "= next_id; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001734 }
1735 }
1736 ]
1737 },
1738 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001739 "name" : "FabricIngress.acl.punt_to_cpu",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001740 "id" : 18,
Charles Chancd03f072018-08-31 17:46:37 -07001741 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001742 "primitives" : [
1743 {
1744 "op" : "assign",
1745 "parameters" : [
1746 {
1747 "type" : "field",
1748 "value" : ["standard_metadata", "egress_spec"]
1749 },
1750 {
1751 "type" : "hexstr",
1752 "value" : "0x00ff"
1753 }
1754 ],
1755 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001756 "filename" : "include/control/acl.p4",
1757 "line" : 39,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001758 "column" : 8,
1759 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001760 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001761 },
1762 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001763 "op" : "assign",
1764 "parameters" : [
1765 {
1766 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001767 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001768 },
1769 {
1770 "type" : "expression",
1771 "value" : {
1772 "type" : "expression",
1773 "value" : {
1774 "op" : "b2d",
1775 "left" : null,
1776 "right" : {
1777 "type" : "bool",
1778 "value" : true
1779 }
1780 }
1781 }
1782 }
1783 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001784 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001785 "filename" : "include/control/acl.p4",
1786 "line" : 40,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001787 "column" : 34,
1788 "source_fragment" : "= true; ..."
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001789 }
1790 }
1791 ]
1792 },
1793 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001794 "name" : "FabricIngress.acl.set_clone_session_id",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001795 "id" : 19,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001796 "runtime_data" : [
1797 {
1798 "name" : "clone_id",
1799 "bitwidth" : 32
1800 }
1801 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001802 "primitives" : [
1803 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001804 "op" : "clone_ingress_pkt_to_egress",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001805 "parameters" : [
1806 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001807 "type" : "runtime_data",
1808 "value" : 0
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001809 },
1810 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001811 "type" : "hexstr",
1812 "value" : "0x1"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001813 }
1814 ],
1815 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001816 "filename" : "include/control/acl.p4",
1817 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001818 "column" : 8,
Daniele Moro3b7a21b2019-06-25 17:33:40 -07001819 "source_fragment" : "clone3(CloneType.I2E, clone_id, {standard_metadata.ingress_port})"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001820 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001821 }
1822 ]
1823 },
1824 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001825 "name" : "FabricIngress.acl.drop",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001826 "id" : 20,
Yi Tseng47eac892018-07-11 02:17:04 +08001827 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001828 "primitives" : [
1829 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001830 "op" : "mark_to_drop",
1831 "parameters" : [
1832 {
1833 "type" : "header",
1834 "value" : "standard_metadata"
1835 }
1836 ],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001837 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001838 "filename" : "include/control/acl.p4",
1839 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001840 "column" : 8,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001841 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001842 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001843 },
1844 {
1845 "op" : "assign",
1846 "parameters" : [
1847 {
1848 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001849 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001850 },
1851 {
1852 "type" : "expression",
1853 "value" : {
1854 "type" : "expression",
1855 "value" : {
1856 "op" : "b2d",
1857 "left" : null,
1858 "right" : {
1859 "type" : "bool",
1860 "value" : true
1861 }
1862 }
1863 }
1864 }
1865 ],
1866 "source_info" : {
1867 "filename" : "include/control/acl.p4",
1868 "line" : 52,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001869 "column" : 34,
1870 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001871 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001872 }
1873 ]
1874 },
1875 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001876 "name" : "FabricIngress.acl.nop_acl",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001877 "id" : 21,
Charles Chancf696e52018-08-16 16:25:13 -07001878 "runtime_data" : [],
1879 "primitives" : []
1880 },
1881 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001882 "name" : "FabricIngress.next.set_vlan",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001883 "id" : 22,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001884 "runtime_data" : [
1885 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001886 "name" : "vlan_id",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001887 "bitwidth" : 12
1888 }
1889 ],
1890 "primitives" : [
1891 {
1892 "op" : "assign",
1893 "parameters" : [
1894 {
1895 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001896 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001897 },
1898 {
1899 "type" : "runtime_data",
1900 "value" : 0
1901 }
1902 ],
1903 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001904 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001905 "line" : 70,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001906 "column" : 32,
1907 "source_fragment" : "= vlan_id; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001908 }
1909 }
1910 ]
1911 },
1912 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001913 "name" : "FabricIngress.next.output_xconnect",
Robert MacDavidde12b982020-07-15 18:38:59 -07001914 "id" : 23,
Yi Tseng47eac892018-07-11 02:17:04 +08001915 "runtime_data" : [
1916 {
1917 "name" : "port_num",
1918 "bitwidth" : 9
1919 }
1920 ],
1921 "primitives" : [
1922 {
1923 "op" : "assign",
1924 "parameters" : [
1925 {
1926 "type" : "field",
1927 "value" : ["standard_metadata", "egress_spec"]
1928 },
1929 {
1930 "type" : "runtime_data",
1931 "value" : 0
1932 }
1933 ],
1934 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001935 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001936 "line" : 31,
1937 "column" : 5,
1938 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng47eac892018-07-11 02:17:04 +08001939 }
1940 }
1941 ]
1942 },
1943 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001944 "name" : "FabricIngress.next.set_next_id_xconnect",
Robert MacDavidde12b982020-07-15 18:38:59 -07001945 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001946 "runtime_data" : [
1947 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08001948 "name" : "next_id",
1949 "bitwidth" : 32
1950 }
1951 ],
1952 "primitives" : [
1953 {
1954 "op" : "assign",
1955 "parameters" : [
1956 {
1957 "type" : "field",
1958 "value" : ["scalars", "fabric_metadata_t._next_id9"]
1959 },
1960 {
1961 "type" : "runtime_data",
1962 "value" : 0
1963 }
1964 ],
1965 "source_info" : {
1966 "filename" : "include/control/next.p4",
1967 "line" : 115,
1968 "column" : 32,
1969 "source_fragment" : "= next_id; ..."
1970 }
1971 }
1972 ]
1973 },
1974 {
1975 "name" : "FabricIngress.next.output_hashed",
1976 "id" : 25,
1977 "runtime_data" : [
1978 {
1979 "name" : "port_num",
1980 "bitwidth" : 9
1981 }
1982 ],
1983 "primitives" : [
1984 {
1985 "op" : "assign",
1986 "parameters" : [
1987 {
1988 "type" : "field",
1989 "value" : ["standard_metadata", "egress_spec"]
1990 },
1991 {
1992 "type" : "runtime_data",
1993 "value" : 0
1994 }
1995 ],
1996 "source_info" : {
1997 "filename" : "include/control/next.p4",
1998 "line" : 31,
1999 "column" : 5,
2000 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2001 }
2002 }
2003 ]
2004 },
2005 {
2006 "name" : "FabricIngress.next.routing_hashed",
2007 "id" : 26,
2008 "runtime_data" : [
2009 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002010 "name" : "port_num",
2011 "bitwidth" : 9
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002012 },
2013 {
2014 "name" : "smac",
2015 "bitwidth" : 48
2016 },
2017 {
2018 "name" : "dmac",
2019 "bitwidth" : 48
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002020 }
2021 ],
2022 "primitives" : [
2023 {
2024 "op" : "assign",
2025 "parameters" : [
2026 {
2027 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002028 "value" : ["ethernet", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002029 },
2030 {
2031 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002032 "value" : 1
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002033 }
2034 ],
2035 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002036 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002037 "line" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002038 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002039 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2040 }
2041 },
2042 {
2043 "op" : "assign",
2044 "parameters" : [
2045 {
2046 "type" : "field",
2047 "value" : ["ethernet", "dst_addr"]
2048 },
2049 {
2050 "type" : "runtime_data",
2051 "value" : 2
2052 }
2053 ],
2054 "source_info" : {
2055 "filename" : "include/control/next.p4",
2056 "line" : 41,
2057 "column" : 8,
2058 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002059 }
2060 },
2061 {
2062 "op" : "assign",
2063 "parameters" : [
2064 {
2065 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002066 "value" : ["standard_metadata", "egress_spec"]
2067 },
2068 {
2069 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002070 "value" : 0
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002071 }
2072 ],
2073 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002074 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002075 "line" : 31,
2076 "column" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002077 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2078 }
2079 }
2080 ]
2081 },
2082 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002083 "name" : "FabricIngress.next.mpls_routing_hashed",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08002084 "id" : 27,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002085 "runtime_data" : [
2086 {
2087 "name" : "port_num",
2088 "bitwidth" : 9
2089 },
2090 {
2091 "name" : "smac",
2092 "bitwidth" : 48
2093 },
2094 {
2095 "name" : "dmac",
2096 "bitwidth" : 48
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002097 },
2098 {
2099 "name" : "label",
2100 "bitwidth" : 20
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002101 }
2102 ],
2103 "primitives" : [
2104 {
2105 "op" : "assign",
2106 "parameters" : [
2107 {
2108 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002109 "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002110 },
2111 {
2112 "type" : "runtime_data",
2113 "value" : 3
2114 }
2115 ],
2116 "source_info" : {
2117 "filename" : "include/control/next.p4",
2118 "line" : 46,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002119 "column" : 35,
2120 "source_fragment" : "= label; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002121 }
2122 },
2123 {
2124 "op" : "assign",
2125 "parameters" : [
2126 {
2127 "type" : "field",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002128 "value" : ["ethernet", "src_addr"]
2129 },
2130 {
2131 "type" : "runtime_data",
2132 "value" : 1
2133 }
2134 ],
2135 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002136 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002137 "line" : 36,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002138 "column" : 8,
2139 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2140 }
2141 },
2142 {
2143 "op" : "assign",
2144 "parameters" : [
2145 {
2146 "type" : "field",
2147 "value" : ["ethernet", "dst_addr"]
2148 },
2149 {
2150 "type" : "runtime_data",
2151 "value" : 2
2152 }
2153 ],
2154 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002155 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002156 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002157 "column" : 8,
2158 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2159 }
2160 },
2161 {
2162 "op" : "assign",
2163 "parameters" : [
2164 {
2165 "type" : "field",
2166 "value" : ["standard_metadata", "egress_spec"]
2167 },
2168 {
2169 "type" : "runtime_data",
2170 "value" : 0
2171 }
2172 ],
2173 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002174 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002175 "line" : 31,
2176 "column" : 5,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002177 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2178 }
2179 }
2180 ]
2181 },
2182 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002183 "name" : "FabricIngress.next.set_mcast_group_id",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08002184 "id" : 28,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002185 "runtime_data" : [
2186 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002187 "name" : "group_id",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002188 "bitwidth" : 16
2189 }
2190 ],
2191 "primitives" : [
2192 {
2193 "op" : "assign",
2194 "parameters" : [
2195 {
2196 "type" : "field",
2197 "value" : ["standard_metadata", "mcast_grp"]
2198 },
2199 {
2200 "type" : "runtime_data",
2201 "value" : 0
2202 }
2203 ],
2204 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002205 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002206 "line" : 231,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002207 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002208 "source_fragment" : "standard_metadata.mcast_grp = group_id"
Esin Karaman971fb7f2017-12-28 13:44:52 +00002209 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002210 },
2211 {
2212 "op" : "assign",
2213 "parameters" : [
2214 {
2215 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002216 "value" : ["scalars", "fabric_metadata_t._is_multicast10"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002217 },
2218 {
2219 "type" : "expression",
2220 "value" : {
2221 "type" : "expression",
2222 "value" : {
2223 "op" : "b2d",
2224 "left" : null,
2225 "right" : {
2226 "type" : "bool",
2227 "value" : true
2228 }
2229 }
2230 }
2231 }
2232 ],
2233 "source_info" : {
2234 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002235 "line" : 232,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002236 "column" : 37,
2237 "source_fragment" : "= true; ..."
Carmelo Casconea5400af2018-07-17 22:11:54 +02002238 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002239 }
2240 ]
2241 },
2242 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08002243 "name" : "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_tcp",
2244 "id" : 29,
2245 "runtime_data" : [],
2246 "primitives" : [
2247 {
2248 "op" : "assign",
2249 "parameters" : [
2250 {
2251 "type" : "field",
2252 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
2253 },
2254 {
2255 "type" : "hexstr",
2256 "value" : "0x0800"
2257 }
2258 ],
2259 "source_info" : {
2260 "filename" : "include/control/../define.p4",
2261 "line" : 118,
2262 "column" : 31,
2263 "source_fragment" : "0x0800; ..."
2264 }
2265 },
2266 {
2267 "op" : "assign",
2268 "parameters" : [
2269 {
2270 "type" : "field",
2271 "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
2272 },
2273 {
2274 "type" : "field",
2275 "value" : ["inner_ipv4", "protocol"]
2276 }
2277 ],
2278 "source_info" : {
2279 "filename" : "include/control/spgw.p4",
2280 "line" : 39,
2281 "column" : 27,
2282 "source_fragment" : "= hdr.inner_ipv4.protocol; ..."
2283 }
2284 },
2285 {
2286 "op" : "assign",
2287 "parameters" : [
2288 {
2289 "type" : "field",
2290 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
2291 },
2292 {
2293 "type" : "field",
2294 "value" : ["inner_ipv4", "src_addr"]
2295 }
2296 ],
2297 "source_info" : {
2298 "filename" : "include/control/spgw.p4",
2299 "line" : 40,
2300 "column" : 32,
2301 "source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
2302 }
2303 },
2304 {
2305 "op" : "assign",
2306 "parameters" : [
2307 {
2308 "type" : "field",
2309 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
2310 },
2311 {
2312 "type" : "field",
2313 "value" : ["inner_ipv4", "dst_addr"]
2314 }
2315 ],
2316 "source_info" : {
2317 "filename" : "include/control/spgw.p4",
2318 "line" : 41,
2319 "column" : 32,
2320 "source_fragment" : "= hdr.inner_ipv4.dst_addr; ..."
2321 }
2322 },
2323 {
2324 "op" : "assign",
2325 "parameters" : [
2326 {
2327 "type" : "field",
2328 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
2329 },
2330 {
2331 "type" : "field",
2332 "value" : ["scalars", "fabric_metadata_t._inner_l4_sport17"]
2333 }
2334 ],
2335 "source_info" : {
2336 "filename" : "include/control/spgw.p4",
2337 "line" : 42,
2338 "column" : 27,
2339 "source_fragment" : "= fabric_md.inner_l4_sport; ..."
2340 }
2341 },
2342 {
2343 "op" : "assign",
2344 "parameters" : [
2345 {
2346 "type" : "field",
2347 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
2348 },
2349 {
2350 "type" : "field",
2351 "value" : ["scalars", "fabric_metadata_t._inner_l4_dport18"]
2352 }
2353 ],
2354 "source_info" : {
2355 "filename" : "include/control/spgw.p4",
2356 "line" : 43,
2357 "column" : 27,
2358 "source_fragment" : "= fabric_md.inner_l4_dport; ..."
2359 }
2360 },
2361 {
2362 "op" : "assign_header",
2363 "parameters" : [
2364 {
2365 "type" : "header",
2366 "value" : "ipv4"
2367 },
2368 {
2369 "type" : "header",
2370 "value" : "inner_ipv4"
2371 }
2372 ],
2373 "source_info" : {
2374 "filename" : "include/control/spgw.p4",
2375 "line" : 45,
2376 "column" : 8,
2377 "source_fragment" : "hdr.ipv4 = hdr.inner_ipv4"
2378 }
2379 },
2380 {
2381 "op" : "remove_header",
2382 "parameters" : [
2383 {
2384 "type" : "header",
2385 "value" : "inner_ipv4"
2386 }
2387 ],
2388 "source_info" : {
2389 "filename" : "include/control/spgw.p4",
2390 "line" : 46,
2391 "column" : 8,
2392 "source_fragment" : "hdr.inner_ipv4.setInvalid()"
2393 }
2394 },
2395 {
2396 "op" : "remove_header",
2397 "parameters" : [
2398 {
2399 "type" : "header",
2400 "value" : "gtpu"
2401 }
2402 ],
2403 "source_info" : {
2404 "filename" : "include/control/spgw.p4",
2405 "line" : 47,
2406 "column" : 8,
2407 "source_fragment" : "hdr.gtpu.setInvalid()"
2408 }
2409 },
2410 {
2411 "op" : "remove_header",
2412 "parameters" : [
2413 {
2414 "type" : "header",
2415 "value" : "udp"
2416 }
2417 ],
2418 "source_info" : {
2419 "filename" : "include/control/spgw.p4",
2420 "line" : 52,
2421 "column" : 8,
2422 "source_fragment" : "hdr.udp.setInvalid()"
2423 }
2424 },
2425 {
2426 "op" : "assign_header",
2427 "parameters" : [
2428 {
2429 "type" : "header",
2430 "value" : "tcp"
2431 },
2432 {
2433 "type" : "header",
2434 "value" : "inner_tcp"
2435 }
2436 ],
2437 "source_info" : {
2438 "filename" : "include/control/spgw.p4",
2439 "line" : 53,
2440 "column" : 8,
2441 "source_fragment" : "hdr.tcp = hdr.inner_tcp"
2442 }
2443 },
2444 {
2445 "op" : "remove_header",
2446 "parameters" : [
2447 {
2448 "type" : "header",
2449 "value" : "inner_tcp"
2450 }
2451 ],
2452 "source_info" : {
2453 "filename" : "include/control/spgw.p4",
2454 "line" : 54,
2455 "column" : 8,
2456 "source_fragment" : "hdr.inner_tcp.setInvalid()"
2457 }
2458 }
2459 ]
2460 },
2461 {
2462 "name" : "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_udp",
2463 "id" : 30,
2464 "runtime_data" : [],
2465 "primitives" : [
2466 {
2467 "op" : "assign",
2468 "parameters" : [
2469 {
2470 "type" : "field",
2471 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
2472 },
2473 {
2474 "type" : "hexstr",
2475 "value" : "0x0800"
2476 }
2477 ],
2478 "source_info" : {
2479 "filename" : "include/control/../define.p4",
2480 "line" : 118,
2481 "column" : 31,
2482 "source_fragment" : "0x0800; ..."
2483 }
2484 },
2485 {
2486 "op" : "assign",
2487 "parameters" : [
2488 {
2489 "type" : "field",
2490 "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
2491 },
2492 {
2493 "type" : "field",
2494 "value" : ["inner_ipv4", "protocol"]
2495 }
2496 ],
2497 "source_info" : {
2498 "filename" : "include/control/spgw.p4",
2499 "line" : 39,
2500 "column" : 27,
2501 "source_fragment" : "= hdr.inner_ipv4.protocol; ..."
2502 }
2503 },
2504 {
2505 "op" : "assign",
2506 "parameters" : [
2507 {
2508 "type" : "field",
2509 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
2510 },
2511 {
2512 "type" : "field",
2513 "value" : ["inner_ipv4", "src_addr"]
2514 }
2515 ],
2516 "source_info" : {
2517 "filename" : "include/control/spgw.p4",
2518 "line" : 40,
2519 "column" : 32,
2520 "source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
2521 }
2522 },
2523 {
2524 "op" : "assign",
2525 "parameters" : [
2526 {
2527 "type" : "field",
2528 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
2529 },
2530 {
2531 "type" : "field",
2532 "value" : ["inner_ipv4", "dst_addr"]
2533 }
2534 ],
2535 "source_info" : {
2536 "filename" : "include/control/spgw.p4",
2537 "line" : 41,
2538 "column" : 32,
2539 "source_fragment" : "= hdr.inner_ipv4.dst_addr; ..."
2540 }
2541 },
2542 {
2543 "op" : "assign",
2544 "parameters" : [
2545 {
2546 "type" : "field",
2547 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
2548 },
2549 {
2550 "type" : "field",
2551 "value" : ["scalars", "fabric_metadata_t._inner_l4_sport17"]
2552 }
2553 ],
2554 "source_info" : {
2555 "filename" : "include/control/spgw.p4",
2556 "line" : 42,
2557 "column" : 27,
2558 "source_fragment" : "= fabric_md.inner_l4_sport; ..."
2559 }
2560 },
2561 {
2562 "op" : "assign",
2563 "parameters" : [
2564 {
2565 "type" : "field",
2566 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
2567 },
2568 {
2569 "type" : "field",
2570 "value" : ["scalars", "fabric_metadata_t._inner_l4_dport18"]
2571 }
2572 ],
2573 "source_info" : {
2574 "filename" : "include/control/spgw.p4",
2575 "line" : 43,
2576 "column" : 27,
2577 "source_fragment" : "= fabric_md.inner_l4_dport; ..."
2578 }
2579 },
2580 {
2581 "op" : "assign_header",
2582 "parameters" : [
2583 {
2584 "type" : "header",
2585 "value" : "ipv4"
2586 },
2587 {
2588 "type" : "header",
2589 "value" : "inner_ipv4"
2590 }
2591 ],
2592 "source_info" : {
2593 "filename" : "include/control/spgw.p4",
2594 "line" : 45,
2595 "column" : 8,
2596 "source_fragment" : "hdr.ipv4 = hdr.inner_ipv4"
2597 }
2598 },
2599 {
2600 "op" : "remove_header",
2601 "parameters" : [
2602 {
2603 "type" : "header",
2604 "value" : "inner_ipv4"
2605 }
2606 ],
2607 "source_info" : {
2608 "filename" : "include/control/spgw.p4",
2609 "line" : 46,
2610 "column" : 8,
2611 "source_fragment" : "hdr.inner_ipv4.setInvalid()"
2612 }
2613 },
2614 {
2615 "op" : "remove_header",
2616 "parameters" : [
2617 {
2618 "type" : "header",
2619 "value" : "gtpu"
2620 }
2621 ],
2622 "source_info" : {
2623 "filename" : "include/control/spgw.p4",
2624 "line" : 47,
2625 "column" : 8,
2626 "source_fragment" : "hdr.gtpu.setInvalid()"
2627 }
2628 },
2629 {
2630 "op" : "assign_header",
2631 "parameters" : [
2632 {
2633 "type" : "header",
2634 "value" : "udp"
2635 },
2636 {
2637 "type" : "header",
2638 "value" : "inner_udp"
2639 }
2640 ],
2641 "source_info" : {
2642 "filename" : "include/control/spgw.p4",
2643 "line" : 59,
2644 "column" : 8,
2645 "source_fragment" : "hdr.udp = hdr.inner_udp"
2646 }
2647 },
2648 {
2649 "op" : "remove_header",
2650 "parameters" : [
2651 {
2652 "type" : "header",
2653 "value" : "inner_udp"
2654 }
2655 ],
2656 "source_info" : {
2657 "filename" : "include/control/spgw.p4",
2658 "line" : 60,
2659 "column" : 8,
2660 "source_fragment" : "hdr.inner_udp.setInvalid()"
2661 }
2662 }
2663 ]
2664 },
2665 {
2666 "name" : "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_icmp",
2667 "id" : 31,
2668 "runtime_data" : [],
2669 "primitives" : [
2670 {
2671 "op" : "assign",
2672 "parameters" : [
2673 {
2674 "type" : "field",
2675 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
2676 },
2677 {
2678 "type" : "hexstr",
2679 "value" : "0x0800"
2680 }
2681 ],
2682 "source_info" : {
2683 "filename" : "include/control/../define.p4",
2684 "line" : 118,
2685 "column" : 31,
2686 "source_fragment" : "0x0800; ..."
2687 }
2688 },
2689 {
2690 "op" : "assign",
2691 "parameters" : [
2692 {
2693 "type" : "field",
2694 "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
2695 },
2696 {
2697 "type" : "field",
2698 "value" : ["inner_ipv4", "protocol"]
2699 }
2700 ],
2701 "source_info" : {
2702 "filename" : "include/control/spgw.p4",
2703 "line" : 39,
2704 "column" : 27,
2705 "source_fragment" : "= hdr.inner_ipv4.protocol; ..."
2706 }
2707 },
2708 {
2709 "op" : "assign",
2710 "parameters" : [
2711 {
2712 "type" : "field",
2713 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
2714 },
2715 {
2716 "type" : "field",
2717 "value" : ["inner_ipv4", "src_addr"]
2718 }
2719 ],
2720 "source_info" : {
2721 "filename" : "include/control/spgw.p4",
2722 "line" : 40,
2723 "column" : 32,
2724 "source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
2725 }
2726 },
2727 {
2728 "op" : "assign",
2729 "parameters" : [
2730 {
2731 "type" : "field",
2732 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
2733 },
2734 {
2735 "type" : "field",
2736 "value" : ["inner_ipv4", "dst_addr"]
2737 }
2738 ],
2739 "source_info" : {
2740 "filename" : "include/control/spgw.p4",
2741 "line" : 41,
2742 "column" : 32,
2743 "source_fragment" : "= hdr.inner_ipv4.dst_addr; ..."
2744 }
2745 },
2746 {
2747 "op" : "assign",
2748 "parameters" : [
2749 {
2750 "type" : "field",
2751 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
2752 },
2753 {
2754 "type" : "field",
2755 "value" : ["scalars", "fabric_metadata_t._inner_l4_sport17"]
2756 }
2757 ],
2758 "source_info" : {
2759 "filename" : "include/control/spgw.p4",
2760 "line" : 42,
2761 "column" : 27,
2762 "source_fragment" : "= fabric_md.inner_l4_sport; ..."
2763 }
2764 },
2765 {
2766 "op" : "assign",
2767 "parameters" : [
2768 {
2769 "type" : "field",
2770 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
2771 },
2772 {
2773 "type" : "field",
2774 "value" : ["scalars", "fabric_metadata_t._inner_l4_dport18"]
2775 }
2776 ],
2777 "source_info" : {
2778 "filename" : "include/control/spgw.p4",
2779 "line" : 43,
2780 "column" : 27,
2781 "source_fragment" : "= fabric_md.inner_l4_dport; ..."
2782 }
2783 },
2784 {
2785 "op" : "assign_header",
2786 "parameters" : [
2787 {
2788 "type" : "header",
2789 "value" : "ipv4"
2790 },
2791 {
2792 "type" : "header",
2793 "value" : "inner_ipv4"
2794 }
2795 ],
2796 "source_info" : {
2797 "filename" : "include/control/spgw.p4",
2798 "line" : 45,
2799 "column" : 8,
2800 "source_fragment" : "hdr.ipv4 = hdr.inner_ipv4"
2801 }
2802 },
2803 {
2804 "op" : "remove_header",
2805 "parameters" : [
2806 {
2807 "type" : "header",
2808 "value" : "inner_ipv4"
2809 }
2810 ],
2811 "source_info" : {
2812 "filename" : "include/control/spgw.p4",
2813 "line" : 46,
2814 "column" : 8,
2815 "source_fragment" : "hdr.inner_ipv4.setInvalid()"
2816 }
2817 },
2818 {
2819 "op" : "remove_header",
2820 "parameters" : [
2821 {
2822 "type" : "header",
2823 "value" : "gtpu"
2824 }
2825 ],
2826 "source_info" : {
2827 "filename" : "include/control/spgw.p4",
2828 "line" : 47,
2829 "column" : 8,
2830 "source_fragment" : "hdr.gtpu.setInvalid()"
2831 }
2832 },
2833 {
2834 "op" : "remove_header",
2835 "parameters" : [
2836 {
2837 "type" : "header",
2838 "value" : "udp"
2839 }
2840 ],
2841 "source_info" : {
2842 "filename" : "include/control/spgw.p4",
2843 "line" : 65,
2844 "column" : 8,
2845 "source_fragment" : "hdr.udp.setInvalid()"
2846 }
2847 },
2848 {
2849 "op" : "assign_header",
2850 "parameters" : [
2851 {
2852 "type" : "header",
2853 "value" : "icmp"
2854 },
2855 {
2856 "type" : "header",
2857 "value" : "inner_icmp"
2858 }
2859 ],
2860 "source_info" : {
2861 "filename" : "include/control/spgw.p4",
2862 "line" : 66,
2863 "column" : 8,
2864 "source_fragment" : "hdr.icmp = hdr.inner_icmp"
2865 }
2866 },
2867 {
2868 "op" : "remove_header",
2869 "parameters" : [
2870 {
2871 "type" : "header",
2872 "value" : "inner_icmp"
2873 }
2874 ],
2875 "source_info" : {
2876 "filename" : "include/control/spgw.p4",
2877 "line" : 67,
2878 "column" : 8,
2879 "source_fragment" : "hdr.inner_icmp.setInvalid()"
2880 }
2881 }
2882 ]
2883 },
2884 {
2885 "name" : "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_unknown",
2886 "id" : 32,
2887 "runtime_data" : [],
2888 "primitives" : [
2889 {
2890 "op" : "assign",
2891 "parameters" : [
2892 {
2893 "type" : "field",
2894 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
2895 },
2896 {
2897 "type" : "hexstr",
2898 "value" : "0x0800"
2899 }
2900 ],
2901 "source_info" : {
2902 "filename" : "include/control/../define.p4",
2903 "line" : 118,
2904 "column" : 31,
2905 "source_fragment" : "0x0800; ..."
2906 }
2907 },
2908 {
2909 "op" : "assign",
2910 "parameters" : [
2911 {
2912 "type" : "field",
2913 "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
2914 },
2915 {
2916 "type" : "field",
2917 "value" : ["inner_ipv4", "protocol"]
2918 }
2919 ],
2920 "source_info" : {
2921 "filename" : "include/control/spgw.p4",
2922 "line" : 39,
2923 "column" : 27,
2924 "source_fragment" : "= hdr.inner_ipv4.protocol; ..."
2925 }
2926 },
2927 {
2928 "op" : "assign",
2929 "parameters" : [
2930 {
2931 "type" : "field",
2932 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
2933 },
2934 {
2935 "type" : "field",
2936 "value" : ["inner_ipv4", "src_addr"]
2937 }
2938 ],
2939 "source_info" : {
2940 "filename" : "include/control/spgw.p4",
2941 "line" : 40,
2942 "column" : 32,
2943 "source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
2944 }
2945 },
2946 {
2947 "op" : "assign",
2948 "parameters" : [
2949 {
2950 "type" : "field",
2951 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
2952 },
2953 {
2954 "type" : "field",
2955 "value" : ["inner_ipv4", "dst_addr"]
2956 }
2957 ],
2958 "source_info" : {
2959 "filename" : "include/control/spgw.p4",
2960 "line" : 41,
2961 "column" : 32,
2962 "source_fragment" : "= hdr.inner_ipv4.dst_addr; ..."
2963 }
2964 },
2965 {
2966 "op" : "assign",
2967 "parameters" : [
2968 {
2969 "type" : "field",
2970 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
2971 },
2972 {
2973 "type" : "field",
2974 "value" : ["scalars", "fabric_metadata_t._inner_l4_sport17"]
2975 }
2976 ],
2977 "source_info" : {
2978 "filename" : "include/control/spgw.p4",
2979 "line" : 42,
2980 "column" : 27,
2981 "source_fragment" : "= fabric_md.inner_l4_sport; ..."
2982 }
2983 },
2984 {
2985 "op" : "assign",
2986 "parameters" : [
2987 {
2988 "type" : "field",
2989 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
2990 },
2991 {
2992 "type" : "field",
2993 "value" : ["scalars", "fabric_metadata_t._inner_l4_dport18"]
2994 }
2995 ],
2996 "source_info" : {
2997 "filename" : "include/control/spgw.p4",
2998 "line" : 43,
2999 "column" : 27,
3000 "source_fragment" : "= fabric_md.inner_l4_dport; ..."
3001 }
3002 },
3003 {
3004 "op" : "assign_header",
3005 "parameters" : [
3006 {
3007 "type" : "header",
3008 "value" : "ipv4"
3009 },
3010 {
3011 "type" : "header",
3012 "value" : "inner_ipv4"
3013 }
3014 ],
3015 "source_info" : {
3016 "filename" : "include/control/spgw.p4",
3017 "line" : 45,
3018 "column" : 8,
3019 "source_fragment" : "hdr.ipv4 = hdr.inner_ipv4"
3020 }
3021 },
3022 {
3023 "op" : "remove_header",
3024 "parameters" : [
3025 {
3026 "type" : "header",
3027 "value" : "inner_ipv4"
3028 }
3029 ],
3030 "source_info" : {
3031 "filename" : "include/control/spgw.p4",
3032 "line" : 46,
3033 "column" : 8,
3034 "source_fragment" : "hdr.inner_ipv4.setInvalid()"
3035 }
3036 },
3037 {
3038 "op" : "remove_header",
3039 "parameters" : [
3040 {
3041 "type" : "header",
3042 "value" : "gtpu"
3043 }
3044 ],
3045 "source_info" : {
3046 "filename" : "include/control/spgw.p4",
3047 "line" : 47,
3048 "column" : 8,
3049 "source_fragment" : "hdr.gtpu.setInvalid()"
3050 }
3051 },
3052 {
3053 "op" : "remove_header",
3054 "parameters" : [
3055 {
3056 "type" : "header",
3057 "value" : "udp"
3058 }
3059 ],
3060 "source_info" : {
3061 "filename" : "include/control/spgw.p4",
3062 "line" : 72,
3063 "column" : 8,
3064 "source_fragment" : "hdr.udp.setInvalid()"
3065 }
3066 }
3067 ]
3068 },
3069 {
3070 "name" : "FabricIngress.spgw.decap_gtpu.decap_inner_tcp",
3071 "id" : 33,
3072 "runtime_data" : [],
3073 "primitives" : [
3074 {
3075 "op" : "assign",
3076 "parameters" : [
3077 {
3078 "type" : "field",
3079 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
3080 },
3081 {
3082 "type" : "hexstr",
3083 "value" : "0x0800"
3084 }
3085 ],
3086 "source_info" : {
3087 "filename" : "include/control/../define.p4",
3088 "line" : 118,
3089 "column" : 31,
3090 "source_fragment" : "0x0800; ..."
3091 }
3092 },
3093 {
3094 "op" : "assign",
3095 "parameters" : [
3096 {
3097 "type" : "field",
3098 "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
3099 },
3100 {
3101 "type" : "field",
3102 "value" : ["inner_ipv4", "protocol"]
3103 }
3104 ],
3105 "source_info" : {
3106 "filename" : "include/control/spgw.p4",
3107 "line" : 39,
3108 "column" : 27,
3109 "source_fragment" : "= hdr.inner_ipv4.protocol; ..."
3110 }
3111 },
3112 {
3113 "op" : "assign",
3114 "parameters" : [
3115 {
3116 "type" : "field",
3117 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
3118 },
3119 {
3120 "type" : "field",
3121 "value" : ["inner_ipv4", "src_addr"]
3122 }
3123 ],
3124 "source_info" : {
3125 "filename" : "include/control/spgw.p4",
3126 "line" : 40,
3127 "column" : 32,
3128 "source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
3129 }
3130 },
3131 {
3132 "op" : "assign",
3133 "parameters" : [
3134 {
3135 "type" : "field",
3136 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
3137 },
3138 {
3139 "type" : "field",
3140 "value" : ["inner_ipv4", "dst_addr"]
3141 }
3142 ],
3143 "source_info" : {
3144 "filename" : "include/control/spgw.p4",
3145 "line" : 41,
3146 "column" : 32,
3147 "source_fragment" : "= hdr.inner_ipv4.dst_addr; ..."
3148 }
3149 },
3150 {
3151 "op" : "assign",
3152 "parameters" : [
3153 {
3154 "type" : "field",
3155 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
3156 },
3157 {
3158 "type" : "field",
3159 "value" : ["scalars", "fabric_metadata_t._inner_l4_sport17"]
3160 }
3161 ],
3162 "source_info" : {
3163 "filename" : "include/control/spgw.p4",
3164 "line" : 42,
3165 "column" : 27,
3166 "source_fragment" : "= fabric_md.inner_l4_sport; ..."
3167 }
3168 },
3169 {
3170 "op" : "assign",
3171 "parameters" : [
3172 {
3173 "type" : "field",
3174 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
3175 },
3176 {
3177 "type" : "field",
3178 "value" : ["scalars", "fabric_metadata_t._inner_l4_dport18"]
3179 }
3180 ],
3181 "source_info" : {
3182 "filename" : "include/control/spgw.p4",
3183 "line" : 43,
3184 "column" : 27,
3185 "source_fragment" : "= fabric_md.inner_l4_dport; ..."
3186 }
3187 },
3188 {
3189 "op" : "assign_header",
3190 "parameters" : [
3191 {
3192 "type" : "header",
3193 "value" : "ipv4"
3194 },
3195 {
3196 "type" : "header",
3197 "value" : "inner_ipv4"
3198 }
3199 ],
3200 "source_info" : {
3201 "filename" : "include/control/spgw.p4",
3202 "line" : 45,
3203 "column" : 8,
3204 "source_fragment" : "hdr.ipv4 = hdr.inner_ipv4"
3205 }
3206 },
3207 {
3208 "op" : "remove_header",
3209 "parameters" : [
3210 {
3211 "type" : "header",
3212 "value" : "inner_ipv4"
3213 }
3214 ],
3215 "source_info" : {
3216 "filename" : "include/control/spgw.p4",
3217 "line" : 46,
3218 "column" : 8,
3219 "source_fragment" : "hdr.inner_ipv4.setInvalid()"
3220 }
3221 },
3222 {
3223 "op" : "remove_header",
3224 "parameters" : [
3225 {
3226 "type" : "header",
3227 "value" : "gtpu"
3228 }
3229 ],
3230 "source_info" : {
3231 "filename" : "include/control/spgw.p4",
3232 "line" : 47,
3233 "column" : 8,
3234 "source_fragment" : "hdr.gtpu.setInvalid()"
3235 }
3236 },
3237 {
3238 "op" : "remove_header",
3239 "parameters" : [
3240 {
3241 "type" : "header",
3242 "value" : "udp"
3243 }
3244 ],
3245 "source_info" : {
3246 "filename" : "include/control/spgw.p4",
3247 "line" : 52,
3248 "column" : 8,
3249 "source_fragment" : "hdr.udp.setInvalid()"
3250 }
3251 },
3252 {
3253 "op" : "assign_header",
3254 "parameters" : [
3255 {
3256 "type" : "header",
3257 "value" : "tcp"
3258 },
3259 {
3260 "type" : "header",
3261 "value" : "inner_tcp"
3262 }
3263 ],
3264 "source_info" : {
3265 "filename" : "include/control/spgw.p4",
3266 "line" : 53,
3267 "column" : 8,
3268 "source_fragment" : "hdr.tcp = hdr.inner_tcp"
3269 }
3270 },
3271 {
3272 "op" : "remove_header",
3273 "parameters" : [
3274 {
3275 "type" : "header",
3276 "value" : "inner_tcp"
3277 }
3278 ],
3279 "source_info" : {
3280 "filename" : "include/control/spgw.p4",
3281 "line" : 54,
3282 "column" : 8,
3283 "source_fragment" : "hdr.inner_tcp.setInvalid()"
3284 }
3285 }
3286 ]
3287 },
3288 {
3289 "name" : "FabricIngress.spgw.decap_gtpu.decap_inner_udp",
3290 "id" : 34,
3291 "runtime_data" : [],
3292 "primitives" : [
3293 {
3294 "op" : "assign",
3295 "parameters" : [
3296 {
3297 "type" : "field",
3298 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
3299 },
3300 {
3301 "type" : "hexstr",
3302 "value" : "0x0800"
3303 }
3304 ],
3305 "source_info" : {
3306 "filename" : "include/control/../define.p4",
3307 "line" : 118,
3308 "column" : 31,
3309 "source_fragment" : "0x0800; ..."
3310 }
3311 },
3312 {
3313 "op" : "assign",
3314 "parameters" : [
3315 {
3316 "type" : "field",
3317 "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
3318 },
3319 {
3320 "type" : "field",
3321 "value" : ["inner_ipv4", "protocol"]
3322 }
3323 ],
3324 "source_info" : {
3325 "filename" : "include/control/spgw.p4",
3326 "line" : 39,
3327 "column" : 27,
3328 "source_fragment" : "= hdr.inner_ipv4.protocol; ..."
3329 }
3330 },
3331 {
3332 "op" : "assign",
3333 "parameters" : [
3334 {
3335 "type" : "field",
3336 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
3337 },
3338 {
3339 "type" : "field",
3340 "value" : ["inner_ipv4", "src_addr"]
3341 }
3342 ],
3343 "source_info" : {
3344 "filename" : "include/control/spgw.p4",
3345 "line" : 40,
3346 "column" : 32,
3347 "source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
3348 }
3349 },
3350 {
3351 "op" : "assign",
3352 "parameters" : [
3353 {
3354 "type" : "field",
3355 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
3356 },
3357 {
3358 "type" : "field",
3359 "value" : ["inner_ipv4", "dst_addr"]
3360 }
3361 ],
3362 "source_info" : {
3363 "filename" : "include/control/spgw.p4",
3364 "line" : 41,
3365 "column" : 32,
3366 "source_fragment" : "= hdr.inner_ipv4.dst_addr; ..."
3367 }
3368 },
3369 {
3370 "op" : "assign",
3371 "parameters" : [
3372 {
3373 "type" : "field",
3374 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
3375 },
3376 {
3377 "type" : "field",
3378 "value" : ["scalars", "fabric_metadata_t._inner_l4_sport17"]
3379 }
3380 ],
3381 "source_info" : {
3382 "filename" : "include/control/spgw.p4",
3383 "line" : 42,
3384 "column" : 27,
3385 "source_fragment" : "= fabric_md.inner_l4_sport; ..."
3386 }
3387 },
3388 {
3389 "op" : "assign",
3390 "parameters" : [
3391 {
3392 "type" : "field",
3393 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
3394 },
3395 {
3396 "type" : "field",
3397 "value" : ["scalars", "fabric_metadata_t._inner_l4_dport18"]
3398 }
3399 ],
3400 "source_info" : {
3401 "filename" : "include/control/spgw.p4",
3402 "line" : 43,
3403 "column" : 27,
3404 "source_fragment" : "= fabric_md.inner_l4_dport; ..."
3405 }
3406 },
3407 {
3408 "op" : "assign_header",
3409 "parameters" : [
3410 {
3411 "type" : "header",
3412 "value" : "ipv4"
3413 },
3414 {
3415 "type" : "header",
3416 "value" : "inner_ipv4"
3417 }
3418 ],
3419 "source_info" : {
3420 "filename" : "include/control/spgw.p4",
3421 "line" : 45,
3422 "column" : 8,
3423 "source_fragment" : "hdr.ipv4 = hdr.inner_ipv4"
3424 }
3425 },
3426 {
3427 "op" : "remove_header",
3428 "parameters" : [
3429 {
3430 "type" : "header",
3431 "value" : "inner_ipv4"
3432 }
3433 ],
3434 "source_info" : {
3435 "filename" : "include/control/spgw.p4",
3436 "line" : 46,
3437 "column" : 8,
3438 "source_fragment" : "hdr.inner_ipv4.setInvalid()"
3439 }
3440 },
3441 {
3442 "op" : "remove_header",
3443 "parameters" : [
3444 {
3445 "type" : "header",
3446 "value" : "gtpu"
3447 }
3448 ],
3449 "source_info" : {
3450 "filename" : "include/control/spgw.p4",
3451 "line" : 47,
3452 "column" : 8,
3453 "source_fragment" : "hdr.gtpu.setInvalid()"
3454 }
3455 },
3456 {
3457 "op" : "assign_header",
3458 "parameters" : [
3459 {
3460 "type" : "header",
3461 "value" : "udp"
3462 },
3463 {
3464 "type" : "header",
3465 "value" : "inner_udp"
3466 }
3467 ],
3468 "source_info" : {
3469 "filename" : "include/control/spgw.p4",
3470 "line" : 59,
3471 "column" : 8,
3472 "source_fragment" : "hdr.udp = hdr.inner_udp"
3473 }
3474 },
3475 {
3476 "op" : "remove_header",
3477 "parameters" : [
3478 {
3479 "type" : "header",
3480 "value" : "inner_udp"
3481 }
3482 ],
3483 "source_info" : {
3484 "filename" : "include/control/spgw.p4",
3485 "line" : 60,
3486 "column" : 8,
3487 "source_fragment" : "hdr.inner_udp.setInvalid()"
3488 }
3489 }
3490 ]
3491 },
3492 {
3493 "name" : "FabricIngress.spgw.decap_gtpu.decap_inner_icmp",
3494 "id" : 35,
3495 "runtime_data" : [],
3496 "primitives" : [
3497 {
3498 "op" : "assign",
3499 "parameters" : [
3500 {
3501 "type" : "field",
3502 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
3503 },
3504 {
3505 "type" : "hexstr",
3506 "value" : "0x0800"
3507 }
3508 ],
3509 "source_info" : {
3510 "filename" : "include/control/../define.p4",
3511 "line" : 118,
3512 "column" : 31,
3513 "source_fragment" : "0x0800; ..."
3514 }
3515 },
3516 {
3517 "op" : "assign",
3518 "parameters" : [
3519 {
3520 "type" : "field",
3521 "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
3522 },
3523 {
3524 "type" : "field",
3525 "value" : ["inner_ipv4", "protocol"]
3526 }
3527 ],
3528 "source_info" : {
3529 "filename" : "include/control/spgw.p4",
3530 "line" : 39,
3531 "column" : 27,
3532 "source_fragment" : "= hdr.inner_ipv4.protocol; ..."
3533 }
3534 },
3535 {
3536 "op" : "assign",
3537 "parameters" : [
3538 {
3539 "type" : "field",
3540 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
3541 },
3542 {
3543 "type" : "field",
3544 "value" : ["inner_ipv4", "src_addr"]
3545 }
3546 ],
3547 "source_info" : {
3548 "filename" : "include/control/spgw.p4",
3549 "line" : 40,
3550 "column" : 32,
3551 "source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
3552 }
3553 },
3554 {
3555 "op" : "assign",
3556 "parameters" : [
3557 {
3558 "type" : "field",
3559 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
3560 },
3561 {
3562 "type" : "field",
3563 "value" : ["inner_ipv4", "dst_addr"]
3564 }
3565 ],
3566 "source_info" : {
3567 "filename" : "include/control/spgw.p4",
3568 "line" : 41,
3569 "column" : 32,
3570 "source_fragment" : "= hdr.inner_ipv4.dst_addr; ..."
3571 }
3572 },
3573 {
3574 "op" : "assign",
3575 "parameters" : [
3576 {
3577 "type" : "field",
3578 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
3579 },
3580 {
3581 "type" : "field",
3582 "value" : ["scalars", "fabric_metadata_t._inner_l4_sport17"]
3583 }
3584 ],
3585 "source_info" : {
3586 "filename" : "include/control/spgw.p4",
3587 "line" : 42,
3588 "column" : 27,
3589 "source_fragment" : "= fabric_md.inner_l4_sport; ..."
3590 }
3591 },
3592 {
3593 "op" : "assign",
3594 "parameters" : [
3595 {
3596 "type" : "field",
3597 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
3598 },
3599 {
3600 "type" : "field",
3601 "value" : ["scalars", "fabric_metadata_t._inner_l4_dport18"]
3602 }
3603 ],
3604 "source_info" : {
3605 "filename" : "include/control/spgw.p4",
3606 "line" : 43,
3607 "column" : 27,
3608 "source_fragment" : "= fabric_md.inner_l4_dport; ..."
3609 }
3610 },
3611 {
3612 "op" : "assign_header",
3613 "parameters" : [
3614 {
3615 "type" : "header",
3616 "value" : "ipv4"
3617 },
3618 {
3619 "type" : "header",
3620 "value" : "inner_ipv4"
3621 }
3622 ],
3623 "source_info" : {
3624 "filename" : "include/control/spgw.p4",
3625 "line" : 45,
3626 "column" : 8,
3627 "source_fragment" : "hdr.ipv4 = hdr.inner_ipv4"
3628 }
3629 },
3630 {
3631 "op" : "remove_header",
3632 "parameters" : [
3633 {
3634 "type" : "header",
3635 "value" : "inner_ipv4"
3636 }
3637 ],
3638 "source_info" : {
3639 "filename" : "include/control/spgw.p4",
3640 "line" : 46,
3641 "column" : 8,
3642 "source_fragment" : "hdr.inner_ipv4.setInvalid()"
3643 }
3644 },
3645 {
3646 "op" : "remove_header",
3647 "parameters" : [
3648 {
3649 "type" : "header",
3650 "value" : "gtpu"
3651 }
3652 ],
3653 "source_info" : {
3654 "filename" : "include/control/spgw.p4",
3655 "line" : 47,
3656 "column" : 8,
3657 "source_fragment" : "hdr.gtpu.setInvalid()"
3658 }
3659 },
3660 {
3661 "op" : "remove_header",
3662 "parameters" : [
3663 {
3664 "type" : "header",
3665 "value" : "udp"
3666 }
3667 ],
3668 "source_info" : {
3669 "filename" : "include/control/spgw.p4",
3670 "line" : 65,
3671 "column" : 8,
3672 "source_fragment" : "hdr.udp.setInvalid()"
3673 }
3674 },
3675 {
3676 "op" : "assign_header",
3677 "parameters" : [
3678 {
3679 "type" : "header",
3680 "value" : "icmp"
3681 },
3682 {
3683 "type" : "header",
3684 "value" : "inner_icmp"
3685 }
3686 ],
3687 "source_info" : {
3688 "filename" : "include/control/spgw.p4",
3689 "line" : 66,
3690 "column" : 8,
3691 "source_fragment" : "hdr.icmp = hdr.inner_icmp"
3692 }
3693 },
3694 {
3695 "op" : "remove_header",
3696 "parameters" : [
3697 {
3698 "type" : "header",
3699 "value" : "inner_icmp"
3700 }
3701 ],
3702 "source_info" : {
3703 "filename" : "include/control/spgw.p4",
3704 "line" : 67,
3705 "column" : 8,
3706 "source_fragment" : "hdr.inner_icmp.setInvalid()"
3707 }
3708 }
3709 ]
3710 },
3711 {
3712 "name" : "FabricIngress.spgw.decap_gtpu.decap_inner_unknown",
3713 "id" : 36,
3714 "runtime_data" : [],
3715 "primitives" : [
3716 {
3717 "op" : "assign",
3718 "parameters" : [
3719 {
3720 "type" : "field",
3721 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
3722 },
3723 {
3724 "type" : "hexstr",
3725 "value" : "0x0800"
3726 }
3727 ],
3728 "source_info" : {
3729 "filename" : "include/control/../define.p4",
3730 "line" : 118,
3731 "column" : 31,
3732 "source_fragment" : "0x0800; ..."
3733 }
3734 },
3735 {
3736 "op" : "assign",
3737 "parameters" : [
3738 {
3739 "type" : "field",
3740 "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
3741 },
3742 {
3743 "type" : "field",
3744 "value" : ["inner_ipv4", "protocol"]
3745 }
3746 ],
3747 "source_info" : {
3748 "filename" : "include/control/spgw.p4",
3749 "line" : 39,
3750 "column" : 27,
3751 "source_fragment" : "= hdr.inner_ipv4.protocol; ..."
3752 }
3753 },
3754 {
3755 "op" : "assign",
3756 "parameters" : [
3757 {
3758 "type" : "field",
3759 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
3760 },
3761 {
3762 "type" : "field",
3763 "value" : ["inner_ipv4", "src_addr"]
3764 }
3765 ],
3766 "source_info" : {
3767 "filename" : "include/control/spgw.p4",
3768 "line" : 40,
3769 "column" : 32,
3770 "source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
3771 }
3772 },
3773 {
3774 "op" : "assign",
3775 "parameters" : [
3776 {
3777 "type" : "field",
3778 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
3779 },
3780 {
3781 "type" : "field",
3782 "value" : ["inner_ipv4", "dst_addr"]
3783 }
3784 ],
3785 "source_info" : {
3786 "filename" : "include/control/spgw.p4",
3787 "line" : 41,
3788 "column" : 32,
3789 "source_fragment" : "= hdr.inner_ipv4.dst_addr; ..."
3790 }
3791 },
3792 {
3793 "op" : "assign",
3794 "parameters" : [
3795 {
3796 "type" : "field",
3797 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
3798 },
3799 {
3800 "type" : "field",
3801 "value" : ["scalars", "fabric_metadata_t._inner_l4_sport17"]
3802 }
3803 ],
3804 "source_info" : {
3805 "filename" : "include/control/spgw.p4",
3806 "line" : 42,
3807 "column" : 27,
3808 "source_fragment" : "= fabric_md.inner_l4_sport; ..."
3809 }
3810 },
3811 {
3812 "op" : "assign",
3813 "parameters" : [
3814 {
3815 "type" : "field",
3816 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
3817 },
3818 {
3819 "type" : "field",
3820 "value" : ["scalars", "fabric_metadata_t._inner_l4_dport18"]
3821 }
3822 ],
3823 "source_info" : {
3824 "filename" : "include/control/spgw.p4",
3825 "line" : 43,
3826 "column" : 27,
3827 "source_fragment" : "= fabric_md.inner_l4_dport; ..."
3828 }
3829 },
3830 {
3831 "op" : "assign_header",
3832 "parameters" : [
3833 {
3834 "type" : "header",
3835 "value" : "ipv4"
3836 },
3837 {
3838 "type" : "header",
3839 "value" : "inner_ipv4"
3840 }
3841 ],
3842 "source_info" : {
3843 "filename" : "include/control/spgw.p4",
3844 "line" : 45,
3845 "column" : 8,
3846 "source_fragment" : "hdr.ipv4 = hdr.inner_ipv4"
3847 }
3848 },
3849 {
3850 "op" : "remove_header",
3851 "parameters" : [
3852 {
3853 "type" : "header",
3854 "value" : "inner_ipv4"
3855 }
3856 ],
3857 "source_info" : {
3858 "filename" : "include/control/spgw.p4",
3859 "line" : 46,
3860 "column" : 8,
3861 "source_fragment" : "hdr.inner_ipv4.setInvalid()"
3862 }
3863 },
3864 {
3865 "op" : "remove_header",
3866 "parameters" : [
3867 {
3868 "type" : "header",
3869 "value" : "gtpu"
3870 }
3871 ],
3872 "source_info" : {
3873 "filename" : "include/control/spgw.p4",
3874 "line" : 47,
3875 "column" : 8,
3876 "source_fragment" : "hdr.gtpu.setInvalid()"
3877 }
3878 },
3879 {
3880 "op" : "remove_header",
3881 "parameters" : [
3882 {
3883 "type" : "header",
3884 "value" : "udp"
3885 }
3886 ],
3887 "source_info" : {
3888 "filename" : "include/control/spgw.p4",
3889 "line" : 72,
3890 "column" : 8,
3891 "source_fragment" : "hdr.udp.setInvalid()"
3892 }
3893 }
3894 ]
3895 },
3896 {
3897 "name" : "FabricIngress.spgw.load_iface",
3898 "id" : 37,
Robert MacDavidde12b982020-07-15 18:38:59 -07003899 "runtime_data" : [
3900 {
3901 "name" : "src_iface",
3902 "bitwidth" : 8
Robert MacDavidde12b982020-07-15 18:38:59 -07003903 }
3904 ],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003905 "primitives" : [
3906 {
3907 "op" : "assign",
3908 "parameters" : [
3909 {
3910 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08003911 "value" : ["scalars", "fabric_metadata_t._spgw_src_iface26"]
Robert MacDavidde12b982020-07-15 18:38:59 -07003912 },
3913 {
3914 "type" : "runtime_data",
3915 "value" : 0
3916 }
3917 ],
3918 "source_info" : {
3919 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08003920 "line" : 121,
Robert MacDavidde12b982020-07-15 18:38:59 -07003921 "column" : 33,
3922 "source_fragment" : "= src_iface; ..."
3923 }
3924 },
3925 {
3926 "op" : "assign",
3927 "parameters" : [
3928 {
3929 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08003930 "value" : ["scalars", "fabric_metadata_t._spgw_skip_spgw27"]
Robert MacDavidde12b982020-07-15 18:38:59 -07003931 },
3932 {
3933 "type" : "expression",
3934 "value" : {
3935 "type" : "expression",
3936 "value" : {
3937 "op" : "b2d",
3938 "left" : null,
3939 "right" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08003940 "type" : "bool",
3941 "value" : false
Robert MacDavidde12b982020-07-15 18:38:59 -07003942 }
3943 }
3944 }
3945 }
3946 ],
3947 "source_info" : {
3948 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08003949 "line" : 122,
Robert MacDavidde12b982020-07-15 18:38:59 -07003950 "column" : 33,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08003951 "source_fragment" : "= false; ..."
Robert MacDavidde12b982020-07-15 18:38:59 -07003952 }
3953 }
3954 ]
3955 },
3956 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08003957 "name" : "FabricIngress.spgw.iface_miss",
3958 "id" : 38,
3959 "runtime_data" : [],
3960 "primitives" : [
3961 {
3962 "op" : "assign",
3963 "parameters" : [
3964 {
3965 "type" : "field",
3966 "value" : ["scalars", "fabric_metadata_t._spgw_src_iface26"]
3967 },
3968 {
3969 "type" : "hexstr",
3970 "value" : "0x00"
3971 }
3972 ],
3973 "source_info" : {
3974 "filename" : "include/control/../define.p4",
3975 "line" : 108,
3976 "column" : 44,
3977 "source_fragment" : "8w0; ..."
3978 }
3979 },
3980 {
3981 "op" : "assign",
3982 "parameters" : [
3983 {
3984 "type" : "field",
3985 "value" : ["scalars", "fabric_metadata_t._spgw_skip_spgw27"]
3986 },
3987 {
3988 "type" : "expression",
3989 "value" : {
3990 "type" : "expression",
3991 "value" : {
3992 "op" : "b2d",
3993 "left" : null,
3994 "right" : {
3995 "type" : "bool",
3996 "value" : true
3997 }
3998 }
3999 }
4000 }
4001 ],
4002 "source_info" : {
4003 "filename" : "include/control/spgw.p4",
4004 "line" : 126,
4005 "column" : 33,
4006 "source_fragment" : "= true; ..."
4007 }
4008 }
4009 ]
4010 },
4011 {
4012 "name" : "FabricIngress.spgw.load_pdr",
4013 "id" : 39,
Robert MacDavidde12b982020-07-15 18:38:59 -07004014 "runtime_data" : [
4015 {
4016 "name" : "ctr_id",
4017 "bitwidth" : 32
4018 },
4019 {
4020 "name" : "far_id",
4021 "bitwidth" : 32
4022 },
4023 {
4024 "name" : "needs_gtpu_decap",
4025 "bitwidth" : 1
4026 }
4027 ],
4028 "primitives" : [
4029 {
4030 "op" : "assign",
4031 "parameters" : [
4032 {
4033 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004034 "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id24"]
Robert MacDavidde12b982020-07-15 18:38:59 -07004035 },
4036 {
4037 "type" : "runtime_data",
4038 "value" : 0
4039 }
4040 ],
4041 "source_info" : {
4042 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004043 "line" : 151,
Robert MacDavidde12b982020-07-15 18:38:59 -07004044 "column" : 30,
4045 "source_fragment" : "= ctr_id; ..."
4046 }
4047 },
4048 {
4049 "op" : "assign",
4050 "parameters" : [
4051 {
4052 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004053 "value" : ["scalars", "fabric_metadata_t._spgw_far_id25"]
Robert MacDavidde12b982020-07-15 18:38:59 -07004054 },
4055 {
4056 "type" : "runtime_data",
4057 "value" : 1
4058 }
4059 ],
4060 "source_info" : {
4061 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004062 "line" : 152,
Robert MacDavidde12b982020-07-15 18:38:59 -07004063 "column" : 30,
4064 "source_fragment" : "= far_id; ..."
4065 }
4066 },
4067 {
4068 "op" : "assign",
4069 "parameters" : [
4070 {
4071 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004072 "value" : ["scalars", "fabric_metadata_t._spgw_needs_gtpu_decap30"]
Robert MacDavidde12b982020-07-15 18:38:59 -07004073 },
4074 {
4075 "type" : "expression",
4076 "value" : {
4077 "type" : "expression",
4078 "value" : {
4079 "op" : "b2d",
4080 "left" : null,
4081 "right" : {
4082 "type" : "expression",
4083 "value" : {
4084 "op" : "!=",
4085 "left" : {
4086 "type" : "local",
4087 "value" : 2
4088 },
4089 "right" : {
4090 "type" : "hexstr",
4091 "value" : "0x00"
4092 }
4093 }
4094 }
4095 }
4096 }
4097 }
4098 ],
4099 "source_info" : {
4100 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004101 "line" : 153,
Robert MacDavidde12b982020-07-15 18:38:59 -07004102 "column" : 40,
4103 "source_fragment" : "= (bool)needs_gtpu_decap; ..."
4104 }
4105 }
4106 ]
4107 },
4108 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004109 "name" : "FabricIngress.spgw.load_pdr",
4110 "id" : 40,
Robert MacDavidde12b982020-07-15 18:38:59 -07004111 "runtime_data" : [
4112 {
4113 "name" : "ctr_id",
4114 "bitwidth" : 32
4115 },
4116 {
4117 "name" : "far_id",
4118 "bitwidth" : 32
4119 },
4120 {
4121 "name" : "needs_gtpu_decap",
4122 "bitwidth" : 1
4123 }
4124 ],
4125 "primitives" : [
4126 {
4127 "op" : "assign",
4128 "parameters" : [
4129 {
4130 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004131 "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id24"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004132 },
4133 {
Robert MacDavidde12b982020-07-15 18:38:59 -07004134 "type" : "runtime_data",
4135 "value" : 0
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004136 }
4137 ],
4138 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07004139 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004140 "line" : 151,
Robert MacDavidde12b982020-07-15 18:38:59 -07004141 "column" : 30,
4142 "source_fragment" : "= ctr_id; ..."
4143 }
4144 },
4145 {
4146 "op" : "assign",
4147 "parameters" : [
4148 {
4149 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004150 "value" : ["scalars", "fabric_metadata_t._spgw_far_id25"]
Robert MacDavidde12b982020-07-15 18:38:59 -07004151 },
4152 {
4153 "type" : "runtime_data",
4154 "value" : 1
4155 }
4156 ],
4157 "source_info" : {
4158 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004159 "line" : 152,
Robert MacDavidde12b982020-07-15 18:38:59 -07004160 "column" : 30,
4161 "source_fragment" : "= far_id; ..."
4162 }
4163 },
4164 {
4165 "op" : "assign",
4166 "parameters" : [
4167 {
4168 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004169 "value" : ["scalars", "fabric_metadata_t._spgw_needs_gtpu_decap30"]
Robert MacDavidde12b982020-07-15 18:38:59 -07004170 },
4171 {
4172 "type" : "expression",
4173 "value" : {
4174 "type" : "expression",
4175 "value" : {
4176 "op" : "b2d",
4177 "left" : null,
4178 "right" : {
4179 "type" : "expression",
4180 "value" : {
4181 "op" : "!=",
4182 "left" : {
4183 "type" : "local",
4184 "value" : 2
4185 },
4186 "right" : {
4187 "type" : "hexstr",
4188 "value" : "0x00"
4189 }
4190 }
4191 }
4192 }
4193 }
4194 }
4195 ],
4196 "source_info" : {
4197 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004198 "line" : 153,
Robert MacDavidde12b982020-07-15 18:38:59 -07004199 "column" : 40,
4200 "source_fragment" : "= (bool)needs_gtpu_decap; ..."
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004201 }
4202 }
4203 ]
4204 },
4205 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004206 "name" : "FabricIngress.spgw.load_normal_far",
4207 "id" : 41,
Robert MacDavidde12b982020-07-15 18:38:59 -07004208 "runtime_data" : [
4209 {
4210 "name" : "drop",
4211 "bitwidth" : 1
4212 },
4213 {
4214 "name" : "notify_cp",
4215 "bitwidth" : 1
4216 }
4217 ],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004218 "primitives" : [
4219 {
Robert MacDavidde12b982020-07-15 18:38:59 -07004220 "op" : "assign",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004221 "parameters" : [
4222 {
Robert MacDavidde12b982020-07-15 18:38:59 -07004223 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004224 "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
Robert MacDavidde12b982020-07-15 18:38:59 -07004225 },
4226 {
4227 "type" : "expression",
4228 "value" : {
4229 "type" : "expression",
4230 "value" : {
4231 "op" : "b2d",
4232 "left" : null,
4233 "right" : {
4234 "type" : "expression",
4235 "value" : {
4236 "op" : "!=",
4237 "left" : {
4238 "type" : "local",
4239 "value" : 0
4240 },
4241 "right" : {
4242 "type" : "hexstr",
4243 "value" : "0x00"
4244 }
4245 }
4246 }
4247 }
4248 }
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004249 }
4250 ],
4251 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07004252 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004253 "line" : 186,
4254 "column" : 34,
Robert MacDavidde12b982020-07-15 18:38:59 -07004255 "source_fragment" : "= (bool)drop; ..."
4256 }
4257 },
4258 {
4259 "op" : "assign",
4260 "parameters" : [
4261 {
4262 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004263 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
4264 },
4265 {
4266 "type" : "expression",
4267 "value" : {
4268 "type" : "expression",
4269 "value" : {
4270 "op" : "b2d",
4271 "left" : null,
4272 "right" : {
4273 "type" : "expression",
4274 "value" : {
4275 "op" : "!=",
4276 "left" : {
4277 "type" : "local",
4278 "value" : 0
4279 },
4280 "right" : {
4281 "type" : "hexstr",
4282 "value" : "0x00"
4283 }
4284 }
4285 }
4286 }
4287 }
4288 }
4289 ],
4290 "source_info" : {
4291 "filename" : "include/control/spgw.p4",
4292 "line" : 187,
4293 "column" : 28,
4294 "source_fragment" : "= (bool)drop; ..."
4295 }
4296 },
4297 {
4298 "op" : "assign",
4299 "parameters" : [
4300 {
4301 "type" : "field",
4302 "value" : ["scalars", "fabric_metadata_t._spgw_notify_spgwc28"]
Robert MacDavidde12b982020-07-15 18:38:59 -07004303 },
4304 {
4305 "type" : "expression",
4306 "value" : {
4307 "type" : "expression",
4308 "value" : {
4309 "op" : "b2d",
4310 "left" : null,
4311 "right" : {
4312 "type" : "expression",
4313 "value" : {
4314 "op" : "!=",
4315 "left" : {
4316 "type" : "local",
4317 "value" : 1
4318 },
4319 "right" : {
4320 "type" : "hexstr",
4321 "value" : "0x00"
4322 }
4323 }
4324 }
4325 }
4326 }
4327 }
4328 ],
4329 "source_info" : {
4330 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004331 "line" : 188,
Robert MacDavidde12b982020-07-15 18:38:59 -07004332 "column" : 36,
4333 "source_fragment" : "= (bool)notify_cp; ..."
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004334 }
4335 }
4336 ]
4337 },
4338 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004339 "name" : "FabricIngress.spgw.load_tunnel_far",
4340 "id" : 42,
Robert MacDavidde12b982020-07-15 18:38:59 -07004341 "runtime_data" : [
4342 {
4343 "name" : "drop",
4344 "bitwidth" : 1
4345 },
4346 {
4347 "name" : "notify_cp",
4348 "bitwidth" : 1
4349 },
4350 {
4351 "name" : "tunnel_src_port",
4352 "bitwidth" : 16
4353 },
4354 {
4355 "name" : "tunnel_src_addr",
4356 "bitwidth" : 32
4357 },
4358 {
4359 "name" : "tunnel_dst_addr",
4360 "bitwidth" : 32
4361 },
4362 {
4363 "name" : "teid",
4364 "bitwidth" : 32
4365 }
4366 ],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004367 "primitives" : [
4368 {
Robert MacDavidde12b982020-07-15 18:38:59 -07004369 "op" : "assign",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004370 "parameters" : [
4371 {
Robert MacDavidde12b982020-07-15 18:38:59 -07004372 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004373 "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004374 },
4375 {
Robert MacDavidde12b982020-07-15 18:38:59 -07004376 "type" : "expression",
4377 "value" : {
4378 "type" : "expression",
4379 "value" : {
4380 "op" : "b2d",
4381 "left" : null,
4382 "right" : {
4383 "type" : "expression",
4384 "value" : {
4385 "op" : "!=",
4386 "left" : {
4387 "type" : "local",
4388 "value" : 0
4389 },
4390 "right" : {
4391 "type" : "hexstr",
4392 "value" : "0x00"
4393 }
4394 }
4395 }
4396 }
4397 }
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004398 }
4399 ],
4400 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07004401 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004402 "line" : 197,
4403 "column" : 34,
Robert MacDavidde12b982020-07-15 18:38:59 -07004404 "source_fragment" : "= (bool)drop; ..."
4405 }
4406 },
4407 {
4408 "op" : "assign",
4409 "parameters" : [
4410 {
4411 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004412 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
4413 },
4414 {
4415 "type" : "expression",
4416 "value" : {
4417 "type" : "expression",
4418 "value" : {
4419 "op" : "b2d",
4420 "left" : null,
4421 "right" : {
4422 "type" : "expression",
4423 "value" : {
4424 "op" : "!=",
4425 "left" : {
4426 "type" : "local",
4427 "value" : 0
4428 },
4429 "right" : {
4430 "type" : "hexstr",
4431 "value" : "0x00"
4432 }
4433 }
4434 }
4435 }
4436 }
4437 }
4438 ],
4439 "source_info" : {
4440 "filename" : "include/control/spgw.p4",
4441 "line" : 198,
4442 "column" : 28,
4443 "source_fragment" : "= (bool)drop; ..."
4444 }
4445 },
4446 {
4447 "op" : "assign",
4448 "parameters" : [
4449 {
4450 "type" : "field",
4451 "value" : ["scalars", "fabric_metadata_t._spgw_notify_spgwc28"]
Robert MacDavidde12b982020-07-15 18:38:59 -07004452 },
4453 {
4454 "type" : "expression",
4455 "value" : {
4456 "type" : "expression",
4457 "value" : {
4458 "op" : "b2d",
4459 "left" : null,
4460 "right" : {
4461 "type" : "expression",
4462 "value" : {
4463 "op" : "!=",
4464 "left" : {
4465 "type" : "local",
4466 "value" : 1
4467 },
4468 "right" : {
4469 "type" : "hexstr",
4470 "value" : "0x00"
4471 }
4472 }
4473 }
4474 }
4475 }
4476 }
4477 ],
4478 "source_info" : {
4479 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004480 "line" : 199,
Robert MacDavidde12b982020-07-15 18:38:59 -07004481 "column" : 36,
4482 "source_fragment" : "= (bool)notify_cp; ..."
4483 }
4484 },
4485 {
4486 "op" : "assign",
4487 "parameters" : [
4488 {
4489 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004490 "value" : ["scalars", "fabric_metadata_t._spgw_needs_gtpu_encap29"]
Robert MacDavidde12b982020-07-15 18:38:59 -07004491 },
4492 {
4493 "type" : "expression",
4494 "value" : {
4495 "type" : "expression",
4496 "value" : {
4497 "op" : "b2d",
4498 "left" : null,
4499 "right" : {
4500 "type" : "bool",
4501 "value" : true
4502 }
4503 }
4504 }
4505 }
4506 ],
4507 "source_info" : {
4508 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004509 "line" : 201,
Robert MacDavidde12b982020-07-15 18:38:59 -07004510 "column" : 40,
4511 "source_fragment" : "= true; ..."
4512 }
4513 },
4514 {
4515 "op" : "assign",
4516 "parameters" : [
4517 {
4518 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004519 "value" : ["scalars", "fabric_metadata_t._spgw_teid20"]
Robert MacDavidde12b982020-07-15 18:38:59 -07004520 },
4521 {
4522 "type" : "runtime_data",
4523 "value" : 5
4524 }
4525 ],
4526 "source_info" : {
4527 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004528 "line" : 202,
Robert MacDavidde12b982020-07-15 18:38:59 -07004529 "column" : 28,
4530 "source_fragment" : "= teid; ..."
4531 }
4532 },
4533 {
4534 "op" : "assign",
4535 "parameters" : [
4536 {
4537 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004538 "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_src_port21"]
Robert MacDavidde12b982020-07-15 18:38:59 -07004539 },
4540 {
4541 "type" : "runtime_data",
4542 "value" : 2
4543 }
4544 ],
4545 "source_info" : {
4546 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004547 "line" : 203,
Robert MacDavidde12b982020-07-15 18:38:59 -07004548 "column" : 39,
4549 "source_fragment" : "= tunnel_src_port; ..."
4550 }
4551 },
4552 {
4553 "op" : "assign",
4554 "parameters" : [
4555 {
4556 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004557 "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_src_addr22"]
Robert MacDavidde12b982020-07-15 18:38:59 -07004558 },
4559 {
4560 "type" : "runtime_data",
4561 "value" : 3
4562 }
4563 ],
4564 "source_info" : {
4565 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004566 "line" : 204,
Robert MacDavidde12b982020-07-15 18:38:59 -07004567 "column" : 39,
4568 "source_fragment" : "= tunnel_src_addr; ..."
4569 }
4570 },
4571 {
4572 "op" : "assign",
4573 "parameters" : [
4574 {
4575 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004576 "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_dst_addr23"]
Robert MacDavidde12b982020-07-15 18:38:59 -07004577 },
4578 {
4579 "type" : "runtime_data",
4580 "value" : 4
4581 }
4582 ],
4583 "source_info" : {
4584 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004585 "line" : 205,
Robert MacDavidde12b982020-07-15 18:38:59 -07004586 "column" : 39,
4587 "source_fragment" : "= tunnel_dst_addr; ..."
4588 }
4589 },
4590 {
4591 "op" : "assign",
4592 "parameters" : [
4593 {
4594 "type" : "field",
4595 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
4596 },
4597 {
4598 "type" : "runtime_data",
4599 "value" : 3
4600 }
4601 ],
4602 "source_info" : {
4603 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004604 "line" : 207,
Robert MacDavidde12b982020-07-15 18:38:59 -07004605 "column" : 32,
4606 "source_fragment" : "= tunnel_src_addr; ..."
4607 }
4608 },
4609 {
4610 "op" : "assign",
4611 "parameters" : [
4612 {
4613 "type" : "field",
4614 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
4615 },
4616 {
4617 "type" : "runtime_data",
4618 "value" : 4
4619 }
4620 ],
4621 "source_info" : {
4622 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004623 "line" : 208,
Robert MacDavidde12b982020-07-15 18:38:59 -07004624 "column" : 32,
4625 "source_fragment" : "= tunnel_dst_addr; ..."
4626 }
4627 },
4628 {
4629 "op" : "assign",
4630 "parameters" : [
4631 {
4632 "type" : "field",
4633 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
4634 },
4635 {
4636 "type" : "runtime_data",
4637 "value" : 2
4638 }
4639 ],
4640 "source_info" : {
4641 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004642 "line" : 209,
Robert MacDavidde12b982020-07-15 18:38:59 -07004643 "column" : 27,
4644 "source_fragment" : "= tunnel_src_port; ..."
4645 }
4646 },
4647 {
4648 "op" : "assign",
4649 "parameters" : [
4650 {
4651 "type" : "field",
4652 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
4653 },
4654 {
4655 "type" : "hexstr",
4656 "value" : "0x0868"
4657 }
4658 ],
4659 "source_info" : {
4660 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004661 "line" : 210,
Robert MacDavidde12b982020-07-15 18:38:59 -07004662 "column" : 27,
4663 "source_fragment" : "= 2152; ..."
4664 }
4665 }
4666 ]
4667 },
4668 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004669 "name" : "FabricIngress.spgw.load_dbuf_far",
4670 "id" : 43,
4671 "runtime_data" : [
4672 {
4673 "name" : "drop",
4674 "bitwidth" : 1
4675 },
4676 {
4677 "name" : "notify_cp",
4678 "bitwidth" : 1
4679 },
4680 {
4681 "name" : "tunnel_src_port",
4682 "bitwidth" : 16
4683 },
4684 {
4685 "name" : "tunnel_src_addr",
4686 "bitwidth" : 32
4687 },
4688 {
4689 "name" : "tunnel_dst_addr",
4690 "bitwidth" : 32
4691 },
4692 {
4693 "name" : "teid",
4694 "bitwidth" : 32
4695 }
4696 ],
Robert MacDavidde12b982020-07-15 18:38:59 -07004697 "primitives" : [
4698 {
4699 "op" : "assign",
4700 "parameters" : [
4701 {
4702 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004703 "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
Robert MacDavidde12b982020-07-15 18:38:59 -07004704 },
4705 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004706 "type" : "expression",
4707 "value" : {
4708 "type" : "expression",
4709 "value" : {
4710 "op" : "b2d",
4711 "left" : null,
4712 "right" : {
4713 "type" : "expression",
4714 "value" : {
4715 "op" : "!=",
4716 "left" : {
4717 "type" : "local",
4718 "value" : 0
4719 },
4720 "right" : {
4721 "type" : "hexstr",
4722 "value" : "0x00"
4723 }
4724 }
4725 }
4726 }
4727 }
Robert MacDavidde12b982020-07-15 18:38:59 -07004728 }
4729 ],
4730 "source_info" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004731 "filename" : "include/control/spgw.p4",
4732 "line" : 197,
4733 "column" : 34,
4734 "source_fragment" : "= (bool)drop; ..."
Robert MacDavidde12b982020-07-15 18:38:59 -07004735 }
4736 },
4737 {
4738 "op" : "assign",
4739 "parameters" : [
4740 {
4741 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004742 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
Robert MacDavidde12b982020-07-15 18:38:59 -07004743 },
4744 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004745 "type" : "expression",
4746 "value" : {
4747 "type" : "expression",
4748 "value" : {
4749 "op" : "b2d",
4750 "left" : null,
4751 "right" : {
4752 "type" : "expression",
4753 "value" : {
4754 "op" : "!=",
4755 "left" : {
4756 "type" : "local",
4757 "value" : 0
4758 },
4759 "right" : {
4760 "type" : "hexstr",
4761 "value" : "0x00"
4762 }
4763 }
4764 }
4765 }
4766 }
Robert MacDavidde12b982020-07-15 18:38:59 -07004767 }
4768 ],
4769 "source_info" : {
4770 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004771 "line" : 198,
4772 "column" : 28,
4773 "source_fragment" : "= (bool)drop; ..."
Robert MacDavidde12b982020-07-15 18:38:59 -07004774 }
4775 },
4776 {
4777 "op" : "assign",
4778 "parameters" : [
4779 {
4780 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004781 "value" : ["scalars", "fabric_metadata_t._spgw_notify_spgwc28"]
Robert MacDavidde12b982020-07-15 18:38:59 -07004782 },
4783 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004784 "type" : "expression",
4785 "value" : {
4786 "type" : "expression",
4787 "value" : {
4788 "op" : "b2d",
4789 "left" : null,
4790 "right" : {
4791 "type" : "expression",
4792 "value" : {
4793 "op" : "!=",
4794 "left" : {
4795 "type" : "local",
4796 "value" : 1
4797 },
4798 "right" : {
4799 "type" : "hexstr",
4800 "value" : "0x00"
4801 }
4802 }
4803 }
4804 }
4805 }
Robert MacDavidde12b982020-07-15 18:38:59 -07004806 }
4807 ],
4808 "source_info" : {
4809 "filename" : "include/control/spgw.p4",
Robert MacDavid237d8742020-08-11 13:49:05 -04004810 "line" : 199,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004811 "column" : 36,
4812 "source_fragment" : "= (bool)notify_cp; ..."
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004813 }
4814 },
4815 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004816 "op" : "assign",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004817 "parameters" : [
4818 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004819 "type" : "field",
4820 "value" : ["scalars", "fabric_metadata_t._spgw_needs_gtpu_encap29"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004821 },
4822 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004823 "type" : "expression",
4824 "value" : {
4825 "type" : "expression",
4826 "value" : {
4827 "op" : "b2d",
4828 "left" : null,
4829 "right" : {
4830 "type" : "bool",
4831 "value" : true
4832 }
4833 }
4834 }
Robert MacDavidde12b982020-07-15 18:38:59 -07004835 }
4836 ],
4837 "source_info" : {
4838 "filename" : "include/control/spgw.p4",
Robert MacDavid237d8742020-08-11 13:49:05 -04004839 "line" : 201,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004840 "column" : 40,
4841 "source_fragment" : "= true; ..."
Robert MacDavidde12b982020-07-15 18:38:59 -07004842 }
4843 },
4844 {
4845 "op" : "assign",
4846 "parameters" : [
4847 {
4848 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004849 "value" : ["scalars", "fabric_metadata_t._spgw_teid20"]
Robert MacDavidde12b982020-07-15 18:38:59 -07004850 },
4851 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004852 "type" : "runtime_data",
4853 "value" : 5
Robert MacDavidde12b982020-07-15 18:38:59 -07004854 }
4855 ],
4856 "source_info" : {
4857 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004858 "line" : 202,
4859 "column" : 28,
4860 "source_fragment" : "= teid; ..."
Robert MacDavidde12b982020-07-15 18:38:59 -07004861 }
4862 },
4863 {
4864 "op" : "assign",
4865 "parameters" : [
4866 {
4867 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004868 "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_src_port21"]
Robert MacDavidde12b982020-07-15 18:38:59 -07004869 },
4870 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004871 "type" : "runtime_data",
4872 "value" : 2
Robert MacDavidde12b982020-07-15 18:38:59 -07004873 }
4874 ],
4875 "source_info" : {
4876 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004877 "line" : 203,
4878 "column" : 39,
4879 "source_fragment" : "= tunnel_src_port; ..."
Robert MacDavidde12b982020-07-15 18:38:59 -07004880 }
4881 },
4882 {
4883 "op" : "assign",
4884 "parameters" : [
4885 {
4886 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004887 "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_src_addr22"]
Robert MacDavidde12b982020-07-15 18:38:59 -07004888 },
4889 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004890 "type" : "runtime_data",
4891 "value" : 3
Robert MacDavidde12b982020-07-15 18:38:59 -07004892 }
4893 ],
4894 "source_info" : {
4895 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004896 "line" : 204,
4897 "column" : 39,
4898 "source_fragment" : "= tunnel_src_addr; ..."
Robert MacDavidde12b982020-07-15 18:38:59 -07004899 }
4900 },
4901 {
4902 "op" : "assign",
4903 "parameters" : [
4904 {
4905 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004906 "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_dst_addr23"]
Robert MacDavidde12b982020-07-15 18:38:59 -07004907 },
4908 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004909 "type" : "runtime_data",
4910 "value" : 4
Robert MacDavidde12b982020-07-15 18:38:59 -07004911 }
4912 ],
4913 "source_info" : {
4914 "filename" : "include/control/spgw.p4",
Robert MacDavid237d8742020-08-11 13:49:05 -04004915 "line" : 205,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004916 "column" : 39,
4917 "source_fragment" : "= tunnel_dst_addr; ..."
Robert MacDavidde12b982020-07-15 18:38:59 -07004918 }
4919 },
4920 {
4921 "op" : "assign",
4922 "parameters" : [
4923 {
4924 "type" : "field",
4925 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
4926 },
4927 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004928 "type" : "runtime_data",
4929 "value" : 3
Robert MacDavidde12b982020-07-15 18:38:59 -07004930 }
4931 ],
4932 "source_info" : {
4933 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004934 "line" : 207,
Robert MacDavidde12b982020-07-15 18:38:59 -07004935 "column" : 32,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004936 "source_fragment" : "= tunnel_src_addr; ..."
Robert MacDavidde12b982020-07-15 18:38:59 -07004937 }
4938 },
4939 {
4940 "op" : "assign",
4941 "parameters" : [
4942 {
4943 "type" : "field",
4944 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
4945 },
4946 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004947 "type" : "runtime_data",
4948 "value" : 4
Robert MacDavidde12b982020-07-15 18:38:59 -07004949 }
4950 ],
4951 "source_info" : {
4952 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004953 "line" : 208,
Robert MacDavidde12b982020-07-15 18:38:59 -07004954 "column" : 32,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004955 "source_fragment" : "= tunnel_dst_addr; ..."
Robert MacDavidde12b982020-07-15 18:38:59 -07004956 }
4957 },
4958 {
4959 "op" : "assign",
4960 "parameters" : [
4961 {
4962 "type" : "field",
4963 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
4964 },
4965 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004966 "type" : "runtime_data",
4967 "value" : 2
Robert MacDavidde12b982020-07-15 18:38:59 -07004968 }
4969 ],
4970 "source_info" : {
4971 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004972 "line" : 209,
Robert MacDavidde12b982020-07-15 18:38:59 -07004973 "column" : 27,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004974 "source_fragment" : "= tunnel_src_port; ..."
Robert MacDavidde12b982020-07-15 18:38:59 -07004975 }
4976 },
4977 {
4978 "op" : "assign",
4979 "parameters" : [
4980 {
4981 "type" : "field",
4982 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
4983 },
4984 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004985 "type" : "hexstr",
4986 "value" : "0x0868"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004987 }
4988 ],
4989 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07004990 "filename" : "include/control/spgw.p4",
Robert MacDavid237d8742020-08-11 13:49:05 -04004991 "line" : 210,
Robert MacDavidde12b982020-07-15 18:38:59 -07004992 "column" : 27,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08004993 "source_fragment" : "= 2152; ..."
Robert MacDavidde12b982020-07-15 18:38:59 -07004994 }
4995 },
4996 {
4997 "op" : "assign",
4998 "parameters" : [
4999 {
5000 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005001 "value" : ["scalars", "fabric_metadata_t._spgw_skip_egress_pdr_ctr31"]
Robert MacDavidde12b982020-07-15 18:38:59 -07005002 },
5003 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005004 "type" : "expression",
5005 "value" : {
5006 "type" : "expression",
5007 "value" : {
5008 "op" : "b2d",
5009 "left" : null,
5010 "right" : {
5011 "type" : "bool",
5012 "value" : true
5013 }
5014 }
5015 }
Robert MacDavidde12b982020-07-15 18:38:59 -07005016 }
5017 ],
5018 "source_info" : {
5019 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005020 "line" : 221,
5021 "column" : 43,
5022 "source_fragment" : "= true; ..."
Robert MacDavidde12b982020-07-15 18:38:59 -07005023 }
5024 }
5025 ]
5026 },
5027 {
5028 "name" : "act",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005029 "id" : 44,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005030 "runtime_data" : [],
5031 "primitives" : [
5032 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005033 "op" : "assign",
5034 "parameters" : [
5035 {
5036 "type" : "field",
5037 "value" : ["standard_metadata", "egress_spec"]
5038 },
5039 {
5040 "type" : "field",
5041 "value" : ["packet_out", "egress_port"]
5042 }
5043 ],
5044 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005045 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005046 "line" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005047 "column" : 12,
5048 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
5049 }
5050 },
5051 {
5052 "op" : "remove_header",
5053 "parameters" : [
5054 {
5055 "type" : "header",
5056 "value" : "packet_out"
5057 }
5058 ],
5059 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005060 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005061 "line" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005062 "column" : 12,
5063 "source_fragment" : "hdr.packet_out.setInvalid()"
5064 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005065 },
5066 {
5067 "op" : "assign",
5068 "parameters" : [
5069 {
5070 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005071 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out11"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005072 },
5073 {
5074 "type" : "expression",
5075 "value" : {
5076 "type" : "expression",
5077 "value" : {
5078 "op" : "b2d",
5079 "left" : null,
5080 "right" : {
5081 "type" : "bool",
5082 "value" : true
5083 }
5084 }
5085 }
5086 }
5087 ],
5088 "source_info" : {
5089 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005090 "line" : 27,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005091 "column" : 53,
5092 "source_fragment" : "= true; ..."
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005093 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005094 },
5095 {
5096 "op" : "exit",
5097 "parameters" : [],
5098 "source_info" : {
5099 "filename" : "include/control/packetio.p4",
5100 "line" : 29,
5101 "column" : 12,
5102 "source_fragment" : "exit"
5103 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005104 }
5105 ]
5106 },
5107 {
Robert MacDavidde12b982020-07-15 18:38:59 -07005108 "name" : "act_0",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005109 "id" : 45,
Robert MacDavidde12b982020-07-15 18:38:59 -07005110 "runtime_data" : [],
5111 "primitives" : [
5112 {
5113 "op" : "assign",
5114 "parameters" : [
5115 {
5116 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005117 "value" : ["scalars", "spgw_tmp"]
5118 },
5119 {
5120 "type" : "expression",
5121 "value" : {
5122 "type" : "expression",
5123 "value" : {
5124 "op" : "b2d",
5125 "left" : null,
5126 "right" : {
5127 "type" : "bool",
5128 "value" : true
5129 }
5130 }
5131 }
5132 }
5133 ]
5134 }
5135 ]
5136 },
5137 {
5138 "name" : "act_1",
5139 "id" : 46,
5140 "runtime_data" : [],
5141 "primitives" : [
5142 {
5143 "op" : "assign",
5144 "parameters" : [
5145 {
5146 "type" : "field",
5147 "value" : ["scalars", "spgw_tmp"]
Robert MacDavidde12b982020-07-15 18:38:59 -07005148 },
5149 {
5150 "type" : "expression",
5151 "value" : {
5152 "type" : "expression",
5153 "value" : {
5154 "op" : "b2d",
5155 "left" : null,
5156 "right" : {
5157 "type" : "bool",
5158 "value" : false
5159 }
5160 }
5161 }
5162 }
5163 ]
5164 }
5165 ]
5166 },
5167 {
Robert MacDavidde12b982020-07-15 18:38:59 -07005168 "name" : "act_2",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005169 "id" : 47,
Robert MacDavidde12b982020-07-15 18:38:59 -07005170 "runtime_data" : [],
5171 "primitives" : [
5172 {
5173 "op" : "count",
5174 "parameters" : [
5175 {
5176 "type" : "counter_array",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005177 "value" : "FabricIngress.spgw.pdr_counter"
Robert MacDavidde12b982020-07-15 18:38:59 -07005178 },
5179 {
5180 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005181 "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id24"]
Robert MacDavidde12b982020-07-15 18:38:59 -07005182 }
5183 ],
5184 "source_info" : {
5185 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005186 "line" : 256,
5187 "column" : 16,
Robert MacDavidde12b982020-07-15 18:38:59 -07005188 "source_fragment" : "pdr_counter.count(fabric_md.spgw.ctr_id)"
5189 }
5190 }
5191 ]
5192 },
5193 {
5194 "name" : "act_3",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005195 "id" : 48,
Robert MacDavidde12b982020-07-15 18:38:59 -07005196 "runtime_data" : [],
5197 "primitives" : [
5198 {
5199 "op" : "assign",
5200 "parameters" : [
5201 {
5202 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005203 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len19"]
Robert MacDavidde12b982020-07-15 18:38:59 -07005204 },
5205 {
5206 "type" : "field",
5207 "value" : ["ipv4", "total_len"]
5208 }
5209 ],
5210 "source_info" : {
5211 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005212 "line" : 273,
5213 "column" : 36,
Robert MacDavidde12b982020-07-15 18:38:59 -07005214 "source_fragment" : "= hdr.ipv4.total_len; ..."
5215 }
5216 }
5217 ]
5218 },
5219 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005220 "name" : "act_4",
5221 "id" : 49,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005222 "runtime_data" : [],
5223 "primitives" : [
5224 {
5225 "op" : "assign",
5226 "parameters" : [
5227 {
5228 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005229 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005230 },
5231 {
5232 "type" : "field",
5233 "value" : ["vlan_tag", "vlan_id"]
5234 }
5235 ],
5236 "source_info" : {
5237 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005238 "line" : 111,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005239 "column" : 36,
5240 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005241 }
5242 },
5243 {
5244 "op" : "assign",
5245 "parameters" : [
5246 {
5247 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005248 "value" : ["scalars", "fabric_metadata_t._vlan_pri2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005249 },
5250 {
5251 "type" : "field",
5252 "value" : ["vlan_tag", "pri"]
5253 }
5254 ],
5255 "source_info" : {
5256 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005257 "line" : 112,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005258 "column" : 37,
5259 "source_fragment" : "= hdr.vlan_tag.pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005260 }
5261 },
5262 {
5263 "op" : "assign",
5264 "parameters" : [
5265 {
5266 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005267 "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005268 },
5269 {
5270 "type" : "field",
5271 "value" : ["vlan_tag", "cfi"]
5272 }
5273 ],
5274 "source_info" : {
5275 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005276 "line" : 113,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005277 "column" : 37,
5278 "source_fragment" : "= hdr.vlan_tag.cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005279 }
5280 }
5281 ]
5282 },
5283 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005284 "name" : "act_5",
5285 "id" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005286 "runtime_data" : [],
5287 "primitives" : [
5288 {
5289 "op" : "assign",
5290 "parameters" : [
5291 {
5292 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005293 "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005294 },
5295 {
5296 "type" : "hexstr",
5297 "value" : "0x41"
5298 }
5299 ],
5300 "source_info" : {
5301 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005302 "line" : 127,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005303 "column" : 37,
5304 "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005305 }
5306 }
5307 ]
5308 },
5309 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005310 "name" : "act_6",
5311 "id" : 51,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005312 "runtime_data" : [],
5313 "primitives" : [
5314 {
5315 "op" : "assign",
5316 "parameters" : [
5317 {
5318 "type" : "field",
Robert MacDavidde12b982020-07-15 18:38:59 -07005319 "value" : ["scalars", "tmp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005320 },
5321 {
5322 "type" : "expression",
5323 "value" : {
5324 "type" : "expression",
5325 "value" : {
5326 "op" : "&",
5327 "left" : {
5328 "type" : "field",
5329 "value" : ["standard_metadata", "egress_spec"]
5330 },
5331 "right" : {
5332 "type" : "hexstr",
5333 "value" : "0xffffffff"
5334 }
5335 }
5336 }
5337 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005338 ],
5339 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005340 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005341 "line" : 31,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005342 "column" : 38,
5343 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
5344 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005345 },
5346 {
5347 "op" : "count",
5348 "parameters" : [
5349 {
5350 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005351 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005352 },
5353 {
5354 "type" : "field",
Robert MacDavidde12b982020-07-15 18:38:59 -07005355 "value" : ["scalars", "tmp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005356 }
5357 ],
5358 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005359 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005360 "line" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005361 "column" : 12,
5362 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
5363 }
5364 }
5365 ]
5366 },
5367 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005368 "name" : "act_7",
5369 "id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005370 "runtime_data" : [],
5371 "primitives" : [
5372 {
5373 "op" : "assign",
5374 "parameters" : [
5375 {
5376 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005377 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005378 },
5379 {
5380 "type" : "expression",
5381 "value" : {
5382 "type" : "expression",
5383 "value" : {
5384 "op" : "&",
5385 "left" : {
5386 "type" : "field",
5387 "value" : ["standard_metadata", "ingress_port"]
5388 },
5389 "right" : {
5390 "type" : "hexstr",
5391 "value" : "0xffffffff"
5392 }
5393 }
5394 }
5395 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005396 ],
5397 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005398 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005399 "line" : 34,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005400 "column" : 39,
5401 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
5402 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005403 },
5404 {
5405 "op" : "count",
5406 "parameters" : [
5407 {
5408 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005409 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005410 },
5411 {
5412 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005413 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005414 }
5415 ],
5416 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005417 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005418 "line" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005419 "column" : 12,
5420 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
5421 }
5422 }
5423 ]
5424 },
5425 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005426 "name" : "nop",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005427 "id" : 53,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005428 "runtime_data" : [],
Charles Chancd03f072018-08-31 17:46:37 -07005429 "primitives" : []
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005430 },
5431 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005432 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005433 "id" : 54,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005434 "runtime_data" : [],
5435 "primitives" : [
5436 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005437 "op" : "remove_header",
5438 "parameters" : [
5439 {
5440 "type" : "header",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005441 "value" : "mpls"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005442 }
5443 ],
5444 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005445 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005446 "line" : 270,
Yi Tseng47eac892018-07-11 02:17:04 +08005447 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005448 "source_fragment" : "hdr.mpls.setInvalid()"
Yi Tseng47eac892018-07-11 02:17:04 +08005449 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005450 },
Yi Tseng47eac892018-07-11 02:17:04 +08005451 {
5452 "op" : "assign",
5453 "parameters" : [
5454 {
5455 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005456 "value" : ["eth_type", "value"]
Yi Tseng47eac892018-07-11 02:17:04 +08005457 },
5458 {
5459 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005460 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005461 }
5462 ],
5463 "source_info" : {
5464 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005465 "line" : 272,
Daniele Moro5a2de712019-09-24 14:34:07 -07005466 "column" : 8,
5467 "source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005468 }
5469 }
5470 ]
5471 },
5472 {
5473 "name" : "FabricEgress.egress_next.set_mpls",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005474 "id" : 55,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005475 "runtime_data" : [],
5476 "primitives" : [
5477 {
5478 "op" : "add_header",
5479 "parameters" : [
5480 {
5481 "type" : "header",
5482 "value" : "mpls"
Yi Tseng47eac892018-07-11 02:17:04 +08005483 }
5484 ],
5485 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005486 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005487 "line" : 277,
Yi Tseng47eac892018-07-11 02:17:04 +08005488 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005489 "source_fragment" : "hdr.mpls.setValid()"
5490 }
5491 },
5492 {
5493 "op" : "assign",
5494 "parameters" : [
5495 {
5496 "type" : "field",
5497 "value" : ["mpls", "label"]
5498 },
5499 {
5500 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005501 "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005502 }
5503 ],
5504 "source_info" : {
5505 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005506 "line" : 278,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005507 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005508 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005509 }
5510 },
5511 {
5512 "op" : "assign",
5513 "parameters" : [
5514 {
5515 "type" : "field",
5516 "value" : ["mpls", "tc"]
5517 },
5518 {
5519 "type" : "hexstr",
5520 "value" : "0x00"
5521 }
5522 ],
5523 "source_info" : {
5524 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005525 "line" : 279,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005526 "column" : 8,
5527 "source_fragment" : "hdr.mpls.tc = 3w0"
5528 }
5529 },
5530 {
5531 "op" : "assign",
5532 "parameters" : [
5533 {
5534 "type" : "field",
5535 "value" : ["mpls", "bos"]
5536 },
5537 {
5538 "type" : "hexstr",
5539 "value" : "0x01"
5540 }
5541 ],
5542 "source_info" : {
5543 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005544 "line" : 280,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005545 "column" : 8,
5546 "source_fragment" : "hdr.mpls.bos = 1w1"
5547 }
5548 },
5549 {
5550 "op" : "assign",
5551 "parameters" : [
5552 {
5553 "type" : "field",
5554 "value" : ["mpls", "ttl"]
5555 },
5556 {
5557 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005558 "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005559 }
5560 ],
5561 "source_info" : {
5562 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005563 "line" : 281,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005564 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005565 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005566 }
5567 },
5568 {
5569 "op" : "assign",
5570 "parameters" : [
5571 {
5572 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005573 "value" : ["eth_type", "value"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005574 },
5575 {
5576 "type" : "hexstr",
5577 "value" : "0x8847"
5578 }
5579 ],
5580 "source_info" : {
5581 "filename" : "include/control/../define.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005582 "line" : 116,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005583 "column" : 31,
5584 "source_fragment" : "0x8847; ..."
5585 }
5586 }
5587 ]
5588 },
5589 {
5590 "name" : "FabricEgress.egress_next.push_vlan",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005591 "id" : 56,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005592 "runtime_data" : [],
5593 "primitives" : [
5594 {
5595 "op" : "add_header",
5596 "parameters" : [
5597 {
5598 "type" : "header",
5599 "value" : "vlan_tag"
5600 }
5601 ],
5602 "source_info" : {
5603 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005604 "line" : 289,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005605 "column" : 8,
5606 "source_fragment" : "hdr.vlan_tag.setValid()"
5607 }
5608 },
5609 {
5610 "op" : "assign",
5611 "parameters" : [
5612 {
5613 "type" : "field",
5614 "value" : ["vlan_tag", "cfi"]
5615 },
5616 {
5617 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005618 "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005619 }
5620 ],
5621 "source_info" : {
5622 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005623 "line" : 290,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005624 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005625 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005626 }
5627 },
5628 {
5629 "op" : "assign",
5630 "parameters" : [
5631 {
5632 "type" : "field",
5633 "value" : ["vlan_tag", "pri"]
5634 },
5635 {
5636 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005637 "value" : ["scalars", "fabric_metadata_t._vlan_pri2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005638 }
5639 ],
5640 "source_info" : {
5641 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005642 "line" : 291,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005643 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005644 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005645 }
5646 },
5647 {
5648 "op" : "assign",
5649 "parameters" : [
5650 {
5651 "type" : "field",
5652 "value" : ["vlan_tag", "eth_type"]
5653 },
5654 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005655 "type" : "hexstr",
5656 "value" : "0x8100"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005657 }
5658 ],
5659 "source_info" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005660 "filename" : "include/control/../define.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005661 "line" : 115,
Daniele Moro5a2de712019-09-24 14:34:07 -07005662 "column" : 31,
5663 "source_fragment" : "0x8100; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005664 }
5665 },
5666 {
5667 "op" : "assign",
5668 "parameters" : [
5669 {
5670 "type" : "field",
5671 "value" : ["vlan_tag", "vlan_id"]
5672 },
5673 {
5674 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005675 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005676 }
5677 ],
5678 "source_info" : {
5679 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005680 "line" : 293,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005681 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005682 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005683 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005684 }
5685 ]
5686 },
5687 {
5688 "name" : "FabricEgress.egress_next.pop_vlan",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005689 "id" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005690 "runtime_data" : [],
5691 "primitives" : [
5692 {
Yi Tseng47eac892018-07-11 02:17:04 +08005693 "op" : "remove_header",
5694 "parameters" : [
5695 {
5696 "type" : "header",
5697 "value" : "vlan_tag"
5698 }
5699 ],
5700 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005701 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005702 "line" : 316,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005703 "column" : 8,
5704 "source_fragment" : "hdr.vlan_tag.setInvalid()"
5705 }
5706 }
5707 ]
5708 },
5709 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005710 "name" : "FabricEgress.spgw.gtpu_encap",
5711 "id" : 58,
Robert MacDavidde12b982020-07-15 18:38:59 -07005712 "runtime_data" : [],
5713 "primitives" : [
5714 {
5715 "op" : "add_header",
5716 "parameters" : [
5717 {
5718 "type" : "header",
5719 "value" : "gtpu_ipv4"
5720 }
5721 ],
5722 "source_info" : {
5723 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005724 "line" : 291,
Robert MacDavidde12b982020-07-15 18:38:59 -07005725 "column" : 8,
5726 "source_fragment" : "hdr.gtpu_ipv4.setValid()"
5727 }
5728 },
5729 {
5730 "op" : "assign",
5731 "parameters" : [
5732 {
5733 "type" : "field",
5734 "value" : ["gtpu_ipv4", "version"]
5735 },
5736 {
5737 "type" : "hexstr",
5738 "value" : "0x04"
5739 }
5740 ],
5741 "source_info" : {
5742 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005743 "line" : 292,
Robert MacDavidde12b982020-07-15 18:38:59 -07005744 "column" : 8,
5745 "source_fragment" : "hdr.gtpu_ipv4.version = 4"
5746 }
5747 },
5748 {
5749 "op" : "assign",
5750 "parameters" : [
5751 {
5752 "type" : "field",
5753 "value" : ["gtpu_ipv4", "ihl"]
5754 },
5755 {
5756 "type" : "hexstr",
5757 "value" : "0x05"
5758 }
5759 ],
5760 "source_info" : {
5761 "filename" : "include/control/../define.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005762 "line" : 133,
Robert MacDavidde12b982020-07-15 18:38:59 -07005763 "column" : 28,
5764 "source_fragment" : "5; ..."
5765 }
5766 },
5767 {
5768 "op" : "assign",
5769 "parameters" : [
5770 {
5771 "type" : "field",
5772 "value" : ["gtpu_ipv4", "dscp"]
5773 },
5774 {
5775 "type" : "hexstr",
5776 "value" : "0x00"
5777 }
5778 ],
5779 "source_info" : {
5780 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005781 "line" : 294,
Robert MacDavidde12b982020-07-15 18:38:59 -07005782 "column" : 8,
5783 "source_fragment" : "hdr.gtpu_ipv4.dscp = 0"
5784 }
5785 },
5786 {
5787 "op" : "assign",
5788 "parameters" : [
5789 {
5790 "type" : "field",
5791 "value" : ["gtpu_ipv4", "ecn"]
5792 },
5793 {
5794 "type" : "hexstr",
5795 "value" : "0x00"
5796 }
5797 ],
5798 "source_info" : {
5799 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005800 "line" : 295,
Robert MacDavidde12b982020-07-15 18:38:59 -07005801 "column" : 8,
5802 "source_fragment" : "hdr.gtpu_ipv4.ecn = 0"
5803 }
5804 },
5805 {
5806 "op" : "assign",
5807 "parameters" : [
5808 {
5809 "type" : "field",
5810 "value" : ["gtpu_ipv4", "total_len"]
5811 },
5812 {
5813 "type" : "expression",
5814 "value" : {
5815 "type" : "expression",
5816 "value" : {
5817 "op" : "&",
5818 "left" : {
5819 "type" : "expression",
5820 "value" : {
5821 "op" : "+",
5822 "left" : {
5823 "type" : "field",
5824 "value" : ["ipv4", "total_len"]
5825 },
5826 "right" : {
5827 "type" : "hexstr",
5828 "value" : "0x0024"
5829 }
5830 }
5831 },
5832 "right" : {
5833 "type" : "hexstr",
5834 "value" : "0xffff"
5835 }
5836 }
5837 }
5838 }
5839 ],
5840 "source_info" : {
5841 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005842 "line" : 296,
Robert MacDavidde12b982020-07-15 18:38:59 -07005843 "column" : 8,
5844 "source_fragment" : "hdr.gtpu_ipv4.total_len = hdr.ipv4.total_len ..."
5845 }
5846 },
5847 {
5848 "op" : "assign",
5849 "parameters" : [
5850 {
5851 "type" : "field",
5852 "value" : ["gtpu_ipv4", "identification"]
5853 },
5854 {
5855 "type" : "hexstr",
5856 "value" : "0x1513"
5857 }
5858 ],
5859 "source_info" : {
5860 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005861 "line" : 298,
Robert MacDavidde12b982020-07-15 18:38:59 -07005862 "column" : 8,
5863 "source_fragment" : "hdr.gtpu_ipv4.identification = 0x1513"
5864 }
5865 },
5866 {
5867 "op" : "assign",
5868 "parameters" : [
5869 {
5870 "type" : "field",
5871 "value" : ["gtpu_ipv4", "flags"]
5872 },
5873 {
5874 "type" : "hexstr",
5875 "value" : "0x00"
5876 }
5877 ],
5878 "source_info" : {
5879 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005880 "line" : 299,
Robert MacDavidde12b982020-07-15 18:38:59 -07005881 "column" : 8,
5882 "source_fragment" : "hdr.gtpu_ipv4.flags = 0"
5883 }
5884 },
5885 {
5886 "op" : "assign",
5887 "parameters" : [
5888 {
5889 "type" : "field",
5890 "value" : ["gtpu_ipv4", "frag_offset"]
5891 },
5892 {
5893 "type" : "hexstr",
5894 "value" : "0x0000"
5895 }
5896 ],
5897 "source_info" : {
5898 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005899 "line" : 300,
Robert MacDavidde12b982020-07-15 18:38:59 -07005900 "column" : 8,
5901 "source_fragment" : "hdr.gtpu_ipv4.frag_offset = 0"
5902 }
5903 },
5904 {
5905 "op" : "assign",
5906 "parameters" : [
5907 {
5908 "type" : "field",
5909 "value" : ["gtpu_ipv4", "ttl"]
5910 },
5911 {
5912 "type" : "hexstr",
5913 "value" : "0x40"
5914 }
5915 ],
5916 "source_info" : {
5917 "filename" : "include/control/../define.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005918 "line" : 146,
Robert MacDavidde12b982020-07-15 18:38:59 -07005919 "column" : 32,
5920 "source_fragment" : "64; ..."
5921 }
5922 },
5923 {
5924 "op" : "assign",
5925 "parameters" : [
5926 {
5927 "type" : "field",
5928 "value" : ["gtpu_ipv4", "protocol"]
5929 },
5930 {
5931 "type" : "hexstr",
5932 "value" : "0x11"
5933 }
5934 ],
5935 "source_info" : {
5936 "filename" : "include/control/../define.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005937 "line" : 130,
Robert MacDavidde12b982020-07-15 18:38:59 -07005938 "column" : 25,
5939 "source_fragment" : "17; ..."
5940 }
5941 },
5942 {
5943 "op" : "assign",
5944 "parameters" : [
5945 {
5946 "type" : "field",
5947 "value" : ["gtpu_ipv4", "src_addr"]
5948 },
5949 {
5950 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005951 "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_src_addr22"]
Robert MacDavidde12b982020-07-15 18:38:59 -07005952 }
5953 ],
5954 "source_info" : {
5955 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005956 "line" : 303,
Robert MacDavidde12b982020-07-15 18:38:59 -07005957 "column" : 8,
5958 "source_fragment" : "hdr.gtpu_ipv4.src_addr = fabric_md.spgw.tunnel_src_addr; ..."
5959 }
5960 },
5961 {
5962 "op" : "assign",
5963 "parameters" : [
5964 {
5965 "type" : "field",
5966 "value" : ["gtpu_ipv4", "dst_addr"]
5967 },
5968 {
5969 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005970 "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_dst_addr23"]
Robert MacDavidde12b982020-07-15 18:38:59 -07005971 }
5972 ],
5973 "source_info" : {
5974 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005975 "line" : 304,
Robert MacDavidde12b982020-07-15 18:38:59 -07005976 "column" : 8,
5977 "source_fragment" : "hdr.gtpu_ipv4.dst_addr = fabric_md.spgw.tunnel_dst_addr; ..."
5978 }
5979 },
5980 {
5981 "op" : "assign",
5982 "parameters" : [
5983 {
5984 "type" : "field",
5985 "value" : ["gtpu_ipv4", "hdr_checksum"]
5986 },
5987 {
5988 "type" : "hexstr",
5989 "value" : "0x0000"
5990 }
5991 ],
5992 "source_info" : {
5993 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08005994 "line" : 305,
Robert MacDavidde12b982020-07-15 18:38:59 -07005995 "column" : 8,
5996 "source_fragment" : "hdr.gtpu_ipv4.hdr_checksum = 0"
5997 }
5998 },
5999 {
6000 "op" : "add_header",
6001 "parameters" : [
6002 {
6003 "type" : "header",
6004 "value" : "gtpu_udp"
6005 }
6006 ],
6007 "source_info" : {
6008 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006009 "line" : 307,
Robert MacDavidde12b982020-07-15 18:38:59 -07006010 "column" : 8,
6011 "source_fragment" : "hdr.gtpu_udp.setValid()"
6012 }
6013 },
6014 {
6015 "op" : "assign",
6016 "parameters" : [
6017 {
6018 "type" : "field",
6019 "value" : ["gtpu_udp", "sport"]
6020 },
6021 {
6022 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006023 "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_src_port21"]
Robert MacDavidde12b982020-07-15 18:38:59 -07006024 }
6025 ],
6026 "source_info" : {
6027 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006028 "line" : 308,
Robert MacDavidde12b982020-07-15 18:38:59 -07006029 "column" : 8,
6030 "source_fragment" : "hdr.gtpu_udp.sport = fabric_md.spgw.tunnel_src_port; ..."
6031 }
6032 },
6033 {
6034 "op" : "assign",
6035 "parameters" : [
6036 {
6037 "type" : "field",
6038 "value" : ["gtpu_udp", "dport"]
6039 },
6040 {
6041 "type" : "hexstr",
6042 "value" : "0x0868"
6043 }
6044 ],
6045 "source_info" : {
6046 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006047 "line" : 309,
Robert MacDavidde12b982020-07-15 18:38:59 -07006048 "column" : 8,
6049 "source_fragment" : "hdr.gtpu_udp.dport = 2152"
6050 }
6051 },
6052 {
6053 "op" : "assign",
6054 "parameters" : [
6055 {
6056 "type" : "field",
6057 "value" : ["gtpu_udp", "len"]
6058 },
6059 {
6060 "type" : "expression",
6061 "value" : {
6062 "type" : "expression",
6063 "value" : {
6064 "op" : "&",
6065 "left" : {
6066 "type" : "expression",
6067 "value" : {
6068 "op" : "+",
6069 "left" : {
6070 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006071 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len19"]
Robert MacDavidde12b982020-07-15 18:38:59 -07006072 },
6073 "right" : {
6074 "type" : "hexstr",
6075 "value" : "0x0010"
6076 }
6077 }
6078 },
6079 "right" : {
6080 "type" : "hexstr",
6081 "value" : "0xffff"
6082 }
6083 }
6084 }
6085 }
6086 ],
6087 "source_info" : {
6088 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006089 "line" : 310,
Robert MacDavidde12b982020-07-15 18:38:59 -07006090 "column" : 8,
6091 "source_fragment" : "hdr.gtpu_udp.len = fabric_md.spgw.ipv4_len ..."
6092 }
6093 },
6094 {
6095 "op" : "assign",
6096 "parameters" : [
6097 {
6098 "type" : "field",
6099 "value" : ["gtpu_udp", "checksum"]
6100 },
6101 {
6102 "type" : "hexstr",
6103 "value" : "0x0000"
6104 }
6105 ],
6106 "source_info" : {
6107 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006108 "line" : 312,
Robert MacDavidde12b982020-07-15 18:38:59 -07006109 "column" : 8,
6110 "source_fragment" : "hdr.gtpu_udp.checksum = 0"
6111 }
6112 },
6113 {
6114 "op" : "add_header",
6115 "parameters" : [
6116 {
6117 "type" : "header",
6118 "value" : "outer_gtpu"
6119 }
6120 ],
6121 "source_info" : {
6122 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006123 "line" : 315,
Robert MacDavidde12b982020-07-15 18:38:59 -07006124 "column" : 8,
6125 "source_fragment" : "hdr.outer_gtpu.setValid()"
6126 }
6127 },
6128 {
6129 "op" : "assign",
6130 "parameters" : [
6131 {
6132 "type" : "field",
6133 "value" : ["outer_gtpu", "version"]
6134 },
6135 {
6136 "type" : "hexstr",
6137 "value" : "0x01"
6138 }
6139 ],
6140 "source_info" : {
6141 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006142 "line" : 316,
Robert MacDavidde12b982020-07-15 18:38:59 -07006143 "column" : 8,
6144 "source_fragment" : "hdr.outer_gtpu.version = 0x01"
6145 }
6146 },
6147 {
6148 "op" : "assign",
6149 "parameters" : [
6150 {
6151 "type" : "field",
6152 "value" : ["outer_gtpu", "pt"]
6153 },
6154 {
6155 "type" : "hexstr",
6156 "value" : "0x01"
6157 }
6158 ],
6159 "source_info" : {
6160 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006161 "line" : 317,
Robert MacDavidde12b982020-07-15 18:38:59 -07006162 "column" : 8,
6163 "source_fragment" : "hdr.outer_gtpu.pt = 0x01"
6164 }
6165 },
6166 {
6167 "op" : "assign",
6168 "parameters" : [
6169 {
6170 "type" : "field",
6171 "value" : ["outer_gtpu", "spare"]
6172 },
6173 {
6174 "type" : "hexstr",
6175 "value" : "0x00"
6176 }
6177 ],
6178 "source_info" : {
6179 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006180 "line" : 318,
Robert MacDavidde12b982020-07-15 18:38:59 -07006181 "column" : 8,
6182 "source_fragment" : "hdr.outer_gtpu.spare = 0"
6183 }
6184 },
6185 {
6186 "op" : "assign",
6187 "parameters" : [
6188 {
6189 "type" : "field",
6190 "value" : ["outer_gtpu", "ex_flag"]
6191 },
6192 {
6193 "type" : "hexstr",
6194 "value" : "0x00"
6195 }
6196 ],
6197 "source_info" : {
6198 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006199 "line" : 319,
Robert MacDavidde12b982020-07-15 18:38:59 -07006200 "column" : 8,
6201 "source_fragment" : "hdr.outer_gtpu.ex_flag = 0"
6202 }
6203 },
6204 {
6205 "op" : "assign",
6206 "parameters" : [
6207 {
6208 "type" : "field",
6209 "value" : ["outer_gtpu", "seq_flag"]
6210 },
6211 {
6212 "type" : "hexstr",
6213 "value" : "0x00"
6214 }
6215 ],
6216 "source_info" : {
6217 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006218 "line" : 320,
Robert MacDavidde12b982020-07-15 18:38:59 -07006219 "column" : 8,
6220 "source_fragment" : "hdr.outer_gtpu.seq_flag = 0"
6221 }
6222 },
6223 {
6224 "op" : "assign",
6225 "parameters" : [
6226 {
6227 "type" : "field",
6228 "value" : ["outer_gtpu", "npdu_flag"]
6229 },
6230 {
6231 "type" : "hexstr",
6232 "value" : "0x00"
6233 }
6234 ],
6235 "source_info" : {
6236 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006237 "line" : 321,
Robert MacDavidde12b982020-07-15 18:38:59 -07006238 "column" : 8,
6239 "source_fragment" : "hdr.outer_gtpu.npdu_flag = 0"
6240 }
6241 },
6242 {
6243 "op" : "assign",
6244 "parameters" : [
6245 {
6246 "type" : "field",
6247 "value" : ["outer_gtpu", "msgtype"]
6248 },
6249 {
6250 "type" : "hexstr",
6251 "value" : "0xff"
6252 }
6253 ],
6254 "source_info" : {
6255 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006256 "line" : 322,
Robert MacDavidde12b982020-07-15 18:38:59 -07006257 "column" : 8,
6258 "source_fragment" : "hdr.outer_gtpu.msgtype = 0xff"
6259 }
6260 },
6261 {
6262 "op" : "assign",
6263 "parameters" : [
6264 {
6265 "type" : "field",
6266 "value" : ["outer_gtpu", "msglen"]
6267 },
6268 {
6269 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006270 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len19"]
Robert MacDavidde12b982020-07-15 18:38:59 -07006271 }
6272 ],
6273 "source_info" : {
6274 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006275 "line" : 323,
Robert MacDavidde12b982020-07-15 18:38:59 -07006276 "column" : 8,
6277 "source_fragment" : "hdr.outer_gtpu.msglen = fabric_md.spgw.ipv4_len; ..."
6278 }
6279 },
6280 {
6281 "op" : "assign",
6282 "parameters" : [
6283 {
6284 "type" : "field",
6285 "value" : ["outer_gtpu", "teid"]
6286 },
6287 {
6288 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006289 "value" : ["scalars", "fabric_metadata_t._spgw_teid20"]
Robert MacDavidde12b982020-07-15 18:38:59 -07006290 }
6291 ],
6292 "source_info" : {
6293 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006294 "line" : 324,
Robert MacDavidde12b982020-07-15 18:38:59 -07006295 "column" : 8,
6296 "source_fragment" : "hdr.outer_gtpu.teid = fabric_md.spgw.teid; ..."
6297 }
6298 }
6299 ]
6300 },
6301 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006302 "name" : "act_8",
6303 "id" : 59,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006304 "runtime_data" : [],
6305 "primitives" : [
6306 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006307 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006308 "parameters" : [],
6309 "source_info" : {
6310 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006311 "line" : 41,
6312 "column" : 12,
6313 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006314 }
6315 }
6316 ]
6317 },
6318 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006319 "name" : "act_9",
6320 "id" : 60,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006321 "runtime_data" : [],
6322 "primitives" : [
6323 {
6324 "op" : "add_header",
6325 "parameters" : [
6326 {
6327 "type" : "header",
6328 "value" : "packet_in"
6329 }
6330 ],
6331 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006332 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006333 "line" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006334 "column" : 12,
6335 "source_fragment" : "hdr.packet_in.setValid()"
6336 }
6337 },
6338 {
6339 "op" : "assign",
6340 "parameters" : [
6341 {
6342 "type" : "field",
6343 "value" : ["packet_in", "ingress_port"]
6344 },
6345 {
6346 "type" : "field",
6347 "value" : ["standard_metadata", "ingress_port"]
6348 }
6349 ],
6350 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006351 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006352 "line" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006353 "column" : 12,
6354 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
6355 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006356 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006357 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006358 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006359 "parameters" : [],
6360 "source_info" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006361 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006362 "line" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006363 "column" : 12,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006364 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006365 }
6366 }
6367 ]
6368 },
6369 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006370 "name" : "act_10",
6371 "id" : 61,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006372 "runtime_data" : [],
6373 "primitives" : [
6374 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006375 "op" : "mark_to_drop",
6376 "parameters" : [
6377 {
6378 "type" : "header",
6379 "value" : "standard_metadata"
6380 }
6381 ],
6382 "source_info" : {
6383 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006384 "line" : 337,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006385 "column" : 12,
6386 "source_fragment" : "mark_to_drop(standard_metadata)"
6387 }
6388 }
6389 ]
6390 },
6391 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006392 "name" : "act_11",
6393 "id" : 62,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006394 "runtime_data" : [],
6395 "primitives" : [
6396 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006397 "op" : "assign",
6398 "parameters" : [
6399 {
6400 "type" : "field",
6401 "value" : ["scalars", "egress_next_tmp"]
6402 },
6403 {
6404 "type" : "expression",
6405 "value" : {
6406 "type" : "expression",
6407 "value" : {
6408 "op" : "b2d",
6409 "left" : null,
6410 "right" : {
6411 "type" : "bool",
6412 "value" : true
6413 }
6414 }
6415 }
6416 }
6417 ]
6418 }
6419 ]
6420 },
6421 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006422 "name" : "act_12",
6423 "id" : 63,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006424 "runtime_data" : [],
6425 "primitives" : [
6426 {
6427 "op" : "assign",
6428 "parameters" : [
6429 {
6430 "type" : "field",
6431 "value" : ["scalars", "egress_next_tmp"]
6432 },
6433 {
6434 "type" : "expression",
6435 "value" : {
6436 "type" : "expression",
6437 "value" : {
6438 "op" : "b2d",
6439 "left" : null,
6440 "right" : {
6441 "type" : "bool",
6442 "value" : false
6443 }
6444 }
6445 }
6446 }
6447 ]
6448 }
6449 ]
6450 },
6451 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006452 "name" : "act_13",
6453 "id" : 64,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006454 "runtime_data" : [],
6455 "primitives" : [
6456 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006457 "op" : "mark_to_drop",
6458 "parameters" : [
6459 {
6460 "type" : "header",
6461 "value" : "standard_metadata"
6462 }
6463 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006464 "source_info" : {
6465 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006466 "line" : 370,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006467 "column" : 35,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006468 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006469 }
6470 }
6471 ]
6472 },
6473 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006474 "name" : "act_14",
6475 "id" : 65,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006476 "runtime_data" : [],
6477 "primitives" : [
6478 {
6479 "op" : "assign",
6480 "parameters" : [
6481 {
6482 "type" : "field",
6483 "value" : ["mpls", "ttl"]
6484 },
6485 {
6486 "type" : "expression",
6487 "value" : {
6488 "type" : "expression",
6489 "value" : {
6490 "op" : "&",
6491 "left" : {
6492 "type" : "expression",
6493 "value" : {
6494 "op" : "+",
6495 "left" : {
6496 "type" : "field",
6497 "value" : ["mpls", "ttl"]
6498 },
6499 "right" : {
6500 "type" : "hexstr",
6501 "value" : "0xff"
6502 }
6503 }
6504 },
6505 "right" : {
6506 "type" : "hexstr",
6507 "value" : "0xff"
6508 }
6509 }
6510 }
6511 }
6512 ],
6513 "source_info" : {
6514 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006515 "line" : 369,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006516 "column" : 12,
6517 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
6518 }
6519 }
6520 ]
6521 },
6522 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006523 "name" : "act_15",
6524 "id" : 66,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006525 "runtime_data" : [],
6526 "primitives" : [
6527 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006528 "op" : "mark_to_drop",
6529 "parameters" : [
6530 {
6531 "type" : "header",
6532 "value" : "standard_metadata"
6533 }
6534 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006535 "source_info" : {
6536 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006537 "line" : 374,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006538 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006539 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006540 }
6541 }
6542 ]
6543 },
6544 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006545 "name" : "act_16",
6546 "id" : 67,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006547 "runtime_data" : [],
6548 "primitives" : [
6549 {
6550 "op" : "assign",
6551 "parameters" : [
6552 {
6553 "type" : "field",
6554 "value" : ["ipv4", "ttl"]
6555 },
6556 {
6557 "type" : "expression",
6558 "value" : {
6559 "type" : "expression",
6560 "value" : {
6561 "op" : "&",
6562 "left" : {
6563 "type" : "expression",
6564 "value" : {
6565 "op" : "+",
6566 "left" : {
6567 "type" : "field",
6568 "value" : ["ipv4", "ttl"]
6569 },
6570 "right" : {
6571 "type" : "hexstr",
6572 "value" : "0xff"
6573 }
6574 }
6575 },
6576 "right" : {
6577 "type" : "hexstr",
6578 "value" : "0xff"
6579 }
6580 }
6581 }
6582 }
6583 ],
6584 "source_info" : {
6585 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006586 "line" : 373,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006587 "column" : 16,
6588 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
6589 }
6590 }
6591 ]
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006592 },
6593 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006594 "name" : "act_17",
6595 "id" : 68,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006596 "runtime_data" : [],
6597 "primitives" : [
6598 {
6599 "op" : "count",
6600 "parameters" : [
6601 {
6602 "type" : "counter_array",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006603 "value" : "FabricEgress.spgw.pdr_counter"
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006604 },
6605 {
6606 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006607 "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id24"]
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006608 }
6609 ],
6610 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07006611 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006612 "line" : 333,
6613 "column" : 16,
Robert MacDavidde12b982020-07-15 18:38:59 -07006614 "source_fragment" : "pdr_counter.count(fabric_md.spgw.ctr_id)"
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006615 }
6616 }
6617 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006618 }
6619 ],
6620 "pipelines" : [
6621 {
6622 "name" : "ingress",
6623 "id" : 0,
6624 "source_info" : {
6625 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006626 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006627 "column" : 8,
6628 "source_fragment" : "FabricIngress"
6629 },
Robert MacDavidde12b982020-07-15 18:38:59 -07006630 "init_table" : "node_2",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006631 "tables" : [
6632 {
6633 "name" : "tbl_act",
6634 "id" : 0,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006635 "source_info" : {
Carmelo Cascone3032b872019-04-13 01:23:54 -07006636 "filename" : "include/control/packetio.p4",
6637 "line" : 25,
6638 "column" : 42,
6639 "source_fragment" : "= hdr.packet_out.egress_port; ..."
6640 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006641 "key" : [],
6642 "match_type" : "exact",
6643 "type" : "simple",
6644 "max_size" : 1024,
6645 "with_counters" : false,
6646 "support_timeout" : false,
6647 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006648 "action_ids" : [44],
Robert MacDavidde12b982020-07-15 18:38:59 -07006649 "actions" : ["act"],
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006650 "base_default_next" : "FabricIngress.spgw.interfaces",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006651 "next_tables" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006652 "act" : "FabricIngress.spgw.interfaces"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006653 },
6654 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006655 "action_id" : 44,
Robert MacDavidde12b982020-07-15 18:38:59 -07006656 "action_const" : true,
6657 "action_data" : [],
6658 "action_entry_const" : true
6659 }
6660 },
6661 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006662 "name" : "FabricIngress.spgw.interfaces",
Robert MacDavidde12b982020-07-15 18:38:59 -07006663 "id" : 1,
Robert MacDavidde12b982020-07-15 18:38:59 -07006664 "source_info" : {
6665 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006666 "line" : 130,
Robert MacDavidde12b982020-07-15 18:38:59 -07006667 "column" : 10,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006668 "source_fragment" : "interfaces"
Robert MacDavidde12b982020-07-15 18:38:59 -07006669 },
6670 "key" : [
6671 {
6672 "match_type" : "lpm",
6673 "name" : "ipv4_dst_addr",
6674 "target" : ["ipv4", "dst_addr"],
6675 "mask" : null
6676 },
6677 {
6678 "match_type" : "exact",
6679 "name" : "gtpu_is_valid",
6680 "target" : ["gtpu", "$valid$"],
6681 "mask" : null
6682 }
6683 ],
6684 "match_type" : "lpm",
6685 "type" : "simple",
6686 "max_size" : 128,
6687 "with_counters" : false,
6688 "support_timeout" : false,
6689 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006690 "action_ids" : [37, 38],
6691 "actions" : ["FabricIngress.spgw.load_iface", "FabricIngress.spgw.iface_miss"],
6692 "base_default_next" : null,
Robert MacDavidde12b982020-07-15 18:38:59 -07006693 "next_tables" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006694 "__HIT__" : "tbl_act_0",
6695 "__MISS__" : "tbl_act_1"
Robert MacDavidde12b982020-07-15 18:38:59 -07006696 },
6697 "default_entry" : {
6698 "action_id" : 38,
6699 "action_const" : true,
6700 "action_data" : [],
6701 "action_entry_const" : true
6702 }
6703 },
6704 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006705 "name" : "tbl_act_0",
6706 "id" : 2,
Robert MacDavidde12b982020-07-15 18:38:59 -07006707 "key" : [],
6708 "match_type" : "exact",
6709 "type" : "simple",
6710 "max_size" : 1024,
6711 "with_counters" : false,
6712 "support_timeout" : false,
6713 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006714 "action_ids" : [45],
6715 "actions" : ["act_0"],
6716 "base_default_next" : "node_7",
Robert MacDavidde12b982020-07-15 18:38:59 -07006717 "next_tables" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006718 "act_0" : "node_7"
Robert MacDavidde12b982020-07-15 18:38:59 -07006719 },
6720 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006721 "action_id" : 45,
Robert MacDavidde12b982020-07-15 18:38:59 -07006722 "action_const" : true,
6723 "action_data" : [],
6724 "action_entry_const" : true
6725 }
6726 },
6727 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006728 "name" : "tbl_act_1",
6729 "id" : 3,
6730 "key" : [],
6731 "match_type" : "exact",
6732 "type" : "simple",
6733 "max_size" : 1024,
6734 "with_counters" : false,
6735 "support_timeout" : false,
6736 "direct_meters" : null,
6737 "action_ids" : [46],
6738 "actions" : ["act_1"],
6739 "base_default_next" : "node_7",
6740 "next_tables" : {
6741 "act_1" : "node_7"
6742 },
6743 "default_entry" : {
6744 "action_id" : 46,
6745 "action_const" : true,
6746 "action_data" : [],
6747 "action_entry_const" : true
6748 }
6749 },
6750 {
6751 "name" : "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_gtpu",
6752 "id" : 4,
Robert MacDavidde12b982020-07-15 18:38:59 -07006753 "source_info" : {
6754 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006755 "line" : 75,
Robert MacDavidde12b982020-07-15 18:38:59 -07006756 "column" : 10,
6757 "source_fragment" : "decap_gtpu"
6758 },
6759 "key" : [
6760 {
6761 "match_type" : "exact",
6762 "name" : "hdr.inner_tcp.$valid$",
6763 "target" : ["inner_tcp", "$valid$"],
6764 "mask" : null
6765 },
6766 {
6767 "match_type" : "exact",
6768 "name" : "hdr.inner_udp.$valid$",
6769 "target" : ["inner_udp", "$valid$"],
6770 "mask" : null
6771 },
6772 {
6773 "match_type" : "exact",
6774 "name" : "hdr.inner_icmp.$valid$",
6775 "target" : ["inner_icmp", "$valid$"],
6776 "mask" : null
6777 }
6778 ],
6779 "match_type" : "exact",
6780 "type" : "simple",
6781 "max_size" : 1024,
6782 "with_counters" : false,
6783 "support_timeout" : false,
6784 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006785 "action_ids" : [29, 30, 31, 32],
6786 "actions" : ["FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_tcp", "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_udp", "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_icmp", "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_unknown"],
6787 "base_default_next" : "node_10",
Robert MacDavidde12b982020-07-15 18:38:59 -07006788 "next_tables" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006789 "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_tcp" : "node_10",
6790 "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_udp" : "node_10",
6791 "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_icmp" : "node_10",
6792 "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_inner_unknown" : "node_10"
Robert MacDavidde12b982020-07-15 18:38:59 -07006793 },
6794 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006795 "action_id" : 32,
Robert MacDavidde12b982020-07-15 18:38:59 -07006796 "action_const" : true,
6797 "action_data" : [],
6798 "action_entry_const" : true
6799 },
6800 "entries" : [
6801 {
6802 "source_info" : {
6803 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006804 "line" : 89,
Robert MacDavidde12b982020-07-15 18:38:59 -07006805 "column" : 12,
6806 "source_fragment" : "(true, false, false) : decap_inner_tcp()"
6807 },
6808 "match_key" : [
6809 {
6810 "match_type" : "exact",
6811 "key" : "0x01"
6812 },
6813 {
6814 "match_type" : "exact",
6815 "key" : "0x00"
6816 },
6817 {
6818 "match_type" : "exact",
6819 "key" : "0x00"
6820 }
6821 ],
6822 "action_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006823 "action_id" : 29,
Robert MacDavidde12b982020-07-15 18:38:59 -07006824 "action_data" : []
6825 },
6826 "priority" : 1
6827 },
6828 {
6829 "source_info" : {
6830 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006831 "line" : 90,
Robert MacDavidde12b982020-07-15 18:38:59 -07006832 "column" : 12,
6833 "source_fragment" : "(false, true, false) : decap_inner_udp()"
6834 },
6835 "match_key" : [
6836 {
6837 "match_type" : "exact",
6838 "key" : "0x00"
6839 },
6840 {
6841 "match_type" : "exact",
6842 "key" : "0x01"
6843 },
6844 {
6845 "match_type" : "exact",
6846 "key" : "0x00"
6847 }
6848 ],
6849 "action_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006850 "action_id" : 30,
Robert MacDavidde12b982020-07-15 18:38:59 -07006851 "action_data" : []
6852 },
6853 "priority" : 2
6854 },
6855 {
6856 "source_info" : {
6857 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006858 "line" : 91,
Robert MacDavidde12b982020-07-15 18:38:59 -07006859 "column" : 12,
6860 "source_fragment" : "(false, false, true) : decap_inner_icmp()"
6861 },
6862 "match_key" : [
6863 {
6864 "match_type" : "exact",
6865 "key" : "0x00"
6866 },
6867 {
6868 "match_type" : "exact",
6869 "key" : "0x00"
6870 },
6871 {
6872 "match_type" : "exact",
6873 "key" : "0x01"
6874 }
6875 ],
6876 "action_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006877 "action_id" : 31,
Robert MacDavidde12b982020-07-15 18:38:59 -07006878 "action_data" : []
6879 },
6880 "priority" : 3
6881 }
6882 ]
6883 },
6884 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006885 "name" : "FabricIngress.spgw.uplink_pdrs",
6886 "id" : 5,
6887 "source_info" : {
6888 "filename" : "include/control/spgw.p4",
6889 "line" : 168,
6890 "column" : 10,
6891 "source_fragment" : "uplink_pdrs"
6892 },
6893 "key" : [
6894 {
6895 "match_type" : "exact",
6896 "name" : "tunnel_ipv4_dst",
6897 "target" : ["ipv4", "dst_addr"],
6898 "mask" : null
6899 },
6900 {
6901 "match_type" : "exact",
6902 "name" : "teid",
6903 "target" : ["gtpu", "teid"],
6904 "mask" : null
6905 }
6906 ],
6907 "match_type" : "exact",
6908 "type" : "simple",
6909 "max_size" : 1024,
6910 "with_counters" : false,
6911 "support_timeout" : false,
6912 "direct_meters" : null,
6913 "action_ids" : [40, 8],
6914 "actions" : ["FabricIngress.spgw.load_pdr", "NoAction"],
6915 "base_default_next" : "node_13",
6916 "next_tables" : {
6917 "FabricIngress.spgw.load_pdr" : "node_13",
6918 "NoAction" : "node_13"
6919 },
6920 "default_entry" : {
6921 "action_id" : 8,
6922 "action_const" : false,
6923 "action_data" : [],
6924 "action_entry_const" : false
6925 }
6926 },
6927 {
6928 "name" : "FabricIngress.spgw.downlink_pdrs",
6929 "id" : 6,
6930 "source_info" : {
6931 "filename" : "include/control/spgw.p4",
6932 "line" : 157,
6933 "column" : 10,
6934 "source_fragment" : "downlink_pdrs"
6935 },
6936 "key" : [
6937 {
6938 "match_type" : "exact",
6939 "name" : "ue_addr",
6940 "target" : ["ipv4", "dst_addr"],
6941 "mask" : null
6942 }
6943 ],
6944 "match_type" : "exact",
6945 "type" : "simple",
6946 "max_size" : 1024,
6947 "with_counters" : false,
6948 "support_timeout" : false,
6949 "direct_meters" : null,
6950 "action_ids" : [39, 7],
6951 "actions" : ["FabricIngress.spgw.load_pdr", "NoAction"],
6952 "base_default_next" : "node_13",
6953 "next_tables" : {
6954 "FabricIngress.spgw.load_pdr" : "node_13",
6955 "NoAction" : "node_13"
6956 },
6957 "default_entry" : {
6958 "action_id" : 7,
6959 "action_const" : false,
6960 "action_data" : [],
6961 "action_entry_const" : false
6962 }
6963 },
6964 {
6965 "name" : "tbl_act_2",
6966 "id" : 7,
6967 "source_info" : {
6968 "filename" : "include/control/spgw.p4",
6969 "line" : 256,
6970 "column" : 16,
6971 "source_fragment" : "pdr_counter.count(fabric_md.spgw.ctr_id)"
6972 },
6973 "key" : [],
6974 "match_type" : "exact",
6975 "type" : "simple",
6976 "max_size" : 1024,
6977 "with_counters" : false,
6978 "support_timeout" : false,
6979 "direct_meters" : null,
6980 "action_ids" : [47],
6981 "actions" : ["act_2"],
6982 "base_default_next" : "node_15",
6983 "next_tables" : {
6984 "act_2" : "node_15"
6985 },
6986 "default_entry" : {
6987 "action_id" : 47,
6988 "action_const" : true,
6989 "action_data" : [],
6990 "action_entry_const" : true
6991 }
6992 },
6993 {
6994 "name" : "FabricIngress.spgw.decap_gtpu.decap_gtpu",
Robert MacDavidde12b982020-07-15 18:38:59 -07006995 "id" : 8,
6996 "source_info" : {
6997 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08006998 "line" : 75,
Robert MacDavidde12b982020-07-15 18:38:59 -07006999 "column" : 10,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007000 "source_fragment" : "decap_gtpu"
7001 },
7002 "key" : [
7003 {
7004 "match_type" : "exact",
7005 "name" : "hdr.inner_tcp.$valid$",
7006 "target" : ["inner_tcp", "$valid$"],
7007 "mask" : null
7008 },
7009 {
7010 "match_type" : "exact",
7011 "name" : "hdr.inner_udp.$valid$",
7012 "target" : ["inner_udp", "$valid$"],
7013 "mask" : null
7014 },
7015 {
7016 "match_type" : "exact",
7017 "name" : "hdr.inner_icmp.$valid$",
7018 "target" : ["inner_icmp", "$valid$"],
7019 "mask" : null
7020 }
7021 ],
7022 "match_type" : "exact",
7023 "type" : "simple",
7024 "max_size" : 1024,
7025 "with_counters" : false,
7026 "support_timeout" : false,
7027 "direct_meters" : null,
7028 "action_ids" : [33, 34, 35, 36],
7029 "actions" : ["FabricIngress.spgw.decap_gtpu.decap_inner_tcp", "FabricIngress.spgw.decap_gtpu.decap_inner_udp", "FabricIngress.spgw.decap_gtpu.decap_inner_icmp", "FabricIngress.spgw.decap_gtpu.decap_inner_unknown"],
7030 "base_default_next" : "FabricIngress.spgw.fars",
7031 "next_tables" : {
7032 "FabricIngress.spgw.decap_gtpu.decap_inner_tcp" : "FabricIngress.spgw.fars",
7033 "FabricIngress.spgw.decap_gtpu.decap_inner_udp" : "FabricIngress.spgw.fars",
7034 "FabricIngress.spgw.decap_gtpu.decap_inner_icmp" : "FabricIngress.spgw.fars",
7035 "FabricIngress.spgw.decap_gtpu.decap_inner_unknown" : "FabricIngress.spgw.fars"
7036 },
7037 "default_entry" : {
7038 "action_id" : 36,
7039 "action_const" : true,
7040 "action_data" : [],
7041 "action_entry_const" : true
7042 },
7043 "entries" : [
7044 {
7045 "source_info" : {
7046 "filename" : "include/control/spgw.p4",
7047 "line" : 89,
7048 "column" : 12,
7049 "source_fragment" : "(true, false, false) : decap_inner_tcp()"
7050 },
7051 "match_key" : [
7052 {
7053 "match_type" : "exact",
7054 "key" : "0x01"
7055 },
7056 {
7057 "match_type" : "exact",
7058 "key" : "0x00"
7059 },
7060 {
7061 "match_type" : "exact",
7062 "key" : "0x00"
7063 }
7064 ],
7065 "action_entry" : {
7066 "action_id" : 33,
7067 "action_data" : []
7068 },
7069 "priority" : 1
7070 },
7071 {
7072 "source_info" : {
7073 "filename" : "include/control/spgw.p4",
7074 "line" : 90,
7075 "column" : 12,
7076 "source_fragment" : "(false, true, false) : decap_inner_udp()"
7077 },
7078 "match_key" : [
7079 {
7080 "match_type" : "exact",
7081 "key" : "0x00"
7082 },
7083 {
7084 "match_type" : "exact",
7085 "key" : "0x01"
7086 },
7087 {
7088 "match_type" : "exact",
7089 "key" : "0x00"
7090 }
7091 ],
7092 "action_entry" : {
7093 "action_id" : 34,
7094 "action_data" : []
7095 },
7096 "priority" : 2
7097 },
7098 {
7099 "source_info" : {
7100 "filename" : "include/control/spgw.p4",
7101 "line" : 91,
7102 "column" : 12,
7103 "source_fragment" : "(false, false, true) : decap_inner_icmp()"
7104 },
7105 "match_key" : [
7106 {
7107 "match_type" : "exact",
7108 "key" : "0x00"
7109 },
7110 {
7111 "match_type" : "exact",
7112 "key" : "0x00"
7113 },
7114 {
7115 "match_type" : "exact",
7116 "key" : "0x01"
7117 }
7118 ],
7119 "action_entry" : {
7120 "action_id" : 35,
7121 "action_data" : []
7122 },
7123 "priority" : 3
7124 }
7125 ]
7126 },
7127 {
7128 "name" : "FabricIngress.spgw.fars",
7129 "id" : 9,
7130 "source_info" : {
7131 "filename" : "include/control/spgw.p4",
7132 "line" : 224,
7133 "column" : 10,
7134 "source_fragment" : "fars"
Robert MacDavidde12b982020-07-15 18:38:59 -07007135 },
7136 "key" : [
7137 {
7138 "match_type" : "exact",
7139 "name" : "far_id",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007140 "target" : ["scalars", "fabric_metadata_t._spgw_far_id25"],
Robert MacDavidde12b982020-07-15 18:38:59 -07007141 "mask" : null
7142 }
7143 ],
7144 "match_type" : "exact",
7145 "type" : "simple",
7146 "max_size" : 2048,
7147 "with_counters" : false,
7148 "support_timeout" : false,
7149 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007150 "action_ids" : [41, 42, 43],
7151 "actions" : ["FabricIngress.spgw.load_normal_far", "FabricIngress.spgw.load_tunnel_far", "FabricIngress.spgw.load_dbuf_far"],
7152 "base_default_next" : "tbl_act_3",
Robert MacDavidde12b982020-07-15 18:38:59 -07007153 "next_tables" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007154 "FabricIngress.spgw.load_normal_far" : "tbl_act_3",
7155 "FabricIngress.spgw.load_tunnel_far" : "tbl_act_3",
7156 "FabricIngress.spgw.load_dbuf_far" : "tbl_act_3"
Robert MacDavidde12b982020-07-15 18:38:59 -07007157 },
7158 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007159 "action_id" : 41,
Robert MacDavidde12b982020-07-15 18:38:59 -07007160 "action_const" : true,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007161 "action_data" : ["0x1", "0x0"],
Robert MacDavidde12b982020-07-15 18:38:59 -07007162 "action_entry_const" : true
7163 }
7164 },
7165 {
7166 "name" : "tbl_act_3",
Robert MacDavidde12b982020-07-15 18:38:59 -07007167 "id" : 10,
7168 "source_info" : {
7169 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007170 "line" : 273,
7171 "column" : 36,
Robert MacDavidde12b982020-07-15 18:38:59 -07007172 "source_fragment" : "="
7173 },
7174 "key" : [],
7175 "match_type" : "exact",
7176 "type" : "simple",
7177 "max_size" : 1024,
7178 "with_counters" : false,
7179 "support_timeout" : false,
7180 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007181 "action_ids" : [48],
7182 "actions" : ["act_3"],
Robert MacDavidde12b982020-07-15 18:38:59 -07007183 "base_default_next" : "node_19",
7184 "next_tables" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007185 "act_3" : "node_19"
Robert MacDavidde12b982020-07-15 18:38:59 -07007186 },
7187 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007188 "action_id" : 48,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007189 "action_const" : true,
7190 "action_data" : [],
7191 "action_entry_const" : true
7192 }
7193 },
7194 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007195 "name" : "tbl_act_4",
Robert MacDavidde12b982020-07-15 18:38:59 -07007196 "id" : 11,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007197 "source_info" : {
7198 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007199 "line" : 111,
Daniele Moro7c3a0022019-07-12 13:38:34 -07007200 "column" : 36,
7201 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07007202 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007203 "key" : [],
7204 "match_type" : "exact",
7205 "type" : "simple",
7206 "max_size" : 1024,
7207 "with_counters" : false,
7208 "support_timeout" : false,
7209 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007210 "action_ids" : [49],
7211 "actions" : ["act_4"],
Robert MacDavidde12b982020-07-15 18:38:59 -07007212 "base_default_next" : "node_21",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007213 "next_tables" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007214 "act_4" : "node_21"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007215 },
7216 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007217 "action_id" : 49,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007218 "action_const" : true,
7219 "action_data" : [],
7220 "action_entry_const" : true
7221 }
7222 },
7223 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007224 "name" : "tbl_act_5",
Robert MacDavidde12b982020-07-15 18:38:59 -07007225 "id" : 12,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007226 "source_info" : {
7227 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007228 "line" : 127,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007229 "column" : 37,
7230 "source_fragment" : "="
7231 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007232 "key" : [],
7233 "match_type" : "exact",
7234 "type" : "simple",
7235 "max_size" : 1024,
7236 "with_counters" : false,
7237 "support_timeout" : false,
7238 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007239 "action_ids" : [50],
7240 "actions" : ["act_5"],
Daniele Moro5a2de712019-09-24 14:34:07 -07007241 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007242 "next_tables" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007243 "act_5" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007244 },
7245 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007246 "action_id" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007247 "action_const" : true,
7248 "action_data" : [],
7249 "action_entry_const" : true
7250 }
7251 },
7252 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07007253 "name" : "FabricIngress.filtering.ingress_port_vlan",
Robert MacDavidde12b982020-07-15 18:38:59 -07007254 "id" : 13,
Daniele Moro7c3a0022019-07-12 13:38:34 -07007255 "source_info" : {
7256 "filename" : "include/control/filtering.p4",
7257 "line" : 53,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007258 "column" : 10,
7259 "source_fragment" : "ingress_port_vlan"
7260 },
7261 "key" : [
7262 {
7263 "match_type" : "exact",
7264 "name" : "ig_port",
7265 "target" : ["standard_metadata", "ingress_port"],
7266 "mask" : null
7267 },
7268 {
7269 "match_type" : "exact",
7270 "name" : "vlan_is_valid",
7271 "target" : ["vlan_tag", "$valid$"],
7272 "mask" : null
7273 },
7274 {
7275 "match_type" : "ternary",
7276 "name" : "vlan_id",
7277 "target" : ["vlan_tag", "vlan_id"],
7278 "mask" : null
7279 }
7280 ],
7281 "match_type" : "ternary",
7282 "type" : "simple",
7283 "max_size" : 1024,
7284 "with_counters" : true,
7285 "support_timeout" : false,
7286 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007287 "action_ids" : [9, 10, 11],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007288 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
7289 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
7290 "next_tables" : {
7291 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
7292 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
7293 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
7294 },
7295 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007296 "action_id" : 9,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007297 "action_const" : true,
7298 "action_data" : [],
7299 "action_entry_const" : true
7300 }
7301 },
7302 {
7303 "name" : "FabricIngress.filtering.fwd_classifier",
Robert MacDavidde12b982020-07-15 18:38:59 -07007304 "id" : 14,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007305 "source_info" : {
7306 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007307 "line" : 92,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007308 "column" : 10,
7309 "source_fragment" : "fwd_classifier"
7310 },
7311 "key" : [
7312 {
7313 "match_type" : "exact",
7314 "name" : "ig_port",
7315 "target" : ["standard_metadata", "ingress_port"],
7316 "mask" : null
7317 },
7318 {
7319 "match_type" : "ternary",
7320 "name" : "eth_dst",
7321 "target" : ["ethernet", "dst_addr"],
7322 "mask" : null
7323 },
7324 {
Daniele Moro5a2de712019-09-24 14:34:07 -07007325 "match_type" : "ternary",
7326 "name" : "eth_type",
7327 "target" : ["eth_type", "value"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07007328 "mask" : null
7329 },
7330 {
7331 "match_type" : "exact",
Daniele Moro5a2de712019-09-24 14:34:07 -07007332 "name" : "ip_eth_type",
7333 "target" : ["scalars", "fabric_metadata_t._ip_eth_type0"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007334 "mask" : null
7335 }
7336 ],
7337 "match_type" : "ternary",
7338 "type" : "simple",
7339 "max_size" : 1024,
7340 "with_counters" : true,
7341 "support_timeout" : false,
7342 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007343 "action_ids" : [12],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007344 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Robert MacDavidde12b982020-07-15 18:38:59 -07007345 "base_default_next" : "node_25",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007346 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007347 "FabricIngress.filtering.set_forwarding_type" : "node_25"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007348 },
7349 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007350 "action_id" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007351 "action_const" : true,
7352 "action_data" : ["0x0"],
7353 "action_entry_const" : true
7354 }
7355 },
7356 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08007357 "name" : "FabricIngress.forwarding.bridging",
Robert MacDavidde12b982020-07-15 18:38:59 -07007358 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007359 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007360 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07007361 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007362 "column" : 10,
7363 "source_fragment" : "bridging"
7364 },
7365 "key" : [
7366 {
7367 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007368 "name" : "vlan_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07007369 "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007370 "mask" : null
7371 },
7372 {
7373 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007374 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007375 "target" : ["ethernet", "dst_addr"],
7376 "mask" : null
7377 }
7378 ],
7379 "match_type" : "ternary",
7380 "type" : "simple",
7381 "max_size" : 1024,
7382 "with_counters" : true,
7383 "support_timeout" : false,
7384 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007385 "action_ids" : [13, 0],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007386 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
7387 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007388 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007389 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.acl.acl",
7390 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007391 },
7392 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007393 "action_id" : 0,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007394 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007395 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007396 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007397 }
7398 },
7399 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08007400 "name" : "FabricIngress.forwarding.mpls",
Robert MacDavidde12b982020-07-15 18:38:59 -07007401 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007402 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007403 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07007404 "line" : 71,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007405 "column" : 10,
7406 "source_fragment" : "mpls"
7407 },
7408 "key" : [
7409 {
7410 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007411 "name" : "mpls_label",
Daniele Moro5a2de712019-09-24 14:34:07 -07007412 "target" : ["scalars", "fabric_metadata_t._mpls_label4"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007413 "mask" : null
7414 }
7415 ],
7416 "match_type" : "exact",
7417 "type" : "simple",
7418 "max_size" : 1024,
7419 "with_counters" : true,
7420 "support_timeout" : false,
7421 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007422 "action_ids" : [14, 1],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007423 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
7424 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007425 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007426 "FabricIngress.forwarding.pop_mpls_and_next" : "FabricIngress.acl.acl",
7427 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007428 },
7429 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007430 "action_id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007431 "action_const" : true,
7432 "action_data" : [],
7433 "action_entry_const" : true
7434 }
7435 },
7436 {
Charles Chan384aea22018-08-23 22:08:02 -07007437 "name" : "FabricIngress.forwarding.routing_v4",
Robert MacDavidde12b982020-07-15 18:38:59 -07007438 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007439 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007440 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07007441 "line" : 108,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007442 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07007443 "source_fragment" : "routing_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007444 },
7445 "key" : [
7446 {
7447 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007448 "name" : "ipv4_dst",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007449 "target" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007450 "mask" : null
7451 }
7452 ],
7453 "match_type" : "lpm",
7454 "type" : "simple",
7455 "max_size" : 1024,
Daniele Moro5a2de712019-09-24 14:34:07 -07007456 "with_counters" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007457 "support_timeout" : false,
7458 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007459 "action_ids" : [15, 16, 2],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007460 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
7461 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007462 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007463 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.acl.acl",
7464 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.acl.acl",
7465 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007466 },
7467 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007468 "action_id" : 2,
CyberHasHe9ba39c2019-10-11 05:59:12 +08007469 "action_const" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007470 "action_data" : [],
CyberHasHe9ba39c2019-10-11 05:59:12 +08007471 "action_entry_const" : false
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007472 }
7473 },
7474 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007475 "name" : "FabricIngress.acl.acl",
Robert MacDavidde12b982020-07-15 18:38:59 -07007476 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007477 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007478 "filename" : "include/control/acl.p4",
7479 "line" : 60,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007480 "column" : 10,
7481 "source_fragment" : "acl"
7482 },
7483 "key" : [
7484 {
7485 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007486 "name" : "ig_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007487 "target" : ["standard_metadata", "ingress_port"],
7488 "mask" : null
7489 },
7490 {
7491 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007492 "name" : "ip_proto",
Daniele Moro5a2de712019-09-24 14:34:07 -07007493 "target" : ["scalars", "fabric_metadata_t._ip_proto12"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007494 "mask" : null
7495 },
7496 {
7497 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007498 "name" : "l4_sport",
Daniele Moro5a2de712019-09-24 14:34:07 -07007499 "target" : ["scalars", "fabric_metadata_t._l4_sport13"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007500 "mask" : null
7501 },
7502 {
7503 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007504 "name" : "l4_dport",
Daniele Moro5a2de712019-09-24 14:34:07 -07007505 "target" : ["scalars", "fabric_metadata_t._l4_dport14"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007506 "mask" : null
7507 },
7508 {
7509 "match_type" : "ternary",
Daniele Moro0cecfe12019-12-13 17:24:33 -08007510 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007511 "target" : ["ethernet", "dst_addr"],
7512 "mask" : null
7513 },
7514 {
7515 "match_type" : "ternary",
Daniele Moro0cecfe12019-12-13 17:24:33 -08007516 "name" : "eth_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007517 "target" : ["ethernet", "src_addr"],
7518 "mask" : null
7519 },
7520 {
7521 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007522 "name" : "vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007523 "target" : ["vlan_tag", "vlan_id"],
7524 "mask" : null
7525 },
7526 {
7527 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007528 "name" : "eth_type",
Daniele Moro5a2de712019-09-24 14:34:07 -07007529 "target" : ["eth_type", "value"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08007530 "mask" : null
7531 },
7532 {
7533 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007534 "name" : "ipv4_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007535 "target" : ["ipv4", "src_addr"],
7536 "mask" : null
7537 },
7538 {
7539 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007540 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007541 "target" : ["ipv4", "dst_addr"],
7542 "mask" : null
7543 },
7544 {
7545 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007546 "name" : "icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007547 "target" : ["icmp", "icmp_type"],
7548 "mask" : null
7549 },
7550 {
7551 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007552 "name" : "icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007553 "target" : ["icmp", "icmp_code"],
7554 "mask" : null
7555 }
7556 ],
7557 "match_type" : "ternary",
7558 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07007559 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007560 "with_counters" : true,
7561 "support_timeout" : false,
7562 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007563 "action_ids" : [17, 18, 19, 20, 21],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07007564 "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 -07007565 "base_default_next" : "node_33",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007566 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007567 "FabricIngress.acl.set_next_id_acl" : "node_33",
7568 "FabricIngress.acl.punt_to_cpu" : "node_33",
7569 "FabricIngress.acl.set_clone_session_id" : "node_33",
7570 "FabricIngress.acl.drop" : "node_33",
7571 "FabricIngress.acl.nop_acl" : "node_33"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007572 },
7573 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007574 "action_id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007575 "action_const" : true,
7576 "action_data" : [],
7577 "action_entry_const" : true
7578 }
7579 },
7580 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007581 "name" : "FabricIngress.next.xconnect",
Robert MacDavidde12b982020-07-15 18:38:59 -07007582 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007583 "source_info" : {
7584 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007585 "line" : 119,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007586 "column" : 10,
7587 "source_fragment" : "xconnect"
7588 },
7589 "key" : [
7590 {
7591 "match_type" : "exact",
7592 "name" : "ig_port",
7593 "target" : ["standard_metadata", "ingress_port"],
7594 "mask" : null
7595 },
7596 {
7597 "match_type" : "exact",
7598 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07007599 "target" : ["scalars", "fabric_metadata_t._next_id9"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007600 "mask" : null
7601 }
7602 ],
7603 "match_type" : "exact",
7604 "type" : "simple",
7605 "max_size" : 1024,
7606 "with_counters" : true,
7607 "support_timeout" : false,
7608 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007609 "action_ids" : [23, 24, 4],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007610 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
7611 "base_default_next" : "FabricIngress.next.hashed",
7612 "next_tables" : {
7613 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
7614 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
7615 "nop" : "FabricIngress.next.hashed"
7616 },
7617 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007618 "action_id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007619 "action_const" : true,
7620 "action_data" : [],
7621 "action_entry_const" : true
7622 }
7623 },
7624 {
7625 "name" : "FabricIngress.next.hashed",
Robert MacDavidde12b982020-07-15 18:38:59 -07007626 "id" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007627 "source_info" : {
7628 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007629 "line" : 202,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007630 "column" : 10,
7631 "source_fragment" : "hashed"
7632 },
7633 "key" : [
7634 {
7635 "match_type" : "exact",
7636 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07007637 "target" : ["scalars", "fabric_metadata_t._next_id9"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007638 "mask" : null
7639 }
7640 ],
7641 "match_type" : "exact",
7642 "type" : "indirect_ws",
7643 "action_profile" : "FabricIngress.next.hashed_selector",
7644 "max_size" : 1024,
7645 "with_counters" : true,
7646 "support_timeout" : false,
7647 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007648 "action_ids" : [25, 26, 27, 5],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007649 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
7650 "base_default_next" : "FabricIngress.next.multicast",
7651 "next_tables" : {
7652 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
7653 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
7654 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
7655 "nop" : "FabricIngress.next.multicast"
7656 }
7657 },
7658 {
7659 "name" : "FabricIngress.next.multicast",
Robert MacDavidde12b982020-07-15 18:38:59 -07007660 "id" : 21,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007661 "source_info" : {
7662 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007663 "line" : 236,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007664 "column" : 10,
7665 "source_fragment" : "multicast"
7666 },
7667 "key" : [
7668 {
7669 "match_type" : "exact",
7670 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07007671 "target" : ["scalars", "fabric_metadata_t._next_id9"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007672 "mask" : null
7673 }
7674 ],
7675 "match_type" : "exact",
7676 "type" : "simple",
7677 "max_size" : 1024,
7678 "with_counters" : true,
7679 "support_timeout" : false,
7680 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007681 "action_ids" : [28, 6],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007682 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
7683 "base_default_next" : "FabricIngress.next.next_vlan",
7684 "next_tables" : {
7685 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
7686 "nop" : "FabricIngress.next.next_vlan"
7687 },
7688 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007689 "action_id" : 6,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007690 "action_const" : true,
7691 "action_data" : [],
7692 "action_entry_const" : true
7693 }
7694 },
7695 {
7696 "name" : "FabricIngress.next.next_vlan",
Robert MacDavidde12b982020-07-15 18:38:59 -07007697 "id" : 22,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007698 "source_info" : {
7699 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007700 "line" : 86,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007701 "column" : 10,
7702 "source_fragment" : "next_vlan"
7703 },
7704 "key" : [
7705 {
7706 "match_type" : "exact",
7707 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07007708 "target" : ["scalars", "fabric_metadata_t._next_id9"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007709 "mask" : null
7710 }
7711 ],
7712 "match_type" : "exact",
7713 "type" : "simple",
7714 "max_size" : 1024,
7715 "with_counters" : true,
7716 "support_timeout" : false,
7717 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007718 "action_ids" : [22, 3],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007719 "actions" : ["FabricIngress.next.set_vlan", "nop"],
Robert MacDavidde12b982020-07-15 18:38:59 -07007720 "base_default_next" : "node_38",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007721 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007722 "FabricIngress.next.set_vlan" : "node_38",
7723 "nop" : "node_38"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007724 },
7725 "default_entry" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007726 "action_id" : 3,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007727 "action_const" : true,
7728 "action_data" : [],
7729 "action_entry_const" : true
7730 }
7731 },
7732 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007733 "name" : "tbl_act_6",
Robert MacDavidde12b982020-07-15 18:38:59 -07007734 "id" : 23,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007735 "source_info" : {
7736 "filename" : "include/control/port_counter.p4",
7737 "line" : 31,
7738 "column" : 12,
7739 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
7740 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02007741 "key" : [],
7742 "match_type" : "exact",
7743 "type" : "simple",
7744 "max_size" : 1024,
7745 "with_counters" : false,
7746 "support_timeout" : false,
7747 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007748 "action_ids" : [51],
7749 "actions" : ["act_6"],
Robert MacDavidde12b982020-07-15 18:38:59 -07007750 "base_default_next" : "node_40",
Carmelo Casconea5400af2018-07-17 22:11:54 +02007751 "next_tables" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007752 "act_6" : "node_40"
Carmelo Casconea5400af2018-07-17 22:11:54 +02007753 },
7754 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007755 "action_id" : 51,
Carmelo Casconea5400af2018-07-17 22:11:54 +02007756 "action_const" : true,
7757 "action_data" : [],
7758 "action_entry_const" : true
7759 }
7760 },
7761 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007762 "name" : "tbl_act_7",
Robert MacDavidde12b982020-07-15 18:38:59 -07007763 "id" : 24,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007764 "source_info" : {
7765 "filename" : "include/control/port_counter.p4",
7766 "line" : 34,
7767 "column" : 12,
7768 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
7769 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007770 "key" : [],
7771 "match_type" : "exact",
7772 "type" : "simple",
7773 "max_size" : 1024,
7774 "with_counters" : false,
7775 "support_timeout" : false,
7776 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007777 "action_ids" : [52],
7778 "actions" : ["act_7"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02007779 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08007780 "next_tables" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007781 "act_7" : null
Carmelo Casconea5400af2018-07-17 22:11:54 +02007782 },
7783 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007784 "action_id" : 52,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007785 "action_const" : true,
7786 "action_data" : [],
7787 "action_entry_const" : true
7788 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007789 }
7790 ],
7791 "action_profiles" : [
7792 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007793 "name" : "FabricIngress.next.hashed_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007794 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07007795 "source_info" : {
7796 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007797 "line" : 183,
Carmelo Cascone70e816b2019-03-19 16:15:47 -07007798 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007799 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07007800 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07007801 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007802 "selector" : {
7803 "algo" : "crc16",
7804 "input" : [
7805 {
7806 "type" : "field",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007807 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007808 },
7809 {
7810 "type" : "field",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007811 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007812 },
7813 {
7814 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07007815 "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007816 },
7817 {
7818 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07007819 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007820 },
7821 {
7822 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07007823 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007824 }
7825 ]
7826 }
7827 }
7828 ],
7829 "conditionals" : [
7830 {
Robert MacDavidde12b982020-07-15 18:38:59 -07007831 "name" : "node_2",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007832 "id" : 0,
7833 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007834 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007835 "line" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007836 "column" : 12,
7837 "source_fragment" : "hdr.packet_out.isValid()"
7838 },
7839 "expression" : {
7840 "type" : "expression",
7841 "value" : {
7842 "op" : "d2b",
7843 "left" : null,
7844 "right" : {
7845 "type" : "field",
7846 "value" : ["packet_out", "$valid$"]
7847 }
7848 }
7849 },
Robert MacDavidde12b982020-07-15 18:38:59 -07007850 "true_next" : "tbl_act",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007851 "false_next" : "FabricIngress.spgw.interfaces"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007852 },
7853 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007854 "name" : "node_7",
Robert MacDavidde12b982020-07-15 18:38:59 -07007855 "id" : 1,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007856 "expression" : {
7857 "type" : "expression",
7858 "value" : {
7859 "op" : "d2b",
7860 "left" : null,
7861 "right" : {
7862 "type" : "field",
7863 "value" : ["scalars", "spgw_tmp"]
7864 }
7865 }
7866 },
7867 "true_next" : "node_8",
7868 "false_next" : "node_19"
7869 },
7870 {
7871 "name" : "node_8",
7872 "id" : 2,
Robert MacDavidde12b982020-07-15 18:38:59 -07007873 "source_info" : {
7874 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007875 "line" : 246,
7876 "column" : 16,
7877 "source_fragment" : "fabric_md.spgw.src_iface == SPGW_IFACE_FROM_DBUF"
Robert MacDavidde12b982020-07-15 18:38:59 -07007878 },
7879 "expression" : {
7880 "type" : "expression",
7881 "value" : {
7882 "op" : "==",
7883 "left" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007884 "type" : "field",
7885 "value" : ["scalars", "fabric_metadata_t._spgw_src_iface26"]
Robert MacDavidde12b982020-07-15 18:38:59 -07007886 },
7887 "right" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007888 "type" : "hexstr",
7889 "value" : "0x03"
Robert MacDavidde12b982020-07-15 18:38:59 -07007890 }
7891 }
7892 },
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007893 "true_next" : "FabricIngress.spgw.decap_gtpu_from_dbuf.decap_gtpu",
7894 "false_next" : "node_10"
Robert MacDavidde12b982020-07-15 18:38:59 -07007895 },
7896 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007897 "name" : "node_10",
Robert MacDavidde12b982020-07-15 18:38:59 -07007898 "id" : 3,
7899 "source_info" : {
7900 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007901 "line" : 250,
7902 "column" : 16,
Robert MacDavidde12b982020-07-15 18:38:59 -07007903 "source_fragment" : "hdr.gtpu.isValid()"
7904 },
7905 "expression" : {
7906 "type" : "expression",
7907 "value" : {
7908 "op" : "d2b",
7909 "left" : null,
7910 "right" : {
7911 "type" : "field",
7912 "value" : ["gtpu", "$valid$"]
7913 }
7914 }
7915 },
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007916 "true_next" : "FabricIngress.spgw.uplink_pdrs",
7917 "false_next" : "FabricIngress.spgw.downlink_pdrs"
Robert MacDavidde12b982020-07-15 18:38:59 -07007918 },
7919 {
7920 "name" : "node_13",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007921 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007922 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07007923 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007924 "line" : 255,
7925 "column" : 16,
7926 "source_fragment" : "fabric_md.spgw.src_iface != SPGW_IFACE_FROM_DBUF"
7927 },
7928 "expression" : {
7929 "type" : "expression",
7930 "value" : {
7931 "op" : "!=",
7932 "left" : {
7933 "type" : "field",
7934 "value" : ["scalars", "fabric_metadata_t._spgw_src_iface26"]
7935 },
7936 "right" : {
7937 "type" : "hexstr",
7938 "value" : "0x03"
7939 }
7940 }
7941 },
7942 "true_next" : "tbl_act_2",
7943 "false_next" : "node_15"
7944 },
7945 {
7946 "name" : "node_15",
7947 "id" : 5,
7948 "source_info" : {
7949 "filename" : "include/control/spgw.p4",
7950 "line" : 260,
7951 "column" : 16,
Robert MacDavidde12b982020-07-15 18:38:59 -07007952 "source_fragment" : "fabric_md.spgw.needs_gtpu_decap == true"
7953 },
7954 "expression" : {
7955 "type" : "expression",
7956 "value" : {
7957 "op" : "==",
7958 "left" : {
7959 "type" : "expression",
7960 "value" : {
7961 "op" : "d2b",
7962 "left" : null,
7963 "right" : {
7964 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007965 "value" : ["scalars", "fabric_metadata_t._spgw_needs_gtpu_decap30"]
Robert MacDavidde12b982020-07-15 18:38:59 -07007966 }
7967 }
7968 },
7969 "right" : {
7970 "type" : "bool",
7971 "value" : true
7972 }
7973 }
7974 },
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007975 "true_next" : "FabricIngress.spgw.decap_gtpu.decap_gtpu",
7976 "false_next" : "FabricIngress.spgw.fars"
Robert MacDavidde12b982020-07-15 18:38:59 -07007977 },
7978 {
7979 "name" : "node_19",
7980 "id" : 6,
7981 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007982 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007983 "line" : 110,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007984 "column" : 12,
7985 "source_fragment" : "hdr.vlan_tag.isValid()"
7986 },
7987 "expression" : {
7988 "type" : "expression",
7989 "value" : {
7990 "op" : "d2b",
7991 "left" : null,
7992 "right" : {
7993 "type" : "field",
7994 "value" : ["vlan_tag", "$valid$"]
7995 }
7996 }
7997 },
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08007998 "true_next" : "tbl_act_4",
Robert MacDavidde12b982020-07-15 18:38:59 -07007999 "false_next" : "node_21"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008000 },
8001 {
Robert MacDavidde12b982020-07-15 18:38:59 -07008002 "name" : "node_21",
8003 "id" : 7,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008004 "source_info" : {
8005 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07008006 "line" : 122,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008007 "column" : 12,
8008 "source_fragment" : "!hdr.mpls.isValid()"
8009 },
8010 "expression" : {
8011 "type" : "expression",
8012 "value" : {
8013 "op" : "not",
8014 "left" : null,
8015 "right" : {
8016 "type" : "expression",
8017 "value" : {
8018 "op" : "d2b",
8019 "left" : null,
8020 "right" : {
8021 "type" : "field",
8022 "value" : ["mpls", "$valid$"]
8023 }
8024 }
8025 }
8026 }
8027 },
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008028 "true_next" : "tbl_act_5",
Daniele Moro5a2de712019-09-24 14:34:07 -07008029 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008030 },
8031 {
Robert MacDavidde12b982020-07-15 18:38:59 -07008032 "name" : "node_25",
Daniele Moro5a2de712019-09-24 14:34:07 -07008033 "id" : 8,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04008034 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008035 "filename" : "fabric.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07008036 "line" : 69,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008037 "column" : 12,
8038 "source_fragment" : "fabric_metadata.skip_forwarding == false"
8039 },
8040 "expression" : {
8041 "type" : "expression",
8042 "value" : {
8043 "op" : "==",
8044 "left" : {
8045 "type" : "expression",
8046 "value" : {
8047 "op" : "d2b",
8048 "left" : null,
8049 "right" : {
8050 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07008051 "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008052 }
8053 }
8054 },
8055 "right" : {
8056 "type" : "bool",
8057 "value" : false
8058 }
8059 }
8060 },
Robert MacDavidde12b982020-07-15 18:38:59 -07008061 "true_next" : "node_26",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008062 "false_next" : "FabricIngress.acl.acl"
8063 },
8064 {
Robert MacDavidde12b982020-07-15 18:38:59 -07008065 "name" : "node_26",
8066 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008067 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02008068 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07008069 "line" : 150,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008070 "column" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008071 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
8072 },
8073 "expression" : {
8074 "type" : "expression",
8075 "value" : {
8076 "op" : "==",
8077 "left" : {
8078 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07008079 "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008080 },
8081 "right" : {
8082 "type" : "hexstr",
8083 "value" : "0x00"
8084 }
8085 }
8086 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08008087 "true_next" : "FabricIngress.forwarding.bridging",
Robert MacDavidde12b982020-07-15 18:38:59 -07008088 "false_next" : "node_28"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008089 },
8090 {
Robert MacDavidde12b982020-07-15 18:38:59 -07008091 "name" : "node_28",
8092 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008093 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02008094 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07008095 "line" : 151,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008096 "column" : 17,
8097 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
8098 },
8099 "expression" : {
8100 "type" : "expression",
8101 "value" : {
8102 "op" : "==",
8103 "left" : {
8104 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07008105 "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008106 },
8107 "right" : {
8108 "type" : "hexstr",
8109 "value" : "0x01"
8110 }
8111 }
8112 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08008113 "true_next" : "FabricIngress.forwarding.mpls",
Robert MacDavidde12b982020-07-15 18:38:59 -07008114 "false_next" : "node_30"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008115 },
8116 {
Robert MacDavidde12b982020-07-15 18:38:59 -07008117 "name" : "node_30",
8118 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008119 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02008120 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07008121 "line" : 152,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008122 "column" : 17,
8123 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
8124 },
8125 "expression" : {
8126 "type" : "expression",
8127 "value" : {
8128 "op" : "==",
8129 "left" : {
8130 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07008131 "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008132 },
8133 "right" : {
8134 "type" : "hexstr",
8135 "value" : "0x02"
8136 }
8137 }
8138 },
Charles Chan384aea22018-08-23 22:08:02 -07008139 "true_next" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008140 "false_next" : "FabricIngress.acl.acl"
8141 },
8142 {
Robert MacDavidde12b982020-07-15 18:38:59 -07008143 "name" : "node_33",
8144 "id" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008145 "source_info" : {
8146 "filename" : "fabric.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07008147 "line" : 73,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008148 "column" : 12,
8149 "source_fragment" : "fabric_metadata.skip_next == false"
8150 },
8151 "expression" : {
8152 "type" : "expression",
8153 "value" : {
8154 "op" : "==",
8155 "left" : {
8156 "type" : "expression",
8157 "value" : {
8158 "op" : "d2b",
8159 "left" : null,
8160 "right" : {
8161 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07008162 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008163 }
8164 }
8165 },
8166 "right" : {
8167 "type" : "bool",
8168 "value" : false
8169 }
8170 }
8171 },
8172 "false_next" : null,
8173 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08008174 },
8175 {
Robert MacDavidde12b982020-07-15 18:38:59 -07008176 "name" : "node_38",
8177 "id" : 13,
Yi Tseng27b9bc02018-04-12 14:52:40 +08008178 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02008179 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008180 "line" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008181 "column" : 12,
8182 "source_fragment" : "standard_metadata.egress_spec < 511"
8183 },
8184 "expression" : {
8185 "type" : "expression",
8186 "value" : {
8187 "op" : "<",
8188 "left" : {
8189 "type" : "field",
8190 "value" : ["standard_metadata", "egress_spec"]
8191 },
8192 "right" : {
8193 "type" : "hexstr",
8194 "value" : "0x01ff"
8195 }
8196 }
8197 },
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008198 "true_next" : "tbl_act_6",
Robert MacDavidde12b982020-07-15 18:38:59 -07008199 "false_next" : "node_40"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008200 },
8201 {
Robert MacDavidde12b982020-07-15 18:38:59 -07008202 "name" : "node_40",
8203 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008204 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02008205 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008206 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008207 "column" : 12,
8208 "source_fragment" : "standard_metadata.ingress_port < 511"
8209 },
8210 "expression" : {
8211 "type" : "expression",
8212 "value" : {
8213 "op" : "<",
8214 "left" : {
8215 "type" : "field",
8216 "value" : ["standard_metadata", "ingress_port"]
8217 },
8218 "right" : {
8219 "type" : "hexstr",
8220 "value" : "0x01ff"
8221 }
8222 }
8223 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008224 "false_next" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008225 "true_next" : "tbl_act_7"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008226 }
8227 ]
8228 },
8229 {
8230 "name" : "egress",
8231 "id" : 1,
8232 "source_info" : {
8233 "filename" : "fabric.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07008234 "line" : 91,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008235 "column" : 8,
8236 "source_fragment" : "FabricEgress"
8237 },
Robert MacDavidde12b982020-07-15 18:38:59 -07008238 "init_table" : "node_44",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008239 "tables" : [
8240 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008241 "name" : "tbl_act_8",
Robert MacDavidde12b982020-07-15 18:38:59 -07008242 "id" : 25,
Carmelo Cascone3032b872019-04-13 01:23:54 -07008243 "source_info" : {
8244 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07008245 "line" : 41,
8246 "column" : 12,
8247 "source_fragment" : "exit"
Carmelo Cascone3032b872019-04-13 01:23:54 -07008248 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02008249 "key" : [],
8250 "match_type" : "exact",
8251 "type" : "simple",
8252 "max_size" : 1024,
8253 "with_counters" : false,
8254 "support_timeout" : false,
8255 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008256 "action_ids" : [59],
8257 "actions" : ["act_8"],
Robert MacDavidde12b982020-07-15 18:38:59 -07008258 "base_default_next" : "node_46",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008259 "next_tables" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008260 "act_8" : "node_46"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008261 },
8262 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008263 "action_id" : 59,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008264 "action_const" : true,
8265 "action_data" : [],
8266 "action_entry_const" : true
8267 }
8268 },
8269 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008270 "name" : "tbl_act_9",
Robert MacDavidde12b982020-07-15 18:38:59 -07008271 "id" : 26,
Carmelo Cascone3032b872019-04-13 01:23:54 -07008272 "source_info" : {
8273 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07008274 "line" : 44,
8275 "column" : 12,
8276 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07008277 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008278 "key" : [],
8279 "match_type" : "exact",
8280 "type" : "simple",
8281 "max_size" : 1024,
8282 "with_counters" : false,
8283 "support_timeout" : false,
8284 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008285 "action_ids" : [60],
8286 "actions" : ["act_9"],
Robert MacDavidde12b982020-07-15 18:38:59 -07008287 "base_default_next" : "node_48",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008288 "next_tables" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008289 "act_9" : "node_48"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008290 },
8291 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008292 "action_id" : 60,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008293 "action_const" : true,
8294 "action_data" : [],
8295 "action_entry_const" : true
8296 }
8297 },
8298 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008299 "name" : "tbl_act_10",
Robert MacDavidde12b982020-07-15 18:38:59 -07008300 "id" : 27,
Carmelo Cascone3032b872019-04-13 01:23:54 -07008301 "source_info" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07008302 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07008303 "line" : 337,
Carmelo Cascone3032b872019-04-13 01:23:54 -07008304 "column" : 12,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07008305 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07008306 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008307 "key" : [],
8308 "match_type" : "exact",
8309 "type" : "simple",
8310 "max_size" : 1024,
8311 "with_counters" : false,
8312 "support_timeout" : false,
8313 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008314 "action_ids" : [61],
8315 "actions" : ["act_10"],
Robert MacDavidde12b982020-07-15 18:38:59 -07008316 "base_default_next" : "node_50",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008317 "next_tables" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008318 "act_10" : "node_50"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008319 },
8320 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008321 "action_id" : 61,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008322 "action_const" : true,
8323 "action_data" : [],
8324 "action_entry_const" : true
8325 }
8326 },
8327 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07008328 "name" : "tbl_egress_next_pop_mpls_if_present",
Robert MacDavidde12b982020-07-15 18:38:59 -07008329 "id" : 28,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07008330 "source_info" : {
8331 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07008332 "line" : 341,
Carmelo Cascone3032b872019-04-13 01:23:54 -07008333 "column" : 36,
8334 "source_fragment" : "pop_mpls_if_present()"
8335 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008336 "key" : [],
8337 "match_type" : "exact",
8338 "type" : "simple",
8339 "max_size" : 1024,
8340 "with_counters" : false,
8341 "support_timeout" : false,
8342 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008343 "action_ids" : [54],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008344 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
8345 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
8346 "next_tables" : {
8347 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
8348 },
8349 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008350 "action_id" : 54,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008351 "action_const" : true,
8352 "action_data" : [],
8353 "action_entry_const" : true
8354 }
8355 },
8356 {
8357 "name" : "tbl_egress_next_set_mpls",
Robert MacDavidde12b982020-07-15 18:38:59 -07008358 "id" : 29,
Carmelo Cascone3032b872019-04-13 01:23:54 -07008359 "source_info" : {
8360 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07008361 "line" : 343,
Carmelo Cascone3032b872019-04-13 01:23:54 -07008362 "column" : 12,
8363 "source_fragment" : "set_mpls()"
8364 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008365 "key" : [],
8366 "match_type" : "exact",
8367 "type" : "simple",
8368 "max_size" : 1024,
8369 "with_counters" : false,
8370 "support_timeout" : false,
8371 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008372 "action_ids" : [55],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008373 "actions" : ["FabricEgress.egress_next.set_mpls"],
8374 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
8375 "next_tables" : {
8376 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
8377 },
8378 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008379 "action_id" : 55,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008380 "action_const" : true,
8381 "action_data" : [],
8382 "action_entry_const" : true
8383 }
8384 },
8385 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08008386 "name" : "FabricEgress.egress_next.egress_vlan",
Robert MacDavidde12b982020-07-15 18:38:59 -07008387 "id" : 30,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08008388 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02008389 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07008390 "line" : 320,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08008391 "column" : 10,
8392 "source_fragment" : "egress_vlan"
8393 },
8394 "key" : [
8395 {
8396 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008397 "name" : "vlan_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07008398 "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08008399 "mask" : null
8400 },
8401 {
8402 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008403 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08008404 "target" : ["standard_metadata", "egress_port"],
8405 "mask" : null
8406 }
8407 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08008408 "match_type" : "exact",
8409 "type" : "simple",
8410 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08008411 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08008412 "support_timeout" : false,
8413 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008414 "action_ids" : [57, 53],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08008415 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008416 "base_default_next" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08008417 "next_tables" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008418 "__HIT__" : "tbl_act_11",
8419 "__MISS__" : "tbl_act_12"
Daniele Moro7c3a0022019-07-12 13:38:34 -07008420 },
8421 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008422 "action_id" : 53,
Daniele Moro7c3a0022019-07-12 13:38:34 -07008423 "action_const" : true,
8424 "action_data" : [],
8425 "action_entry_const" : true
8426 }
8427 },
8428 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008429 "name" : "tbl_act_11",
Robert MacDavidde12b982020-07-15 18:38:59 -07008430 "id" : 31,
Daniele Moro7c3a0022019-07-12 13:38:34 -07008431 "key" : [],
8432 "match_type" : "exact",
8433 "type" : "simple",
8434 "max_size" : 1024,
8435 "with_counters" : false,
8436 "support_timeout" : false,
8437 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008438 "action_ids" : [62],
8439 "actions" : ["act_11"],
Robert MacDavidde12b982020-07-15 18:38:59 -07008440 "base_default_next" : "node_57",
Daniele Moro7c3a0022019-07-12 13:38:34 -07008441 "next_tables" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008442 "act_11" : "node_57"
Daniele Moro7c3a0022019-07-12 13:38:34 -07008443 },
8444 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008445 "action_id" : 62,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04008446 "action_const" : true,
8447 "action_data" : [],
8448 "action_entry_const" : true
8449 }
8450 },
8451 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008452 "name" : "tbl_act_12",
Robert MacDavidde12b982020-07-15 18:38:59 -07008453 "id" : 32,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04008454 "key" : [],
8455 "match_type" : "exact",
8456 "type" : "simple",
8457 "max_size" : 1024,
8458 "with_counters" : false,
8459 "support_timeout" : false,
8460 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008461 "action_ids" : [63],
8462 "actions" : ["act_12"],
Robert MacDavidde12b982020-07-15 18:38:59 -07008463 "base_default_next" : "node_57",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04008464 "next_tables" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008465 "act_12" : "node_57"
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04008466 },
8467 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008468 "action_id" : 63,
Daniele Moro7c3a0022019-07-12 13:38:34 -07008469 "action_const" : true,
8470 "action_data" : [],
8471 "action_entry_const" : true
8472 }
8473 },
8474 {
8475 "name" : "tbl_egress_next_push_vlan",
Robert MacDavidde12b982020-07-15 18:38:59 -07008476 "id" : 33,
Carmelo Cascone3032b872019-04-13 01:23:54 -07008477 "source_info" : {
8478 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07008479 "line" : 360,
Daniele Moro7c3a0022019-07-12 13:38:34 -07008480 "column" : 20,
8481 "source_fragment" : "push_vlan()"
8482 },
8483 "key" : [],
8484 "match_type" : "exact",
8485 "type" : "simple",
8486 "max_size" : 1024,
8487 "with_counters" : false,
8488 "support_timeout" : false,
8489 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008490 "action_ids" : [56],
Daniele Moro7c3a0022019-07-12 13:38:34 -07008491 "actions" : ["FabricEgress.egress_next.push_vlan"],
Robert MacDavidde12b982020-07-15 18:38:59 -07008492 "base_default_next" : "node_60",
Daniele Moro7c3a0022019-07-12 13:38:34 -07008493 "next_tables" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07008494 "FabricEgress.egress_next.push_vlan" : "node_60"
Daniele Moro7c3a0022019-07-12 13:38:34 -07008495 },
8496 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008497 "action_id" : 56,
Daniele Moro7c3a0022019-07-12 13:38:34 -07008498 "action_const" : true,
8499 "action_data" : [],
8500 "action_entry_const" : true
8501 }
8502 },
8503 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008504 "name" : "tbl_act_13",
Robert MacDavidde12b982020-07-15 18:38:59 -07008505 "id" : 34,
Daniele Moro7c3a0022019-07-12 13:38:34 -07008506 "source_info" : {
8507 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07008508 "line" : 369,
Carmelo Cascone3032b872019-04-13 01:23:54 -07008509 "column" : 25,
8510 "source_fragment" : "="
8511 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008512 "key" : [],
8513 "match_type" : "exact",
8514 "type" : "simple",
8515 "max_size" : 1024,
8516 "with_counters" : false,
8517 "support_timeout" : false,
8518 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008519 "action_ids" : [65],
8520 "actions" : ["act_14"],
Robert MacDavidde12b982020-07-15 18:38:59 -07008521 "base_default_next" : "node_62",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07008522 "next_tables" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008523 "act_14" : "node_62"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07008524 },
8525 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008526 "action_id" : 65,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07008527 "action_const" : true,
8528 "action_data" : [],
8529 "action_entry_const" : true
8530 }
8531 },
8532 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008533 "name" : "tbl_act_14",
Robert MacDavidde12b982020-07-15 18:38:59 -07008534 "id" : 35,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07008535 "source_info" : {
8536 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07008537 "line" : 370,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07008538 "column" : 35,
8539 "source_fragment" : "mark_to_drop(standard_metadata)"
8540 },
8541 "key" : [],
8542 "match_type" : "exact",
8543 "type" : "simple",
8544 "max_size" : 1024,
8545 "with_counters" : false,
8546 "support_timeout" : false,
8547 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008548 "action_ids" : [64],
8549 "actions" : ["act_13"],
8550 "base_default_next" : "node_68",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008551 "next_tables" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008552 "act_13" : "node_68"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008553 },
8554 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008555 "action_id" : 64,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008556 "action_const" : true,
8557 "action_data" : [],
8558 "action_entry_const" : true
8559 }
8560 },
8561 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008562 "name" : "tbl_act_15",
Robert MacDavidde12b982020-07-15 18:38:59 -07008563 "id" : 36,
Carmelo Cascone3032b872019-04-13 01:23:54 -07008564 "source_info" : {
8565 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07008566 "line" : 373,
Carmelo Cascone3032b872019-04-13 01:23:54 -07008567 "column" : 29,
8568 "source_fragment" : "="
8569 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008570 "key" : [],
8571 "match_type" : "exact",
8572 "type" : "simple",
8573 "max_size" : 1024,
8574 "with_counters" : false,
8575 "support_timeout" : false,
8576 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008577 "action_ids" : [67],
8578 "actions" : ["act_16"],
Robert MacDavidde12b982020-07-15 18:38:59 -07008579 "base_default_next" : "node_66",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07008580 "next_tables" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008581 "act_16" : "node_66"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07008582 },
8583 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008584 "action_id" : 67,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07008585 "action_const" : true,
8586 "action_data" : [],
8587 "action_entry_const" : true
8588 }
8589 },
8590 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008591 "name" : "tbl_act_16",
Robert MacDavidde12b982020-07-15 18:38:59 -07008592 "id" : 37,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07008593 "source_info" : {
8594 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07008595 "line" : 374,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07008596 "column" : 39,
8597 "source_fragment" : "mark_to_drop(standard_metadata)"
8598 },
8599 "key" : [],
8600 "match_type" : "exact",
8601 "type" : "simple",
8602 "max_size" : 1024,
8603 "with_counters" : false,
8604 "support_timeout" : false,
8605 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008606 "action_ids" : [66],
8607 "actions" : ["act_15"],
8608 "base_default_next" : "node_68",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008609 "next_tables" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008610 "act_15" : "node_68"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008611 },
8612 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008613 "action_id" : 66,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04008614 "action_const" : true,
8615 "action_data" : [],
8616 "action_entry_const" : true
8617 }
8618 },
8619 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008620 "name" : "tbl_spgw_gtpu_encap",
Robert MacDavidde12b982020-07-15 18:38:59 -07008621 "id" : 38,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04008622 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07008623 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008624 "line" : 330,
8625 "column" : 16,
Carmelo Cascone3032b872019-04-13 01:23:54 -07008626 "source_fragment" : "gtpu_encap()"
8627 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008628 "key" : [],
8629 "match_type" : "exact",
8630 "type" : "simple",
8631 "max_size" : 1024,
8632 "with_counters" : false,
8633 "support_timeout" : false,
8634 "direct_meters" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008635 "action_ids" : [58],
8636 "actions" : ["FabricEgress.spgw.gtpu_encap"],
8637 "base_default_next" : "node_71",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008638 "next_tables" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008639 "FabricEgress.spgw.gtpu_encap" : "node_71"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008640 },
8641 "default_entry" : {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008642 "action_id" : 58,
8643 "action_const" : true,
8644 "action_data" : [],
8645 "action_entry_const" : true
8646 }
8647 },
8648 {
8649 "name" : "tbl_act_17",
8650 "id" : 39,
8651 "source_info" : {
8652 "filename" : "include/control/spgw.p4",
8653 "line" : 333,
8654 "column" : 16,
8655 "source_fragment" : "pdr_counter.count(fabric_md.spgw.ctr_id)"
8656 },
8657 "key" : [],
8658 "match_type" : "exact",
8659 "type" : "simple",
8660 "max_size" : 1024,
8661 "with_counters" : false,
8662 "support_timeout" : false,
8663 "direct_meters" : null,
8664 "action_ids" : [68],
8665 "actions" : ["act_17"],
8666 "base_default_next" : null,
8667 "next_tables" : {
8668 "act_17" : null
8669 },
8670 "default_entry" : {
8671 "action_id" : 68,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008672 "action_const" : true,
8673 "action_data" : [],
8674 "action_entry_const" : true
8675 }
8676 }
8677 ],
8678 "action_profiles" : [],
8679 "conditionals" : [
8680 {
Robert MacDavidde12b982020-07-15 18:38:59 -07008681 "name" : "node_44",
8682 "id" : 15,
Carmelo Casconea5400af2018-07-17 22:11:54 +02008683 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008684 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008685 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02008686 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008687 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02008688 },
8689 "expression" : {
8690 "type" : "expression",
8691 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008692 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02008693 "left" : {
8694 "type" : "expression",
8695 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008696 "op" : "d2b",
8697 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02008698 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008699 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07008700 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out11"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02008701 }
8702 }
8703 },
8704 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008705 "type" : "bool",
8706 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02008707 }
8708 }
8709 },
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008710 "true_next" : "tbl_act_8",
Robert MacDavidde12b982020-07-15 18:38:59 -07008711 "false_next" : "node_46"
Carmelo Casconea5400af2018-07-17 22:11:54 +02008712 },
8713 {
Robert MacDavidde12b982020-07-15 18:38:59 -07008714 "name" : "node_46",
8715 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008716 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02008717 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008718 "line" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008719 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08008720 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008721 },
8722 "expression" : {
8723 "type" : "expression",
8724 "value" : {
8725 "op" : "==",
8726 "left" : {
8727 "type" : "field",
8728 "value" : ["standard_metadata", "egress_port"]
8729 },
8730 "right" : {
8731 "type" : "hexstr",
8732 "value" : "0x00ff"
8733 }
8734 }
8735 },
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008736 "true_next" : "tbl_act_9",
Robert MacDavidde12b982020-07-15 18:38:59 -07008737 "false_next" : "node_48"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08008738 },
8739 {
Robert MacDavidde12b982020-07-15 18:38:59 -07008740 "name" : "node_48",
8741 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008742 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008743 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07008744 "line" : 335,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008745 "column" : 12,
8746 "source_fragment" : "fabric_metadata.is_multicast == true ..."
8747 },
8748 "expression" : {
8749 "type" : "expression",
8750 "value" : {
8751 "op" : "and",
8752 "left" : {
8753 "type" : "expression",
8754 "value" : {
8755 "op" : "==",
8756 "left" : {
8757 "type" : "expression",
8758 "value" : {
8759 "op" : "d2b",
8760 "left" : null,
8761 "right" : {
8762 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07008763 "value" : ["scalars", "fabric_metadata_t._is_multicast10"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008764 }
8765 }
8766 },
8767 "right" : {
8768 "type" : "bool",
8769 "value" : true
8770 }
8771 }
8772 },
8773 "right" : {
8774 "type" : "expression",
8775 "value" : {
8776 "op" : "==",
8777 "left" : {
8778 "type" : "field",
8779 "value" : ["standard_metadata", "ingress_port"]
8780 },
8781 "right" : {
8782 "type" : "field",
8783 "value" : ["standard_metadata", "egress_port"]
8784 }
8785 }
8786 }
8787 }
8788 },
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008789 "true_next" : "tbl_act_10",
Robert MacDavidde12b982020-07-15 18:38:59 -07008790 "false_next" : "node_50"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008791 },
8792 {
Robert MacDavidde12b982020-07-15 18:38:59 -07008793 "name" : "node_50",
8794 "id" : 18,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008795 "source_info" : {
8796 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07008797 "line" : 340,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008798 "column" : 12,
8799 "source_fragment" : "fabric_metadata.mpls_label == 0"
8800 },
8801 "expression" : {
8802 "type" : "expression",
8803 "value" : {
8804 "op" : "==",
8805 "left" : {
8806 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07008807 "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008808 },
8809 "right" : {
8810 "type" : "hexstr",
8811 "value" : "0x000000"
8812 }
8813 }
8814 },
Robert MacDavidde12b982020-07-15 18:38:59 -07008815 "true_next" : "node_51",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008816 "false_next" : "tbl_egress_next_set_mpls"
8817 },
8818 {
Robert MacDavidde12b982020-07-15 18:38:59 -07008819 "name" : "node_51",
8820 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008821 "source_info" : {
8822 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07008823 "line" : 341,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008824 "column" : 16,
8825 "source_fragment" : "hdr.mpls.isValid()"
8826 },
8827 "expression" : {
8828 "type" : "expression",
8829 "value" : {
8830 "op" : "d2b",
8831 "left" : null,
8832 "right" : {
8833 "type" : "field",
8834 "value" : ["mpls", "$valid$"]
8835 }
8836 }
8837 },
8838 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008839 "false_next" : "FabricEgress.egress_next.egress_vlan"
8840 },
8841 {
Robert MacDavidde12b982020-07-15 18:38:59 -07008842 "name" : "node_57",
8843 "id" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008844 "source_info" : {
8845 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07008846 "line" : 357,
Daniele Moro7c3a0022019-07-12 13:38:34 -07008847 "column" : 16,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008848 "source_fragment" : "!egress_vlan.apply().hit"
8849 },
8850 "expression" : {
8851 "type" : "expression",
8852 "value" : {
8853 "op" : "not",
8854 "left" : null,
8855 "right" : {
8856 "type" : "expression",
8857 "value" : {
8858 "op" : "d2b",
8859 "left" : null,
8860 "right" : {
8861 "type" : "field",
8862 "value" : ["scalars", "egress_next_tmp"]
8863 }
8864 }
8865 }
8866 }
8867 },
Robert MacDavidde12b982020-07-15 18:38:59 -07008868 "true_next" : "node_58",
8869 "false_next" : "node_60"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008870 },
8871 {
Robert MacDavidde12b982020-07-15 18:38:59 -07008872 "name" : "node_58",
8873 "id" : 21,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008874 "source_info" : {
8875 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07008876 "line" : 359,
Daniele Moro7c3a0022019-07-12 13:38:34 -07008877 "column" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008878 "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
8879 },
8880 "expression" : {
8881 "type" : "expression",
8882 "value" : {
8883 "op" : "!=",
8884 "left" : {
8885 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07008886 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008887 },
8888 "right" : {
8889 "type" : "hexstr",
8890 "value" : "0x0ffe"
8891 }
8892 }
8893 },
8894 "true_next" : "tbl_egress_next_push_vlan",
Robert MacDavidde12b982020-07-15 18:38:59 -07008895 "false_next" : "node_60"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008896 },
8897 {
Robert MacDavidde12b982020-07-15 18:38:59 -07008898 "name" : "node_60",
8899 "id" : 22,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07008900 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008901 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07008902 "line" : 368,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008903 "column" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008904 "source_fragment" : "hdr.mpls.isValid()"
8905 },
8906 "expression" : {
8907 "type" : "expression",
8908 "value" : {
8909 "op" : "d2b",
8910 "left" : null,
8911 "right" : {
8912 "type" : "field",
8913 "value" : ["mpls", "$valid$"]
8914 }
8915 }
8916 },
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008917 "true_next" : "tbl_act_13",
Robert MacDavidde12b982020-07-15 18:38:59 -07008918 "false_next" : "node_64"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008919 },
8920 {
Robert MacDavidde12b982020-07-15 18:38:59 -07008921 "name" : "node_62",
8922 "id" : 23,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008923 "source_info" : {
8924 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07008925 "line" : 370,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008926 "column" : 16,
8927 "source_fragment" : "hdr.mpls.ttl == 0"
8928 },
8929 "expression" : {
8930 "type" : "expression",
8931 "value" : {
8932 "op" : "==",
8933 "left" : {
8934 "type" : "field",
8935 "value" : ["mpls", "ttl"]
8936 },
8937 "right" : {
8938 "type" : "hexstr",
8939 "value" : "0x00"
8940 }
8941 }
8942 },
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008943 "true_next" : "tbl_act_14",
8944 "false_next" : "node_68"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008945 },
8946 {
Robert MacDavidde12b982020-07-15 18:38:59 -07008947 "name" : "node_64",
8948 "id" : 24,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008949 "source_info" : {
8950 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07008951 "line" : 372,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008952 "column" : 15,
Charles Chan74ad51e2020-09-12 19:05:42 -07008953 "source_fragment" : "hdr.ipv4.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008954 },
8955 "expression" : {
8956 "type" : "expression",
8957 "value" : {
Charles Chan74ad51e2020-09-12 19:05:42 -07008958 "op" : "and",
8959 "left" : {
8960 "type" : "expression",
8961 "value" : {
8962 "op" : "d2b",
8963 "left" : null,
8964 "right" : {
8965 "type" : "field",
8966 "value" : ["ipv4", "$valid$"]
8967 }
8968 }
8969 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008970 "right" : {
Charles Chan74ad51e2020-09-12 19:05:42 -07008971 "type" : "expression",
8972 "value" : {
8973 "op" : "!=",
8974 "left" : {
8975 "type" : "field",
8976 "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
8977 },
8978 "right" : {
8979 "type" : "hexstr",
8980 "value" : "0x00"
8981 }
8982 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008983 }
8984 }
8985 },
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08008986 "true_next" : "tbl_act_15",
8987 "false_next" : "node_68"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008988 },
8989 {
Robert MacDavidde12b982020-07-15 18:38:59 -07008990 "name" : "node_66",
8991 "id" : 25,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008992 "source_info" : {
8993 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07008994 "line" : 374,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08008995 "column" : 20,
8996 "source_fragment" : "hdr.ipv4.ttl == 0"
8997 },
8998 "expression" : {
8999 "type" : "expression",
9000 "value" : {
9001 "op" : "==",
9002 "left" : {
9003 "type" : "field",
9004 "value" : ["ipv4", "ttl"]
9005 },
9006 "right" : {
9007 "type" : "hexstr",
9008 "value" : "0x00"
9009 }
9010 }
9011 },
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08009012 "true_next" : "tbl_act_16",
9013 "false_next" : "node_68"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08009014 },
9015 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08009016 "name" : "node_68",
Robert MacDavidde12b982020-07-15 18:38:59 -07009017 "id" : 26,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08009018 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07009019 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08009020 "line" : 328,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08009021 "column" : 12,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08009022 "source_fragment" : "fabric_md.spgw.skip_spgw == false"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08009023 },
9024 "expression" : {
9025 "type" : "expression",
9026 "value" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07009027 "op" : "==",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08009028 "left" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04009029 "type" : "expression",
9030 "value" : {
9031 "op" : "d2b",
9032 "left" : null,
9033 "right" : {
9034 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08009035 "value" : ["scalars", "fabric_metadata_t._spgw_skip_spgw27"]
Robert MacDavidde12b982020-07-15 18:38:59 -07009036 }
9037 }
9038 },
9039 "right" : {
9040 "type" : "bool",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08009041 "value" : false
Robert MacDavidde12b982020-07-15 18:38:59 -07009042 }
9043 }
9044 },
9045 "false_next" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08009046 "true_next" : "node_69"
Robert MacDavidde12b982020-07-15 18:38:59 -07009047 },
9048 {
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08009049 "name" : "node_69",
9050 "id" : 27,
Robert MacDavidde12b982020-07-15 18:38:59 -07009051 "source_info" : {
9052 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08009053 "line" : 329,
9054 "column" : 16,
Robert MacDavidde12b982020-07-15 18:38:59 -07009055 "source_fragment" : "fabric_md.spgw.needs_gtpu_encap == true"
9056 },
9057 "expression" : {
9058 "type" : "expression",
9059 "value" : {
9060 "op" : "==",
9061 "left" : {
9062 "type" : "expression",
9063 "value" : {
9064 "op" : "d2b",
9065 "left" : null,
9066 "right" : {
9067 "type" : "field",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08009068 "value" : ["scalars", "fabric_metadata_t._spgw_needs_gtpu_encap29"]
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04009069 }
9070 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08009071 },
9072 "right" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04009073 "type" : "bool",
9074 "value" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08009075 }
9076 }
9077 },
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08009078 "true_next" : "tbl_spgw_gtpu_encap",
9079 "false_next" : "node_71"
9080 },
9081 {
9082 "name" : "node_71",
9083 "id" : 28,
9084 "source_info" : {
9085 "filename" : "include/control/spgw.p4",
9086 "line" : 332,
9087 "column" : 16,
9088 "source_fragment" : "fabric_md.spgw.skip_egress_pdr_ctr == false"
9089 },
9090 "expression" : {
9091 "type" : "expression",
9092 "value" : {
9093 "op" : "==",
9094 "left" : {
9095 "type" : "expression",
9096 "value" : {
9097 "op" : "d2b",
9098 "left" : null,
9099 "right" : {
9100 "type" : "field",
9101 "value" : ["scalars", "fabric_metadata_t._spgw_skip_egress_pdr_ctr31"]
9102 }
9103 }
9104 },
9105 "right" : {
9106 "type" : "bool",
9107 "value" : false
9108 }
9109 }
9110 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08009111 "false_next" : null,
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08009112 "true_next" : "tbl_act_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08009113 }
9114 ]
9115 }
9116 ],
9117 "checksums" : [
9118 {
9119 "name" : "cksum",
9120 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07009121 "source_info" : {
9122 "filename" : "include/checksum.p4",
9123 "line" : 28,
9124 "column" : 8,
9125 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
9126 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08009127 "target" : ["ipv4", "hdr_checksum"],
9128 "type" : "generic",
9129 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08009130 "verify" : false,
9131 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08009132 "if_cond" : {
9133 "type" : "expression",
9134 "value" : {
9135 "op" : "d2b",
9136 "left" : null,
9137 "right" : {
9138 "type" : "field",
9139 "value" : ["ipv4", "$valid$"]
9140 }
9141 }
9142 }
9143 },
9144 {
9145 "name" : "cksum_0",
9146 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07009147 "source_info" : {
Robert MacDavidde12b982020-07-15 18:38:59 -07009148 "filename" : "include/control/spgw.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08009149 "line" : 349,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07009150 "column" : 8,
9151 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
9152 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02009153 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08009154 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08009155 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08009156 "verify" : false,
9157 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08009158 "if_cond" : {
9159 "type" : "expression",
9160 "value" : {
9161 "op" : "d2b",
9162 "left" : null,
9163 "right" : {
9164 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02009165 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08009166 }
9167 }
9168 }
9169 },
9170 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08009171 "name" : "cksum_1",
9172 "id" : 2,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07009173 "source_info" : {
9174 "filename" : "include/checksum.p4",
9175 "line" : 57,
9176 "column" : 8,
9177 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
9178 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02009179 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08009180 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08009181 "calculation" : "calc_1",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08009182 "verify" : true,
9183 "update" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08009184 "if_cond" : {
9185 "type" : "expression",
9186 "value" : {
9187 "op" : "d2b",
9188 "left" : null,
9189 "right" : {
9190 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02009191 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08009192 }
9193 }
9194 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08009195 }
9196 ],
9197 "force_arith" : [],
9198 "extern_instances" : [],
9199 "field_aliases" : [
9200 [
9201 "queueing_metadata.enq_timestamp",
9202 ["standard_metadata", "enq_timestamp"]
9203 ],
9204 [
9205 "queueing_metadata.enq_qdepth",
9206 ["standard_metadata", "enq_qdepth"]
9207 ],
9208 [
9209 "queueing_metadata.deq_timedelta",
9210 ["standard_metadata", "deq_timedelta"]
9211 ],
9212 [
9213 "queueing_metadata.deq_qdepth",
9214 ["standard_metadata", "deq_qdepth"]
9215 ],
9216 [
9217 "intrinsic_metadata.ingress_global_timestamp",
9218 ["standard_metadata", "ingress_global_timestamp"]
9219 ],
9220 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08009221 "intrinsic_metadata.egress_global_timestamp",
9222 ["standard_metadata", "egress_global_timestamp"]
9223 ],
9224 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08009225 "intrinsic_metadata.lf_field_list",
9226 ["standard_metadata", "lf_field_list"]
9227 ],
9228 [
9229 "intrinsic_metadata.mcast_grp",
9230 ["standard_metadata", "mcast_grp"]
9231 ],
9232 [
9233 "intrinsic_metadata.resubmit_flag",
9234 ["standard_metadata", "resubmit_flag"]
9235 ],
9236 [
9237 "intrinsic_metadata.egress_rid",
9238 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08009239 ],
9240 [
9241 "intrinsic_metadata.recirculate_flag",
9242 ["standard_metadata", "recirculate_flag"]
Carmelo Cascone9b607da2019-05-08 14:03:01 -07009243 ],
9244 [
9245 "intrinsic_metadata.priority",
9246 ["standard_metadata", "priority"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08009247 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02009248 ],
9249 "program" : "fabric.p4",
9250 "__meta__" : {
9251 "version" : [2, 18],
9252 "compiler" : "https://github.com/p4lang/p4c"
9253 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08009254}