blob: e0a32852fa062faacc16416ee634374d27f75d02 [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" : [
Daniele Moro5a2de712019-09-24 14:34:07 -07007 ["tmp_2", 16, false],
8 ["tmp_3", 16, false],
9 ["tmp_4", 4, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080010 ["tmp", 8, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070011 ["tmp_0", 32, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080012 ["tmp_1", 32, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080013 ["spgw_ingress_tmp", 1, false],
14 ["spgw_ingress_tmp_0", 1, false],
15 ["spgw_normalizer_hasReturned", 1, false],
16 ["spgw_ingress_hasReturned", 1, false],
17 ["egress_next_tmp", 1, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070018 ["fabric_metadata_t._ip_eth_type0", 16, false],
19 ["fabric_metadata_t._vlan_id1", 12, false],
20 ["fabric_metadata_t._vlan_pri2", 3, false],
21 ["fabric_metadata_t._vlan_cfi3", 1, false],
22 ["fabric_metadata_t._mpls_label4", 20, false],
23 ["fabric_metadata_t._mpls_ttl5", 8, false],
24 ["fabric_metadata_t._skip_forwarding6", 1, false],
25 ["fabric_metadata_t._skip_next7", 1, false],
26 ["fabric_metadata_t._fwd_type8", 3, false],
27 ["fabric_metadata_t._next_id9", 32, false],
28 ["fabric_metadata_t._is_multicast10", 1, false],
29 ["fabric_metadata_t._is_controller_packet_out11", 1, false],
30 ["fabric_metadata_t._ip_proto12", 8, false],
31 ["fabric_metadata_t._l4_sport13", 16, false],
32 ["fabric_metadata_t._l4_dport14", 16, false],
Robert MacDavidbec6b6a2020-05-21 21:32:38 -040033 ["fabric_metadata_t._ipv4_src_addr15", 32, false],
34 ["fabric_metadata_t._ipv4_dst_addr16", 32, false],
35 ["fabric_metadata_t._spgw_direction17", 2, false],
36 ["fabric_metadata_t._spgw_ipv4_len18", 16, false],
37 ["fabric_metadata_t._spgw_teid19", 32, false],
38 ["fabric_metadata_t._spgw_tunnel_src_addr20", 32, false],
39 ["fabric_metadata_t._spgw_tunnel_dst_addr21", 32, false],
40 ["fabric_metadata_t._spgw_ctr_id22", 32, false],
41 ["fabric_metadata_t._spgw_far_id23", 32, false],
42 ["fabric_metadata_t._spgw_pdr_hit24", 1, false],
43 ["fabric_metadata_t._spgw_far_dropped25", 1, false],
44 ["fabric_metadata_t._spgw_notify_cp26", 1, false],
45 ["fabric_metadata_t._spgw_outer_header_creation27", 1, false],
46 ["_padding_0", 6, 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 {
268 "name" : "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 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700275 "name" : "inner_ipv4",
Daniele Moro5a2de712019-09-24 14:34:07 -0700276 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800277 "header_type" : "ipv4_t",
278 "metadata" : false,
279 "pi_omit" : true
280 },
281 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700282 "name" : "inner_udp",
Daniele Moro5a2de712019-09-24 14:34:07 -0700283 "id" : 11,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700284 "header_type" : "udp_t",
285 "metadata" : false,
286 "pi_omit" : true
287 },
288 {
289 "name" : "ipv4",
Daniele Moro5a2de712019-09-24 14:34:07 -0700290 "id" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800291 "header_type" : "ipv4_t",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800292 "metadata" : false,
293 "pi_omit" : true
294 },
295 {
296 "name" : "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 {
303 "name" : "udp",
Daniele Moro5a2de712019-09-24 14:34:07 -0700304 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800305 "header_type" : "udp_t",
306 "metadata" : false,
307 "pi_omit" : true
308 },
309 {
310 "name" : "icmp",
Daniele Moro5a2de712019-09-24 14:34:07 -0700311 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800312 "header_type" : "icmp_t",
313 "metadata" : false,
314 "pi_omit" : true
315 },
316 {
317 "name" : "packet_out",
Daniele Moro5a2de712019-09-24 14:34:07 -0700318 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800319 "header_type" : "packet_out_header_t",
320 "metadata" : false,
321 "pi_omit" : true
322 },
323 {
324 "name" : "packet_in",
Daniele Moro5a2de712019-09-24 14:34:07 -0700325 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800326 "header_type" : "packet_in_header_t",
327 "metadata" : false,
328 "pi_omit" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800329 }
330 ],
331 "header_stacks" : [],
332 "header_union_types" : [],
333 "header_unions" : [],
334 "header_union_stacks" : [],
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700335 "field_lists" : [
336 {
337 "id" : 1,
338 "name" : "fl",
339 "source_info" : {
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700340 "filename" : "include/control/acl.p4",
341 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700342 "column" : 40,
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700343 "source_fragment" : "{standard_metadata.ingress_port}"
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700344 },
345 "elements" : [
346 {
347 "type" : "field",
348 "value" : ["standard_metadata", "ingress_port"]
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700349 }
350 ]
351 }
352 ],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700353 "errors" : [
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700354 ["NoError", 1],
355 ["PacketTooShort", 2],
356 ["NoMatch", 3],
357 ["StackOutOfBounds", 4],
358 ["HeaderTooShort", 5],
359 ["ParserTimeout", 6],
360 ["ParserInvalidArgument", 7]
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700361 ],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800362 "enums" : [],
363 "parsers" : [
364 {
365 "name" : "parser",
366 "id" : 0,
367 "init_state" : "start",
368 "parse_states" : [
369 {
370 "name" : "start",
371 "id" : 0,
372 "parser_ops" : [],
373 "transitions" : [
374 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800375 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800376 "value" : "0x00ff",
377 "mask" : null,
378 "next_state" : "parse_packet_out"
379 },
380 {
381 "value" : "default",
382 "mask" : null,
383 "next_state" : "parse_ethernet"
384 }
385 ],
386 "transition_key" : [
387 {
388 "type" : "field",
389 "value" : ["standard_metadata", "ingress_port"]
390 }
391 ]
392 },
393 {
394 "name" : "parse_packet_out",
395 "id" : 1,
396 "parser_ops" : [
397 {
398 "parameters" : [
399 {
400 "type" : "regular",
401 "value" : "packet_out"
402 }
403 ],
404 "op" : "extract"
405 }
406 ],
407 "transitions" : [
408 {
409 "value" : "default",
410 "mask" : null,
411 "next_state" : "parse_ethernet"
412 }
413 ],
414 "transition_key" : []
415 },
416 {
417 "name" : "parse_ethernet",
418 "id" : 2,
419 "parser_ops" : [
420 {
421 "parameters" : [
422 {
423 "type" : "regular",
424 "value" : "ethernet"
425 }
426 ],
427 "op" : "extract"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800428 },
429 {
430 "parameters" : [
431 {
432 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700433 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800434 },
435 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700436 "type" : "hexstr",
437 "value" : "0x0ffe"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800438 }
439 ],
440 "op" : "set"
441 },
442 {
443 "parameters" : [
444 {
445 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700446 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800447 },
448 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700449 "type" : "lookahead",
450 "value" : [0, 16]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800451 }
452 ],
453 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800454 }
455 ],
456 "transitions" : [
457 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800458 "type" : "hexstr",
Daniele Moro77654f92019-07-30 10:29:54 -0700459 "value" : "0x88a8",
460 "mask" : null,
461 "next_state" : "parse_vlan_tag"
462 },
463 {
464 "type" : "hexstr",
465 "value" : "0x9100",
466 "mask" : null,
467 "next_state" : "parse_vlan_tag"
468 },
469 {
470 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800471 "value" : "0x8100",
472 "mask" : null,
473 "next_state" : "parse_vlan_tag"
474 },
475 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800476 "value" : "default",
477 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700478 "next_state" : "parse_eth_type"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800479 }
480 ],
481 "transition_key" : [
482 {
483 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700484 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800485 }
486 ]
487 },
488 {
489 "name" : "parse_vlan_tag",
490 "id" : 3,
491 "parser_ops" : [
492 {
493 "parameters" : [
494 {
495 "type" : "regular",
496 "value" : "vlan_tag"
497 }
498 ],
499 "op" : "extract"
Daniele Moro5a2de712019-09-24 14:34:07 -0700500 },
501 {
502 "parameters" : [
503 {
504 "type" : "field",
505 "value" : ["scalars", "tmp_3"]
506 },
507 {
508 "type" : "lookahead",
509 "value" : [0, 16]
510 }
511 ],
512 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800513 }
514 ],
515 "transitions" : [
516 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800517 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800518 "value" : "0x8100",
519 "mask" : null,
520 "next_state" : "parse_inner_vlan_tag"
521 },
522 {
523 "value" : "default",
524 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700525 "next_state" : "parse_eth_type"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800526 }
527 ],
528 "transition_key" : [
529 {
530 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700531 "value" : ["scalars", "tmp_3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800532 }
533 ]
534 },
535 {
536 "name" : "parse_inner_vlan_tag",
537 "id" : 4,
538 "parser_ops" : [
539 {
540 "parameters" : [
541 {
542 "type" : "regular",
543 "value" : "inner_vlan_tag"
544 }
545 ],
546 "op" : "extract"
547 }
548 ],
549 "transitions" : [
550 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700551 "value" : "default",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800552 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700553 "next_state" : "parse_eth_type"
554 }
555 ],
556 "transition_key" : []
557 },
558 {
559 "name" : "parse_eth_type",
560 "id" : 5,
561 "parser_ops" : [
562 {
563 "parameters" : [
564 {
565 "type" : "regular",
566 "value" : "eth_type"
567 }
568 ],
569 "op" : "extract"
570 }
571 ],
572 "transitions" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800573 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800574 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800575 "value" : "0x8847",
576 "mask" : null,
577 "next_state" : "parse_mpls"
578 },
579 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700580 "type" : "hexstr",
581 "value" : "0x0800",
582 "mask" : null,
583 "next_state" : "parse_ipv4"
584 },
585 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800586 "value" : "default",
587 "mask" : null,
588 "next_state" : null
589 }
590 ],
591 "transition_key" : [
592 {
593 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700594 "value" : ["eth_type", "value"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800595 }
596 ]
597 },
598 {
599 "name" : "parse_mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -0700600 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800601 "parser_ops" : [
602 {
603 "parameters" : [
604 {
605 "type" : "regular",
606 "value" : "mpls"
607 }
608 ],
609 "op" : "extract"
610 },
611 {
612 "parameters" : [
613 {
614 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700615 "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800616 },
617 {
618 "type" : "field",
619 "value" : ["mpls", "label"]
620 }
621 ],
622 "op" : "set"
623 },
624 {
625 "parameters" : [
626 {
627 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700628 "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800629 },
630 {
631 "type" : "field",
632 "value" : ["mpls", "ttl"]
633 }
634 ],
635 "op" : "set"
636 },
637 {
638 "parameters" : [
639 {
640 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700641 "value" : ["scalars", "tmp_4"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800642 },
643 {
644 "type" : "lookahead",
645 "value" : [0, 4]
646 }
647 ],
648 "op" : "set"
649 }
650 ],
651 "transitions" : [
652 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800653 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800654 "value" : "0x04",
655 "mask" : null,
656 "next_state" : "parse_ipv4"
657 },
658 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800659 "value" : "default",
660 "mask" : null,
661 "next_state" : "parse_ethernet"
662 }
663 ],
664 "transition_key" : [
665 {
666 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700667 "value" : ["scalars", "tmp_4"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800668 }
669 ]
670 },
671 {
Daniele Moro7c3a0022019-07-12 13:38:34 -0700672 "name" : "parse_ipv4",
673 "id" : 7,
674 "parser_ops" : [
675 {
676 "parameters" : [
677 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800678 "type" : "regular",
679 "value" : "ipv4"
680 }
681 ],
682 "op" : "extract"
683 },
684 {
685 "parameters" : [
686 {
687 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700688 "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800689 },
690 {
691 "type" : "field",
692 "value" : ["ipv4", "protocol"]
693 }
694 ],
695 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800696 },
697 {
698 "parameters" : [
699 {
700 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700701 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800702 },
703 {
704 "type" : "hexstr",
705 "value" : "0x0800"
706 }
707 ],
708 "op" : "set"
Robert MacDavidbec6b6a2020-05-21 21:32:38 -0400709 },
710 {
711 "parameters" : [
712 {
713 "type" : "field",
714 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
715 },
716 {
717 "type" : "field",
718 "value" : ["ipv4", "src_addr"]
719 }
720 ],
721 "op" : "set"
722 },
723 {
724 "parameters" : [
725 {
726 "type" : "field",
727 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
728 },
729 {
730 "type" : "field",
731 "value" : ["ipv4", "dst_addr"]
732 }
733 ],
734 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800735 }
736 ],
737 "transitions" : [
738 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800739 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800740 "value" : "0x06",
741 "mask" : null,
742 "next_state" : "parse_tcp"
743 },
744 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800745 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800746 "value" : "0x11",
747 "mask" : null,
748 "next_state" : "parse_udp"
749 },
750 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800751 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800752 "value" : "0x01",
753 "mask" : null,
754 "next_state" : "parse_icmp"
755 },
756 {
757 "value" : "default",
758 "mask" : null,
759 "next_state" : null
760 }
761 ],
762 "transition_key" : [
763 {
764 "type" : "field",
765 "value" : ["ipv4", "protocol"]
766 }
767 ]
768 },
769 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800770 "name" : "parse_tcp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700771 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800772 "parser_ops" : [
773 {
774 "parameters" : [
775 {
776 "type" : "regular",
777 "value" : "tcp"
778 }
779 ],
780 "op" : "extract"
781 },
782 {
783 "parameters" : [
784 {
785 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700786 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800787 },
788 {
789 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800790 "value" : ["tcp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800791 }
792 ],
793 "op" : "set"
794 },
795 {
796 "parameters" : [
797 {
798 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700799 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800800 },
801 {
802 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800803 "value" : ["tcp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800804 }
805 ],
806 "op" : "set"
807 }
808 ],
809 "transitions" : [
810 {
811 "value" : "default",
812 "mask" : null,
813 "next_state" : null
814 }
815 ],
816 "transition_key" : []
817 },
818 {
819 "name" : "parse_udp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700820 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800821 "parser_ops" : [
822 {
823 "parameters" : [
824 {
825 "type" : "regular",
826 "value" : "udp"
827 }
828 ],
829 "op" : "extract"
830 },
831 {
832 "parameters" : [
833 {
834 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700835 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800836 },
837 {
838 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800839 "value" : ["udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800840 }
841 ],
842 "op" : "set"
843 },
844 {
845 "parameters" : [
846 {
847 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700848 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800849 },
850 {
851 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800852 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800853 }
854 ],
855 "op" : "set"
856 }
857 ],
858 "transitions" : [
859 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800860 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800861 "value" : "0x0868",
862 "mask" : null,
863 "next_state" : "parse_gtpu"
864 },
865 {
866 "value" : "default",
867 "mask" : null,
868 "next_state" : null
869 }
870 ],
871 "transition_key" : [
872 {
873 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800874 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800875 }
876 ]
877 },
878 {
879 "name" : "parse_icmp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700880 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800881 "parser_ops" : [
882 {
883 "parameters" : [
884 {
885 "type" : "regular",
886 "value" : "icmp"
887 }
888 ],
889 "op" : "extract"
890 }
891 ],
892 "transitions" : [
893 {
894 "value" : "default",
895 "mask" : null,
896 "next_state" : null
897 }
898 ],
899 "transition_key" : []
900 },
901 {
902 "name" : "parse_gtpu",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700903 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800904 "parser_ops" : [
905 {
906 "parameters" : [
907 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700908 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800909 "value" : ["scalars", "tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700910 },
911 {
912 "type" : "expression",
913 "value" : {
914 "type" : "expression",
915 "value" : {
916 "op" : "&",
917 "left" : {
918 "type" : "expression",
919 "value" : {
920 "op" : "&",
921 "left" : {
922 "type" : "expression",
923 "value" : {
924 "op" : ">>",
925 "left" : {
926 "type" : "field",
927 "value" : ["ipv4", "dst_addr"]
928 },
929 "right" : {
930 "type" : "hexstr",
931 "value" : "0x18"
932 }
933 }
934 },
935 "right" : {
936 "type" : "hexstr",
937 "value" : "0xffffffff"
938 }
939 }
940 },
941 "right" : {
942 "type" : "hexstr",
943 "value" : "0xff"
944 }
945 }
946 }
947 }
948 ],
949 "op" : "set"
950 }
951 ],
952 "transitions" : [
953 {
954 "type" : "hexstr",
955 "value" : "0x8c",
956 "mask" : null,
957 "next_state" : "do_parse_gtpu"
958 },
959 {
960 "value" : "default",
961 "mask" : null,
962 "next_state" : null
963 }
964 ],
965 "transition_key" : [
966 {
967 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800968 "value" : ["scalars", "tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700969 }
970 ]
971 },
972 {
973 "name" : "do_parse_gtpu",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700974 "id" : 12,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700975 "parser_ops" : [
976 {
977 "parameters" : [
978 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800979 "type" : "regular",
980 "value" : "gtpu"
981 }
982 ],
983 "op" : "extract"
984 },
985 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800986 "parameters" : [
987 {
988 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700989 "value" : "inner_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800990 }
991 ],
992 "op" : "extract"
993 }
994 ],
995 "transitions" : [
996 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800997 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800998 "value" : "0x06",
999 "mask" : null,
1000 "next_state" : "parse_tcp"
1001 },
1002 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001003 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001004 "value" : "0x11",
1005 "mask" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001006 "next_state" : "parse_inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001007 },
1008 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001009 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001010 "value" : "0x01",
1011 "mask" : null,
1012 "next_state" : "parse_icmp"
1013 },
1014 {
1015 "value" : "default",
1016 "mask" : null,
1017 "next_state" : null
1018 }
1019 ],
1020 "transition_key" : [
1021 {
1022 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001023 "value" : ["inner_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001024 }
1025 ]
1026 },
1027 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001028 "name" : "parse_inner_udp",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001029 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001030 "parser_ops" : [
1031 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001032 "parameters" : [
1033 {
1034 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001035 "value" : "inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001036 }
1037 ],
1038 "op" : "extract"
1039 },
1040 {
1041 "parameters" : [
1042 {
1043 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001044 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001045 },
1046 {
1047 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001048 "value" : ["inner_udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001049 }
1050 ],
1051 "op" : "set"
1052 },
1053 {
1054 "parameters" : [
1055 {
1056 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001057 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001058 },
1059 {
1060 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001061 "value" : ["inner_udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001062 }
1063 ],
1064 "op" : "set"
1065 }
1066 ],
1067 "transitions" : [
1068 {
1069 "value" : "default",
1070 "mask" : null,
1071 "next_state" : null
1072 }
1073 ],
1074 "transition_key" : []
1075 }
1076 ]
1077 }
1078 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001079 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001080 "deparsers" : [
1081 {
1082 "name" : "deparser",
1083 "id" : 0,
1084 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001085 "filename" : "include/parser.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001086 "line" : 267,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001087 "column" : 8,
1088 "source_fragment" : "FabricDeparser"
1089 },
Daniele Moro5a2de712019-09-24 14:34:07 -07001090 "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "mpls", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "tcp", "udp", "icmp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001091 }
1092 ],
1093 "meter_arrays" : [],
1094 "counter_arrays" : [
1095 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001096 "name" : "FabricIngress.spgw_ingress.pdr_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001097 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001098 "source_info" : {
1099 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001100 "line" : 56,
1101 "column" : 49,
1102 "source_fragment" : "pdr_counter"
1103 },
1104 "size" : 1024,
1105 "is_direct" : false
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001106 },
1107 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001108 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001109 "id" : 1,
1110 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001111 "binding" : "FabricIngress.filtering.ingress_port_vlan",
1112 "source_info" : {
1113 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001114 "line" : 31,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001115 "column" : 50,
1116 "source_fragment" : "ingress_port_vlan_counter"
1117 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001118 },
1119 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001120 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001121 "id" : 2,
1122 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001123 "binding" : "FabricIngress.filtering.fwd_classifier",
1124 "source_info" : {
1125 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001126 "line" : 85,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001127 "column" : 50,
1128 "source_fragment" : "fwd_classifier_counter"
1129 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001130 },
1131 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001132 "name" : "FabricIngress.forwarding.bridging_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001133 "id" : 3,
1134 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001135 "binding" : "FabricIngress.forwarding.bridging",
1136 "source_info" : {
1137 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001138 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001139 "column" : 50,
1140 "source_fragment" : "bridging_counter"
1141 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001142 },
1143 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001144 "name" : "FabricIngress.forwarding.mpls_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001145 "id" : 4,
1146 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001147 "binding" : "FabricIngress.forwarding.mpls",
1148 "source_info" : {
1149 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001150 "line" : 63,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001151 "column" : 50,
1152 "source_fragment" : "mpls_counter"
1153 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001154 },
1155 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001156 "name" : "FabricIngress.acl.acl_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001157 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001158 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001159 "binding" : "FabricIngress.acl.acl",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001160 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001161 "filename" : "include/control/acl.p4",
1162 "line" : 30,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001163 "column" : 50,
1164 "source_fragment" : "acl_counter"
1165 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001166 },
1167 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001168 "name" : "FabricIngress.next.next_vlan_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001169 "id" : 6,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001170 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001171 "binding" : "FabricIngress.next.next_vlan",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001172 "source_info" : {
1173 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001174 "line" : 67,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001175 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001176 "source_fragment" : "next_vlan_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001177 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001178 },
1179 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001180 "name" : "FabricIngress.next.xconnect_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001181 "id" : 7,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001182 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001183 "binding" : "FabricIngress.next.xconnect",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001184 "source_info" : {
1185 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001186 "line" : 107,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001187 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001188 "source_fragment" : "xconnect_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001189 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001190 },
1191 {
1192 "name" : "FabricIngress.next.hashed_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001193 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001194 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001195 "binding" : "FabricIngress.next.hashed",
1196 "source_info" : {
1197 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001198 "line" : 184,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001199 "column" : 50,
1200 "source_fragment" : "hashed_counter"
1201 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001202 },
1203 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001204 "name" : "FabricIngress.next.multicast_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001205 "id" : 9,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001206 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001207 "binding" : "FabricIngress.next.multicast",
1208 "source_info" : {
1209 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001210 "line" : 228,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001211 "column" : 50,
1212 "source_fragment" : "multicast_counter"
1213 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00001214 },
1215 {
1216 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001217 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001218 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001219 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001220 "line" : 26,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001221 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001222 "source_fragment" : "egress_port_counter"
1223 },
1224 "size" : 511,
1225 "is_direct" : false
1226 },
1227 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001228 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001229 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001230 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001231 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001232 "line" : 27,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001233 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001234 "source_fragment" : "ingress_port_counter"
1235 },
1236 "size" : 511,
1237 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08001238 },
1239 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001240 "name" : "FabricEgress.spgw_egress.pdr_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001241 "id" : 12,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001242 "source_info" : {
1243 "filename" : "include/spgw.p4",
1244 "line" : 246,
1245 "column" : 49,
1246 "source_fragment" : "pdr_counter"
1247 },
1248 "size" : 1024,
1249 "is_direct" : false
1250 },
1251 {
1252 "name" : "FabricEgress.egress_next.egress_vlan_counter",
1253 "id" : 13,
Yi Tseng47eac892018-07-11 02:17:04 +08001254 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001255 "binding" : "FabricEgress.egress_next.egress_vlan",
1256 "source_info" : {
1257 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001258 "line" : 313,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001259 "column" : 50,
1260 "source_fragment" : "egress_vlan_counter"
1261 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001262 }
1263 ],
1264 "register_arrays" : [],
1265 "calculations" : [
1266 {
1267 "name" : "calc",
1268 "id" : 0,
1269 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001270 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001271 "line" : 28,
1272 "column" : 8,
1273 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1274 },
1275 "algo" : "csum16",
1276 "input" : [
1277 {
1278 "type" : "field",
1279 "value" : ["ipv4", "version"]
1280 },
1281 {
1282 "type" : "field",
1283 "value" : ["ipv4", "ihl"]
1284 },
1285 {
1286 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001287 "value" : ["ipv4", "dscp"]
1288 },
1289 {
1290 "type" : "field",
1291 "value" : ["ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001292 },
1293 {
1294 "type" : "field",
1295 "value" : ["ipv4", "total_len"]
1296 },
1297 {
1298 "type" : "field",
1299 "value" : ["ipv4", "identification"]
1300 },
1301 {
1302 "type" : "field",
1303 "value" : ["ipv4", "flags"]
1304 },
1305 {
1306 "type" : "field",
1307 "value" : ["ipv4", "frag_offset"]
1308 },
1309 {
1310 "type" : "field",
1311 "value" : ["ipv4", "ttl"]
1312 },
1313 {
1314 "type" : "field",
1315 "value" : ["ipv4", "protocol"]
1316 },
1317 {
1318 "type" : "field",
1319 "value" : ["ipv4", "src_addr"]
1320 },
1321 {
1322 "type" : "field",
1323 "value" : ["ipv4", "dst_addr"]
1324 }
1325 ]
1326 },
1327 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001328 "name" : "calc_0",
1329 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001330 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001331 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001332 "line" : 306,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001333 "column" : 8,
1334 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1335 },
1336 "algo" : "csum16",
1337 "input" : [
1338 {
1339 "type" : "field",
1340 "value" : ["gtpu_ipv4", "version"]
1341 },
1342 {
1343 "type" : "field",
1344 "value" : ["gtpu_ipv4", "ihl"]
1345 },
1346 {
1347 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001348 "value" : ["gtpu_ipv4", "dscp"]
1349 },
1350 {
1351 "type" : "field",
1352 "value" : ["gtpu_ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001353 },
1354 {
1355 "type" : "field",
1356 "value" : ["gtpu_ipv4", "total_len"]
1357 },
1358 {
1359 "type" : "field",
1360 "value" : ["gtpu_ipv4", "identification"]
1361 },
1362 {
1363 "type" : "field",
1364 "value" : ["gtpu_ipv4", "flags"]
1365 },
1366 {
1367 "type" : "field",
1368 "value" : ["gtpu_ipv4", "frag_offset"]
1369 },
1370 {
1371 "type" : "field",
1372 "value" : ["gtpu_ipv4", "ttl"]
1373 },
1374 {
1375 "type" : "field",
1376 "value" : ["gtpu_ipv4", "protocol"]
1377 },
1378 {
1379 "type" : "field",
1380 "value" : ["gtpu_ipv4", "src_addr"]
1381 },
1382 {
1383 "type" : "field",
1384 "value" : ["gtpu_ipv4", "dst_addr"]
1385 }
1386 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001387 },
1388 {
1389 "name" : "calc_1",
1390 "id" : 2,
1391 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001392 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001393 "line" : 57,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001394 "column" : 8,
1395 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1396 },
1397 "algo" : "csum16",
1398 "input" : [
1399 {
1400 "type" : "field",
1401 "value" : ["ipv4", "version"]
1402 },
1403 {
1404 "type" : "field",
1405 "value" : ["ipv4", "ihl"]
1406 },
1407 {
1408 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001409 "value" : ["ipv4", "dscp"]
1410 },
1411 {
1412 "type" : "field",
1413 "value" : ["ipv4", "ecn"]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001414 },
1415 {
1416 "type" : "field",
1417 "value" : ["ipv4", "total_len"]
1418 },
1419 {
1420 "type" : "field",
1421 "value" : ["ipv4", "identification"]
1422 },
1423 {
1424 "type" : "field",
1425 "value" : ["ipv4", "flags"]
1426 },
1427 {
1428 "type" : "field",
1429 "value" : ["ipv4", "frag_offset"]
1430 },
1431 {
1432 "type" : "field",
1433 "value" : ["ipv4", "ttl"]
1434 },
1435 {
1436 "type" : "field",
1437 "value" : ["ipv4", "protocol"]
1438 },
1439 {
1440 "type" : "field",
1441 "value" : ["ipv4", "src_addr"]
1442 },
1443 {
1444 "type" : "field",
1445 "value" : ["ipv4", "dst_addr"]
1446 }
1447 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001448 }
1449 ],
1450 "learn_lists" : [],
1451 "actions" : [
1452 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001453 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001454 "id" : 0,
1455 "runtime_data" : [],
1456 "primitives" : []
1457 },
1458 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001459 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001460 "id" : 1,
1461 "runtime_data" : [],
1462 "primitives" : []
1463 },
1464 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001465 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001466 "id" : 2,
1467 "runtime_data" : [],
1468 "primitives" : []
1469 },
1470 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001471 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001472 "id" : 3,
1473 "runtime_data" : [],
1474 "primitives" : []
1475 },
1476 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001477 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001478 "id" : 4,
1479 "runtime_data" : [],
1480 "primitives" : []
1481 },
1482 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001483 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001484 "id" : 5,
1485 "runtime_data" : [],
1486 "primitives" : []
1487 },
1488 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001489 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001490 "id" : 6,
1491 "runtime_data" : [],
1492 "primitives" : []
1493 },
1494 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001495 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001496 "id" : 7,
1497 "runtime_data" : [],
1498 "primitives" : []
1499 },
1500 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001501 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001502 "id" : 8,
1503 "runtime_data" : [],
1504 "primitives" : []
1505 },
1506 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001507 "name" : "NoAction",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001508 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001509 "runtime_data" : [],
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001510 "primitives" : []
1511 },
1512 {
1513 "name" : "NoAction",
1514 "id" : 10,
1515 "runtime_data" : [],
1516 "primitives" : []
1517 },
1518 {
1519 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
1520 "id" : 11,
1521 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001522 "primitives" : [
1523 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001524 "op" : "assign",
1525 "parameters" : [
1526 {
1527 "type" : "field",
1528 "value" : ["scalars", "fabric_metadata_t._spgw_teid19"]
1529 },
1530 {
1531 "type" : "field",
1532 "value" : ["gtpu", "teid"]
1533 }
1534 ],
1535 "source_info" : {
1536 "filename" : "include/spgw.p4",
1537 "line" : 61,
1538 "column" : 30,
1539 "source_fragment" : "= gtpu.teid; ..."
1540 }
1541 },
1542 {
1543 "op" : "assign",
1544 "parameters" : [
1545 {
1546 "type" : "field",
1547 "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_dst_addr21"]
1548 },
1549 {
1550 "type" : "field",
1551 "value" : ["gtpu_ipv4", "dst_addr"]
1552 }
1553 ],
1554 "source_info" : {
1555 "filename" : "include/spgw.p4",
1556 "line" : 62,
1557 "column" : 41,
1558 "source_fragment" : "= gtpu_ipv4.dst_addr; ..."
1559 }
1560 },
1561 {
1562 "op" : "assign",
1563 "parameters" : [
1564 {
1565 "type" : "field",
1566 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
1567 },
1568 {
1569 "type" : "field",
1570 "value" : ["ipv4", "src_addr"]
1571 }
1572 ],
1573 "source_info" : {
1574 "filename" : "include/spgw.p4",
1575 "line" : 64,
1576 "column" : 34,
1577 "source_fragment" : "= ipv4.src_addr; ..."
1578 }
1579 },
1580 {
1581 "op" : "assign",
1582 "parameters" : [
1583 {
1584 "type" : "field",
1585 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
1586 },
1587 {
1588 "type" : "field",
1589 "value" : ["ipv4", "dst_addr"]
1590 }
1591 ],
1592 "source_info" : {
1593 "filename" : "include/spgw.p4",
1594 "line" : 65,
1595 "column" : 34,
1596 "source_fragment" : "= ipv4.dst_addr; ..."
1597 }
1598 },
1599 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001600 "op" : "remove_header",
1601 "parameters" : [
1602 {
1603 "type" : "header",
1604 "value" : "gtpu_ipv4"
1605 }
1606 ],
1607 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001608 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001609 "line" : 67,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001610 "column" : 8,
1611 "source_fragment" : "gtpu_ipv4.setInvalid()"
1612 }
1613 },
1614 {
1615 "op" : "remove_header",
1616 "parameters" : [
1617 {
1618 "type" : "header",
1619 "value" : "gtpu_udp"
1620 }
1621 ],
1622 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001623 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001624 "line" : 68,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001625 "column" : 8,
1626 "source_fragment" : "gtpu_udp.setInvalid()"
1627 }
1628 },
1629 {
1630 "op" : "remove_header",
1631 "parameters" : [
1632 {
1633 "type" : "header",
1634 "value" : "gtpu"
1635 }
1636 ],
1637 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001638 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001639 "line" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001640 "column" : 8,
1641 "source_fragment" : "gtpu.setInvalid()"
1642 }
1643 }
1644 ]
1645 },
1646 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001647 "name" : "FabricIngress.spgw_ingress.set_pdr_attributes",
1648 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001649 "runtime_data" : [
1650 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001651 "name" : "ctr_id",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001652 "bitwidth" : 32
1653 },
1654 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001655 "name" : "far_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001656 "bitwidth" : 32
1657 }
1658 ],
1659 "primitives" : [
1660 {
1661 "op" : "assign",
1662 "parameters" : [
1663 {
1664 "type" : "field",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001665 "value" : ["scalars", "fabric_metadata_t._spgw_pdr_hit24"]
1666 },
1667 {
1668 "type" : "expression",
1669 "value" : {
1670 "type" : "expression",
1671 "value" : {
1672 "op" : "b2d",
1673 "left" : null,
1674 "right" : {
1675 "type" : "bool",
1676 "value" : true
1677 }
1678 }
1679 }
1680 }
1681 ],
1682 "source_info" : {
1683 "filename" : "include/spgw.p4",
1684 "line" : 97,
1685 "column" : 33,
1686 "source_fragment" : "= true; ..."
1687 }
1688 },
1689 {
1690 "op" : "assign",
1691 "parameters" : [
1692 {
1693 "type" : "field",
1694 "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id22"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001695 },
1696 {
1697 "type" : "runtime_data",
1698 "value" : 0
1699 }
1700 ],
1701 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001702 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001703 "line" : 98,
1704 "column" : 32,
1705 "source_fragment" : "= ctr_id; ..."
1706 }
1707 },
1708 {
1709 "op" : "assign",
1710 "parameters" : [
1711 {
1712 "type" : "field",
1713 "value" : ["scalars", "fabric_metadata_t._spgw_far_id23"]
1714 },
1715 {
1716 "type" : "runtime_data",
1717 "value" : 1
1718 }
1719 ],
1720 "source_info" : {
1721 "filename" : "include/spgw.p4",
1722 "line" : 99,
1723 "column" : 32,
1724 "source_fragment" : "= far_id; ..."
1725 }
1726 }
1727 ]
1728 },
1729 {
1730 "name" : "FabricIngress.spgw_ingress.set_pdr_attributes",
1731 "id" : 13,
1732 "runtime_data" : [
1733 {
1734 "name" : "ctr_id",
1735 "bitwidth" : 32
1736 },
1737 {
1738 "name" : "far_id",
1739 "bitwidth" : 32
1740 }
1741 ],
1742 "primitives" : [
1743 {
1744 "op" : "assign",
1745 "parameters" : [
1746 {
1747 "type" : "field",
1748 "value" : ["scalars", "fabric_metadata_t._spgw_pdr_hit24"]
1749 },
1750 {
1751 "type" : "expression",
1752 "value" : {
1753 "type" : "expression",
1754 "value" : {
1755 "op" : "b2d",
1756 "left" : null,
1757 "right" : {
1758 "type" : "bool",
1759 "value" : true
1760 }
1761 }
1762 }
1763 }
1764 ],
1765 "source_info" : {
1766 "filename" : "include/spgw.p4",
1767 "line" : 97,
1768 "column" : 33,
1769 "source_fragment" : "= true; ..."
1770 }
1771 },
1772 {
1773 "op" : "assign",
1774 "parameters" : [
1775 {
1776 "type" : "field",
1777 "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id22"]
1778 },
1779 {
1780 "type" : "runtime_data",
1781 "value" : 0
1782 }
1783 ],
1784 "source_info" : {
1785 "filename" : "include/spgw.p4",
1786 "line" : 98,
1787 "column" : 32,
1788 "source_fragment" : "= ctr_id; ..."
1789 }
1790 },
1791 {
1792 "op" : "assign",
1793 "parameters" : [
1794 {
1795 "type" : "field",
1796 "value" : ["scalars", "fabric_metadata_t._spgw_far_id23"]
1797 },
1798 {
1799 "type" : "runtime_data",
1800 "value" : 1
1801 }
1802 ],
1803 "source_info" : {
1804 "filename" : "include/spgw.p4",
1805 "line" : 99,
1806 "column" : 32,
1807 "source_fragment" : "= far_id; ..."
1808 }
1809 }
1810 ]
1811 },
1812 {
1813 "name" : "FabricIngress.spgw_ingress.set_pdr_attributes",
1814 "id" : 14,
1815 "runtime_data" : [
1816 {
1817 "name" : "ctr_id",
1818 "bitwidth" : 32
1819 },
1820 {
1821 "name" : "far_id",
1822 "bitwidth" : 32
1823 }
1824 ],
1825 "primitives" : [
1826 {
1827 "op" : "assign",
1828 "parameters" : [
1829 {
1830 "type" : "field",
1831 "value" : ["scalars", "fabric_metadata_t._spgw_pdr_hit24"]
1832 },
1833 {
1834 "type" : "expression",
1835 "value" : {
1836 "type" : "expression",
1837 "value" : {
1838 "op" : "b2d",
1839 "left" : null,
1840 "right" : {
1841 "type" : "bool",
1842 "value" : true
1843 }
1844 }
1845 }
1846 }
1847 ],
1848 "source_info" : {
1849 "filename" : "include/spgw.p4",
1850 "line" : 97,
1851 "column" : 33,
1852 "source_fragment" : "= true; ..."
1853 }
1854 },
1855 {
1856 "op" : "assign",
1857 "parameters" : [
1858 {
1859 "type" : "field",
1860 "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id22"]
1861 },
1862 {
1863 "type" : "runtime_data",
1864 "value" : 0
1865 }
1866 ],
1867 "source_info" : {
1868 "filename" : "include/spgw.p4",
1869 "line" : 98,
1870 "column" : 32,
1871 "source_fragment" : "= ctr_id; ..."
1872 }
1873 },
1874 {
1875 "op" : "assign",
1876 "parameters" : [
1877 {
1878 "type" : "field",
1879 "value" : ["scalars", "fabric_metadata_t._spgw_far_id23"]
1880 },
1881 {
1882 "type" : "runtime_data",
1883 "value" : 1
1884 }
1885 ],
1886 "source_info" : {
1887 "filename" : "include/spgw.p4",
1888 "line" : 99,
1889 "column" : 32,
1890 "source_fragment" : "= far_id; ..."
1891 }
1892 }
1893 ]
1894 },
1895 {
1896 "name" : "FabricIngress.spgw_ingress.load_normal_far_attributes",
1897 "id" : 15,
1898 "runtime_data" : [
1899 {
1900 "name" : "drop",
1901 "bitwidth" : 1
1902 },
1903 {
1904 "name" : "notify_cp",
1905 "bitwidth" : 1
1906 }
1907 ],
1908 "primitives" : [
1909 {
1910 "op" : "assign",
1911 "parameters" : [
1912 {
1913 "type" : "field",
1914 "value" : ["scalars", "fabric_metadata_t._spgw_far_dropped25"]
1915 },
1916 {
1917 "type" : "expression",
1918 "value" : {
1919 "type" : "expression",
1920 "value" : {
1921 "op" : "b2d",
1922 "left" : null,
1923 "right" : {
1924 "type" : "expression",
1925 "value" : {
1926 "op" : "!=",
1927 "left" : {
1928 "type" : "local",
1929 "value" : 0
1930 },
1931 "right" : {
1932 "type" : "hexstr",
1933 "value" : "0x00"
1934 }
1935 }
1936 }
1937 }
1938 }
1939 }
1940 ],
1941 "source_info" : {
1942 "filename" : "include/spgw.p4",
1943 "line" : 146,
1944 "column" : 37,
1945 "source_fragment" : "= (bool)drop; ..."
1946 }
1947 },
1948 {
1949 "op" : "assign",
1950 "parameters" : [
1951 {
1952 "type" : "field",
1953 "value" : ["scalars", "fabric_metadata_t._spgw_notify_cp26"]
1954 },
1955 {
1956 "type" : "expression",
1957 "value" : {
1958 "type" : "expression",
1959 "value" : {
1960 "op" : "b2d",
1961 "left" : null,
1962 "right" : {
1963 "type" : "expression",
1964 "value" : {
1965 "op" : "!=",
1966 "left" : {
1967 "type" : "local",
1968 "value" : 1
1969 },
1970 "right" : {
1971 "type" : "hexstr",
1972 "value" : "0x00"
1973 }
1974 }
1975 }
1976 }
1977 }
1978 }
1979 ],
1980 "source_info" : {
1981 "filename" : "include/spgw.p4",
1982 "line" : 147,
1983 "column" : 35,
1984 "source_fragment" : "= (bool)notify_cp; ..."
1985 }
1986 }
1987 ]
1988 },
1989 {
1990 "name" : "FabricIngress.spgw_ingress.load_tunnel_far_attributes",
1991 "id" : 16,
1992 "runtime_data" : [
1993 {
1994 "name" : "drop",
1995 "bitwidth" : 1
1996 },
1997 {
1998 "name" : "notify_cp",
1999 "bitwidth" : 1
2000 },
2001 {
2002 "name" : "tunnel_src_addr",
2003 "bitwidth" : 32
2004 },
2005 {
2006 "name" : "tunnel_dst_addr",
2007 "bitwidth" : 32
2008 },
2009 {
2010 "name" : "teid",
2011 "bitwidth" : 32
2012 }
2013 ],
2014 "primitives" : [
2015 {
2016 "op" : "assign",
2017 "parameters" : [
2018 {
2019 "type" : "field",
2020 "value" : ["scalars", "fabric_metadata_t._spgw_far_dropped25"]
2021 },
2022 {
2023 "type" : "expression",
2024 "value" : {
2025 "type" : "expression",
2026 "value" : {
2027 "op" : "b2d",
2028 "left" : null,
2029 "right" : {
2030 "type" : "expression",
2031 "value" : {
2032 "op" : "!=",
2033 "left" : {
2034 "type" : "local",
2035 "value" : 0
2036 },
2037 "right" : {
2038 "type" : "hexstr",
2039 "value" : "0x00"
2040 }
2041 }
2042 }
2043 }
2044 }
2045 }
2046 ],
2047 "source_info" : {
2048 "filename" : "include/spgw.p4",
2049 "line" : 155,
2050 "column" : 37,
2051 "source_fragment" : "= (bool)drop; ..."
2052 }
2053 },
2054 {
2055 "op" : "assign",
2056 "parameters" : [
2057 {
2058 "type" : "field",
2059 "value" : ["scalars", "fabric_metadata_t._spgw_notify_cp26"]
2060 },
2061 {
2062 "type" : "expression",
2063 "value" : {
2064 "type" : "expression",
2065 "value" : {
2066 "op" : "b2d",
2067 "left" : null,
2068 "right" : {
2069 "type" : "expression",
2070 "value" : {
2071 "op" : "!=",
2072 "left" : {
2073 "type" : "local",
2074 "value" : 1
2075 },
2076 "right" : {
2077 "type" : "hexstr",
2078 "value" : "0x00"
2079 }
2080 }
2081 }
2082 }
2083 }
2084 }
2085 ],
2086 "source_info" : {
2087 "filename" : "include/spgw.p4",
2088 "line" : 156,
2089 "column" : 35,
2090 "source_fragment" : "= (bool)notify_cp; ..."
2091 }
2092 },
2093 {
2094 "op" : "assign",
2095 "parameters" : [
2096 {
2097 "type" : "field",
2098 "value" : ["scalars", "fabric_metadata_t._spgw_outer_header_creation27"]
2099 },
2100 {
2101 "type" : "expression",
2102 "value" : {
2103 "type" : "expression",
2104 "value" : {
2105 "op" : "b2d",
2106 "left" : null,
2107 "right" : {
2108 "type" : "bool",
2109 "value" : true
2110 }
2111 }
2112 }
2113 }
2114 ],
2115 "source_info" : {
2116 "filename" : "include/spgw.p4",
2117 "line" : 158,
2118 "column" : 47,
2119 "source_fragment" : "= true; ..."
2120 }
2121 },
2122 {
2123 "op" : "assign",
2124 "parameters" : [
2125 {
2126 "type" : "field",
2127 "value" : ["scalars", "fabric_metadata_t._spgw_teid19"]
2128 },
2129 {
2130 "type" : "runtime_data",
2131 "value" : 4
2132 }
2133 ],
2134 "source_info" : {
2135 "filename" : "include/spgw.p4",
2136 "line" : 159,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002137 "column" : 30,
2138 "source_fragment" : "= teid; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002139 }
2140 },
2141 {
2142 "op" : "assign",
2143 "parameters" : [
2144 {
2145 "type" : "field",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002146 "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_src_addr20"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002147 },
2148 {
2149 "type" : "runtime_data",
2150 "value" : 2
2151 }
2152 ],
2153 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002154 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002155 "line" : 160,
2156 "column" : 41,
2157 "source_fragment" : "= tunnel_src_addr; ..."
2158 }
2159 },
2160 {
2161 "op" : "assign",
2162 "parameters" : [
2163 {
2164 "type" : "field",
2165 "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_dst_addr21"]
2166 },
2167 {
2168 "type" : "runtime_data",
2169 "value" : 3
2170 }
2171 ],
2172 "source_info" : {
2173 "filename" : "include/spgw.p4",
2174 "line" : 161,
2175 "column" : 41,
2176 "source_fragment" : "= tunnel_dst_addr; ..."
2177 }
2178 },
2179 {
2180 "op" : "assign",
2181 "parameters" : [
2182 {
2183 "type" : "field",
2184 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
2185 },
2186 {
2187 "type" : "runtime_data",
2188 "value" : 2
2189 }
2190 ],
2191 "source_info" : {
2192 "filename" : "include/spgw.p4",
2193 "line" : 163,
2194 "column" : 34,
2195 "source_fragment" : "= tunnel_src_addr; ..."
2196 }
2197 },
2198 {
2199 "op" : "assign",
2200 "parameters" : [
2201 {
2202 "type" : "field",
2203 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
2204 },
2205 {
2206 "type" : "runtime_data",
2207 "value" : 3
2208 }
2209 ],
2210 "source_info" : {
2211 "filename" : "include/spgw.p4",
2212 "line" : 164,
2213 "column" : 34,
2214 "source_fragment" : "= tunnel_dst_addr; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002215 }
2216 }
2217 ]
2218 },
2219 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002220 "name" : "FabricIngress.filtering.deny",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002221 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002222 "runtime_data" : [],
2223 "primitives" : [
2224 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002225 "op" : "assign",
2226 "parameters" : [
2227 {
2228 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002229 "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002230 },
2231 {
2232 "type" : "expression",
2233 "value" : {
2234 "type" : "expression",
2235 "value" : {
2236 "op" : "b2d",
2237 "left" : null,
2238 "right" : {
2239 "type" : "bool",
2240 "value" : true
2241 }
2242 }
2243 }
2244 }
2245 ],
2246 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002247 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002248 "line" : 36,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002249 "column" : 40,
2250 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002251 }
2252 },
2253 {
2254 "op" : "assign",
2255 "parameters" : [
2256 {
2257 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002258 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002259 },
2260 {
2261 "type" : "expression",
2262 "value" : {
2263 "type" : "expression",
2264 "value" : {
2265 "op" : "b2d",
2266 "left" : null,
2267 "right" : {
2268 "type" : "bool",
2269 "value" : true
2270 }
2271 }
2272 }
2273 }
2274 ],
2275 "source_info" : {
2276 "filename" : "include/control/filtering.p4",
2277 "line" : 37,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002278 "column" : 34,
2279 "source_fragment" : "= true; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002280 }
2281 }
2282 ]
2283 },
2284 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002285 "name" : "FabricIngress.filtering.permit",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002286 "id" : 18,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002287 "runtime_data" : [],
2288 "primitives" : []
2289 },
2290 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002291 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002292 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002293 "runtime_data" : [
2294 {
2295 "name" : "vlan_id",
2296 "bitwidth" : 12
2297 }
2298 ],
2299 "primitives" : [
2300 {
2301 "op" : "assign",
2302 "parameters" : [
2303 {
2304 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002305 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002306 },
2307 {
2308 "type" : "runtime_data",
2309 "value" : 0
2310 }
2311 ],
2312 "source_info" : {
2313 "filename" : "include/control/filtering.p4",
2314 "line" : 47,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002315 "column" : 32,
2316 "source_fragment" : "= vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002317 }
2318 }
2319 ]
2320 },
2321 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002322 "name" : "FabricIngress.filtering.set_forwarding_type",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002323 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002324 "runtime_data" : [
2325 {
2326 "name" : "fwd_type",
2327 "bitwidth" : 3
2328 }
2329 ],
2330 "primitives" : [
2331 {
2332 "op" : "assign",
2333 "parameters" : [
2334 {
2335 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002336 "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002337 },
2338 {
2339 "type" : "runtime_data",
2340 "value" : 0
2341 }
2342 ],
2343 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002344 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002345 "line" : 88,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002346 "column" : 33,
2347 "source_fragment" : "= fwd_type; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002348 }
2349 }
2350 ]
2351 },
2352 {
Yi Tseng47eac892018-07-11 02:17:04 +08002353 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002354 "id" : 21,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002355 "runtime_data" : [
2356 {
2357 "name" : "next_id",
2358 "bitwidth" : 32
2359 }
2360 ],
2361 "primitives" : [
2362 {
2363 "op" : "assign",
2364 "parameters" : [
2365 {
2366 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002367 "value" : ["scalars", "fabric_metadata_t._next_id9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002368 },
2369 {
2370 "type" : "runtime_data",
2371 "value" : 0
2372 }
2373 ],
2374 "source_info" : {
2375 "filename" : "include/control/forwarding.p4",
2376 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002377 "column" : 32,
2378 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002379 }
2380 }
2381 ]
2382 },
2383 {
2384 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002385 "id" : 22,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002386 "runtime_data" : [
2387 {
2388 "name" : "next_id",
2389 "bitwidth" : 32
2390 }
2391 ],
2392 "primitives" : [
2393 {
2394 "op" : "assign",
2395 "parameters" : [
2396 {
2397 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002398 "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002399 },
2400 {
2401 "type" : "hexstr",
2402 "value" : "0x000000"
2403 }
2404 ],
2405 "source_info" : {
2406 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002407 "line" : 66,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002408 "column" : 35,
2409 "source_fragment" : "= 0; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002410 }
2411 },
2412 {
2413 "op" : "assign",
2414 "parameters" : [
2415 {
2416 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002417 "value" : ["scalars", "fabric_metadata_t._next_id9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002418 },
2419 {
2420 "type" : "runtime_data",
2421 "value" : 0
2422 }
2423 ],
2424 "source_info" : {
2425 "filename" : "include/control/forwarding.p4",
2426 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002427 "column" : 32,
2428 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002429 }
2430 }
2431 ]
2432 },
2433 {
2434 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002435 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002436 "runtime_data" : [
2437 {
2438 "name" : "next_id",
2439 "bitwidth" : 32
2440 }
2441 ],
2442 "primitives" : [
2443 {
2444 "op" : "assign",
2445 "parameters" : [
2446 {
2447 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002448 "value" : ["scalars", "fabric_metadata_t._next_id9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002449 },
2450 {
2451 "type" : "runtime_data",
2452 "value" : 0
2453 }
2454 ],
2455 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002456 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002457 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002458 "column" : 32,
2459 "source_fragment" : "= next_id; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002460 }
2461 }
2462 ]
2463 },
2464 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002465 "name" : "FabricIngress.forwarding.nop_routing_v4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002466 "id" : 24,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002467 "runtime_data" : [],
2468 "primitives" : []
Yi Tseng47eac892018-07-11 02:17:04 +08002469 },
2470 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002471 "name" : "FabricIngress.acl.set_next_id_acl",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002472 "id" : 25,
Yi Tseng27b9bc02018-04-12 14:52:40 +08002473 "runtime_data" : [
2474 {
2475 "name" : "next_id",
2476 "bitwidth" : 32
2477 }
2478 ],
2479 "primitives" : [
2480 {
2481 "op" : "assign",
2482 "parameters" : [
2483 {
2484 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002485 "value" : ["scalars", "fabric_metadata_t._next_id9"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08002486 },
2487 {
2488 "type" : "runtime_data",
2489 "value" : 0
2490 }
2491 ],
2492 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002493 "filename" : "include/control/acl.p4",
2494 "line" : 33,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002495 "column" : 32,
2496 "source_fragment" : "= next_id; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002497 }
2498 }
2499 ]
2500 },
2501 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002502 "name" : "FabricIngress.acl.punt_to_cpu",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002503 "id" : 26,
Charles Chancd03f072018-08-31 17:46:37 -07002504 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002505 "primitives" : [
2506 {
2507 "op" : "assign",
2508 "parameters" : [
2509 {
2510 "type" : "field",
2511 "value" : ["standard_metadata", "egress_spec"]
2512 },
2513 {
2514 "type" : "hexstr",
2515 "value" : "0x00ff"
2516 }
2517 ],
2518 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002519 "filename" : "include/control/acl.p4",
2520 "line" : 39,
Carmelo Casconeb531b682018-01-30 17:55:56 -08002521 "column" : 8,
2522 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002523 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002524 },
2525 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002526 "op" : "assign",
2527 "parameters" : [
2528 {
2529 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002530 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002531 },
2532 {
2533 "type" : "expression",
2534 "value" : {
2535 "type" : "expression",
2536 "value" : {
2537 "op" : "b2d",
2538 "left" : null,
2539 "right" : {
2540 "type" : "bool",
2541 "value" : true
2542 }
2543 }
2544 }
2545 }
2546 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002547 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002548 "filename" : "include/control/acl.p4",
2549 "line" : 40,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002550 "column" : 34,
2551 "source_fragment" : "= true; ..."
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002552 }
2553 }
2554 ]
2555 },
2556 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002557 "name" : "FabricIngress.acl.set_clone_session_id",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002558 "id" : 27,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002559 "runtime_data" : [
2560 {
2561 "name" : "clone_id",
2562 "bitwidth" : 32
2563 }
2564 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002565 "primitives" : [
2566 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002567 "op" : "clone_ingress_pkt_to_egress",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002568 "parameters" : [
2569 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002570 "type" : "runtime_data",
2571 "value" : 0
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002572 },
2573 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002574 "type" : "hexstr",
2575 "value" : "0x1"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002576 }
2577 ],
2578 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002579 "filename" : "include/control/acl.p4",
2580 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002581 "column" : 8,
Daniele Moro3b7a21b2019-06-25 17:33:40 -07002582 "source_fragment" : "clone3(CloneType.I2E, clone_id, {standard_metadata.ingress_port})"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002583 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002584 }
2585 ]
2586 },
2587 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002588 "name" : "FabricIngress.acl.drop",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002589 "id" : 28,
Yi Tseng47eac892018-07-11 02:17:04 +08002590 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002591 "primitives" : [
2592 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002593 "op" : "mark_to_drop",
2594 "parameters" : [
2595 {
2596 "type" : "header",
2597 "value" : "standard_metadata"
2598 }
2599 ],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002600 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002601 "filename" : "include/control/acl.p4",
2602 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002603 "column" : 8,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002604 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002605 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002606 },
2607 {
2608 "op" : "assign",
2609 "parameters" : [
2610 {
2611 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002612 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002613 },
2614 {
2615 "type" : "expression",
2616 "value" : {
2617 "type" : "expression",
2618 "value" : {
2619 "op" : "b2d",
2620 "left" : null,
2621 "right" : {
2622 "type" : "bool",
2623 "value" : true
2624 }
2625 }
2626 }
2627 }
2628 ],
2629 "source_info" : {
2630 "filename" : "include/control/acl.p4",
2631 "line" : 52,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002632 "column" : 34,
2633 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002634 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002635 }
2636 ]
2637 },
2638 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002639 "name" : "FabricIngress.acl.nop_acl",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002640 "id" : 29,
Charles Chancf696e52018-08-16 16:25:13 -07002641 "runtime_data" : [],
2642 "primitives" : []
2643 },
2644 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002645 "name" : "FabricIngress.next.set_vlan",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002646 "id" : 30,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002647 "runtime_data" : [
2648 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002649 "name" : "vlan_id",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002650 "bitwidth" : 12
2651 }
2652 ],
2653 "primitives" : [
2654 {
2655 "op" : "assign",
2656 "parameters" : [
2657 {
2658 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002659 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002660 },
2661 {
2662 "type" : "runtime_data",
2663 "value" : 0
2664 }
2665 ],
2666 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002667 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002668 "line" : 70,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002669 "column" : 32,
2670 "source_fragment" : "= vlan_id; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002671 }
2672 }
2673 ]
2674 },
2675 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002676 "name" : "FabricIngress.next.output_xconnect",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002677 "id" : 31,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002678 "runtime_data" : [
2679 {
2680 "name" : "port_num",
2681 "bitwidth" : 9
2682 }
2683 ],
2684 "primitives" : [
2685 {
2686 "op" : "assign",
2687 "parameters" : [
2688 {
2689 "type" : "field",
2690 "value" : ["standard_metadata", "egress_spec"]
2691 },
2692 {
2693 "type" : "runtime_data",
2694 "value" : 0
2695 }
2696 ],
2697 "source_info" : {
2698 "filename" : "include/control/next.p4",
2699 "line" : 31,
2700 "column" : 5,
2701 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2702 }
2703 }
2704 ]
2705 },
2706 {
2707 "name" : "FabricIngress.next.set_next_id_xconnect",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002708 "id" : 32,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002709 "runtime_data" : [
2710 {
2711 "name" : "next_id",
2712 "bitwidth" : 32
2713 }
2714 ],
2715 "primitives" : [
2716 {
2717 "op" : "assign",
2718 "parameters" : [
2719 {
2720 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002721 "value" : ["scalars", "fabric_metadata_t._next_id9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002722 },
2723 {
2724 "type" : "runtime_data",
2725 "value" : 0
2726 }
2727 ],
2728 "source_info" : {
2729 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002730 "line" : 115,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002731 "column" : 32,
2732 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002733 }
2734 }
2735 ]
2736 },
2737 {
2738 "name" : "FabricIngress.next.output_hashed",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002739 "id" : 33,
Yi Tseng47eac892018-07-11 02:17:04 +08002740 "runtime_data" : [
2741 {
2742 "name" : "port_num",
2743 "bitwidth" : 9
2744 }
2745 ],
2746 "primitives" : [
2747 {
2748 "op" : "assign",
2749 "parameters" : [
2750 {
2751 "type" : "field",
2752 "value" : ["standard_metadata", "egress_spec"]
2753 },
2754 {
2755 "type" : "runtime_data",
2756 "value" : 0
2757 }
2758 ],
2759 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002760 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002761 "line" : 31,
2762 "column" : 5,
2763 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng47eac892018-07-11 02:17:04 +08002764 }
2765 }
2766 ]
2767 },
2768 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002769 "name" : "FabricIngress.next.routing_hashed",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002770 "id" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002771 "runtime_data" : [
2772 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002773 "name" : "port_num",
2774 "bitwidth" : 9
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002775 },
2776 {
2777 "name" : "smac",
2778 "bitwidth" : 48
2779 },
2780 {
2781 "name" : "dmac",
2782 "bitwidth" : 48
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002783 }
2784 ],
2785 "primitives" : [
2786 {
2787 "op" : "assign",
2788 "parameters" : [
2789 {
2790 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002791 "value" : ["ethernet", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002792 },
2793 {
2794 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002795 "value" : 1
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002796 }
2797 ],
2798 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002799 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002800 "line" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002801 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002802 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2803 }
2804 },
2805 {
2806 "op" : "assign",
2807 "parameters" : [
2808 {
2809 "type" : "field",
2810 "value" : ["ethernet", "dst_addr"]
2811 },
2812 {
2813 "type" : "runtime_data",
2814 "value" : 2
2815 }
2816 ],
2817 "source_info" : {
2818 "filename" : "include/control/next.p4",
2819 "line" : 41,
2820 "column" : 8,
2821 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002822 }
2823 },
2824 {
2825 "op" : "assign",
2826 "parameters" : [
2827 {
2828 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002829 "value" : ["standard_metadata", "egress_spec"]
2830 },
2831 {
2832 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002833 "value" : 0
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002834 }
2835 ],
2836 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002837 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002838 "line" : 31,
2839 "column" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002840 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2841 }
2842 }
2843 ]
2844 },
2845 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002846 "name" : "FabricIngress.next.mpls_routing_hashed",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002847 "id" : 35,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002848 "runtime_data" : [
2849 {
2850 "name" : "port_num",
2851 "bitwidth" : 9
2852 },
2853 {
2854 "name" : "smac",
2855 "bitwidth" : 48
2856 },
2857 {
2858 "name" : "dmac",
2859 "bitwidth" : 48
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002860 },
2861 {
2862 "name" : "label",
2863 "bitwidth" : 20
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002864 }
2865 ],
2866 "primitives" : [
2867 {
2868 "op" : "assign",
2869 "parameters" : [
2870 {
2871 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002872 "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002873 },
2874 {
2875 "type" : "runtime_data",
2876 "value" : 3
2877 }
2878 ],
2879 "source_info" : {
2880 "filename" : "include/control/next.p4",
2881 "line" : 46,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002882 "column" : 35,
2883 "source_fragment" : "= label; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002884 }
2885 },
2886 {
2887 "op" : "assign",
2888 "parameters" : [
2889 {
2890 "type" : "field",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002891 "value" : ["ethernet", "src_addr"]
2892 },
2893 {
2894 "type" : "runtime_data",
2895 "value" : 1
2896 }
2897 ],
2898 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002899 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002900 "line" : 36,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002901 "column" : 8,
2902 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2903 }
2904 },
2905 {
2906 "op" : "assign",
2907 "parameters" : [
2908 {
2909 "type" : "field",
2910 "value" : ["ethernet", "dst_addr"]
2911 },
2912 {
2913 "type" : "runtime_data",
2914 "value" : 2
2915 }
2916 ],
2917 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002918 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002919 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002920 "column" : 8,
2921 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2922 }
2923 },
2924 {
2925 "op" : "assign",
2926 "parameters" : [
2927 {
2928 "type" : "field",
2929 "value" : ["standard_metadata", "egress_spec"]
2930 },
2931 {
2932 "type" : "runtime_data",
2933 "value" : 0
2934 }
2935 ],
2936 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002937 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002938 "line" : 31,
2939 "column" : 5,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002940 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2941 }
2942 }
2943 ]
2944 },
2945 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002946 "name" : "FabricIngress.next.set_mcast_group_id",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04002947 "id" : 36,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002948 "runtime_data" : [
2949 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002950 "name" : "group_id",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002951 "bitwidth" : 16
2952 }
2953 ],
2954 "primitives" : [
2955 {
2956 "op" : "assign",
2957 "parameters" : [
2958 {
2959 "type" : "field",
2960 "value" : ["standard_metadata", "mcast_grp"]
2961 },
2962 {
2963 "type" : "runtime_data",
2964 "value" : 0
2965 }
2966 ],
2967 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002968 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002969 "line" : 231,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002970 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002971 "source_fragment" : "standard_metadata.mcast_grp = group_id"
Esin Karaman971fb7f2017-12-28 13:44:52 +00002972 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002973 },
2974 {
2975 "op" : "assign",
2976 "parameters" : [
2977 {
2978 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002979 "value" : ["scalars", "fabric_metadata_t._is_multicast10"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002980 },
2981 {
2982 "type" : "expression",
2983 "value" : {
2984 "type" : "expression",
2985 "value" : {
2986 "op" : "b2d",
2987 "left" : null,
2988 "right" : {
2989 "type" : "bool",
2990 "value" : true
2991 }
2992 }
2993 }
2994 }
2995 ],
2996 "source_info" : {
2997 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002998 "line" : 232,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002999 "column" : 37,
3000 "source_fragment" : "= true; ..."
Carmelo Casconea5400af2018-07-17 22:11:54 +02003001 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00003002 }
3003 ]
3004 },
3005 {
3006 "name" : "act",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003007 "id" : 37,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003008 "runtime_data" : [],
3009 "primitives" : [
3010 {
3011 "op" : "assign",
3012 "parameters" : [
3013 {
3014 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003015 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003016 },
3017 {
3018 "type" : "expression",
3019 "value" : {
3020 "type" : "expression",
3021 "value" : {
3022 "op" : "b2d",
3023 "left" : null,
3024 "right" : {
3025 "type" : "bool",
3026 "value" : true
3027 }
3028 }
3029 }
3030 }
3031 ],
3032 "source_info" : {
3033 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003034 "line" : 34,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003035 "column" : 32,
3036 "source_fragment" : "return"
3037 }
3038 }
3039 ]
3040 },
3041 {
3042 "name" : "act_0",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003043 "id" : 38,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003044 "runtime_data" : [],
3045 "primitives" : [
3046 {
3047 "op" : "remove_header",
3048 "parameters" : [
3049 {
3050 "type" : "header",
3051 "value" : "gtpu_ipv4"
3052 }
3053 ],
3054 "source_info" : {
3055 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003056 "line" : 62,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003057 "column" : 50,
3058 "source_fragment" : "hdr.gtpu_ipv4"
3059 }
3060 },
3061 {
3062 "op" : "remove_header",
3063 "parameters" : [
3064 {
3065 "type" : "header",
3066 "value" : "gtpu_udp"
3067 }
3068 ],
3069 "source_info" : {
3070 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003071 "line" : 62,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003072 "column" : 65,
3073 "source_fragment" : "hdr.gtpu_udp"
3074 }
3075 },
3076 {
3077 "op" : "assign",
3078 "parameters" : [
3079 {
3080 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003081 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003082 },
3083 {
3084 "type" : "expression",
3085 "value" : {
3086 "type" : "expression",
3087 "value" : {
3088 "op" : "b2d",
3089 "left" : null,
3090 "right" : {
3091 "type" : "bool",
3092 "value" : false
3093 }
3094 }
3095 }
3096 }
3097 ]
3098 }
3099 ]
3100 },
3101 {
3102 "name" : "act_1",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003103 "id" : 39,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003104 "runtime_data" : [],
3105 "primitives" : [
3106 {
3107 "op" : "assign_header",
3108 "parameters" : [
3109 {
3110 "type" : "header",
3111 "value" : "udp"
3112 },
3113 {
3114 "type" : "header",
3115 "value" : "inner_udp"
3116 }
3117 ],
3118 "source_info" : {
3119 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003120 "line" : 39,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003121 "column" : 16,
3122 "source_fragment" : "= inner_udp; ..."
3123 }
3124 }
3125 ]
3126 },
3127 {
3128 "name" : "act_2",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003129 "id" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003130 "runtime_data" : [],
3131 "primitives" : [
3132 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003133 "op" : "remove_header",
3134 "parameters" : [
3135 {
3136 "type" : "header",
3137 "value" : "udp"
3138 }
3139 ],
3140 "source_info" : {
3141 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003142 "line" : 41,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003143 "column" : 12,
3144 "source_fragment" : "udp.setInvalid()"
3145 }
3146 }
3147 ]
3148 },
3149 {
3150 "name" : "act_3",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003151 "id" : 41,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003152 "runtime_data" : [],
3153 "primitives" : [
3154 {
3155 "op" : "assign_header",
3156 "parameters" : [
3157 {
3158 "type" : "header",
3159 "value" : "gtpu_ipv4"
3160 },
3161 {
3162 "type" : "header",
3163 "value" : "ipv4"
3164 }
3165 ],
3166 "source_info" : {
3167 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003168 "line" : 35,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003169 "column" : 18,
3170 "source_fragment" : "= ipv4; ..."
3171 }
3172 },
3173 {
3174 "op" : "assign_header",
3175 "parameters" : [
3176 {
3177 "type" : "header",
3178 "value" : "ipv4"
3179 },
3180 {
3181 "type" : "header",
3182 "value" : "inner_ipv4"
3183 }
3184 ],
3185 "source_info" : {
3186 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003187 "line" : 36,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003188 "column" : 13,
3189 "source_fragment" : "= inner_ipv4; ..."
3190 }
3191 },
3192 {
3193 "op" : "assign_header",
3194 "parameters" : [
3195 {
3196 "type" : "header",
3197 "value" : "gtpu_udp"
3198 },
3199 {
3200 "type" : "header",
3201 "value" : "udp"
3202 }
3203 ],
3204 "source_info" : {
3205 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003206 "line" : 37,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003207 "column" : 17,
3208 "source_fragment" : "= udp; ..."
3209 }
3210 }
3211 ]
3212 },
3213 {
3214 "name" : "act_4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003215 "id" : 42,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003216 "runtime_data" : [],
3217 "primitives" : [
3218 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003219 "op" : "assign",
3220 "parameters" : [
3221 {
3222 "type" : "field",
3223 "value" : ["standard_metadata", "egress_spec"]
3224 },
3225 {
3226 "type" : "field",
3227 "value" : ["packet_out", "egress_port"]
3228 }
3229 ],
3230 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003231 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003232 "line" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003233 "column" : 12,
3234 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
3235 }
3236 },
3237 {
3238 "op" : "remove_header",
3239 "parameters" : [
3240 {
3241 "type" : "header",
3242 "value" : "packet_out"
3243 }
3244 ],
3245 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003246 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003247 "line" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003248 "column" : 12,
3249 "source_fragment" : "hdr.packet_out.setInvalid()"
3250 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003251 },
3252 {
3253 "op" : "assign",
3254 "parameters" : [
3255 {
3256 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003257 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out11"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003258 },
3259 {
3260 "type" : "expression",
3261 "value" : {
3262 "type" : "expression",
3263 "value" : {
3264 "op" : "b2d",
3265 "left" : null,
3266 "right" : {
3267 "type" : "bool",
3268 "value" : true
3269 }
3270 }
3271 }
3272 }
3273 ],
3274 "source_info" : {
3275 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003276 "line" : 27,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003277 "column" : 53,
3278 "source_fragment" : "= true; ..."
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003279 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003280 },
3281 {
3282 "op" : "exit",
3283 "parameters" : [],
3284 "source_info" : {
3285 "filename" : "include/control/packetio.p4",
3286 "line" : 29,
3287 "column" : 12,
3288 "source_fragment" : "exit"
3289 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003290 }
3291 ]
3292 },
3293 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003294 "name" : "act_5",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003295 "id" : 43,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003296 "runtime_data" : [],
3297 "primitives" : [
3298 {
3299 "op" : "assign",
3300 "parameters" : [
3301 {
3302 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003303 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003304 },
3305 {
3306 "type" : "field",
3307 "value" : ["vlan_tag", "vlan_id"]
3308 }
3309 ],
3310 "source_info" : {
3311 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003312 "line" : 111,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003313 "column" : 36,
3314 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003315 }
3316 },
3317 {
3318 "op" : "assign",
3319 "parameters" : [
3320 {
3321 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003322 "value" : ["scalars", "fabric_metadata_t._vlan_pri2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003323 },
3324 {
3325 "type" : "field",
3326 "value" : ["vlan_tag", "pri"]
3327 }
3328 ],
3329 "source_info" : {
3330 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003331 "line" : 112,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003332 "column" : 37,
3333 "source_fragment" : "= hdr.vlan_tag.pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003334 }
3335 },
3336 {
3337 "op" : "assign",
3338 "parameters" : [
3339 {
3340 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003341 "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003342 },
3343 {
3344 "type" : "field",
3345 "value" : ["vlan_tag", "cfi"]
3346 }
3347 ],
3348 "source_info" : {
3349 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003350 "line" : 113,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003351 "column" : 37,
3352 "source_fragment" : "= hdr.vlan_tag.cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003353 }
3354 }
3355 ]
3356 },
3357 {
3358 "name" : "act_6",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003359 "id" : 44,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003360 "runtime_data" : [],
3361 "primitives" : [
3362 {
3363 "op" : "assign",
3364 "parameters" : [
3365 {
3366 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003367 "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003368 },
3369 {
3370 "type" : "hexstr",
3371 "value" : "0x41"
3372 }
3373 ],
3374 "source_info" : {
3375 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003376 "line" : 127,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003377 "column" : 37,
3378 "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003379 }
3380 }
3381 ]
3382 },
3383 {
3384 "name" : "act_7",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003385 "id" : 45,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003386 "runtime_data" : [],
3387 "primitives" : [
3388 {
3389 "op" : "assign",
3390 "parameters" : [
3391 {
3392 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003393 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003394 },
3395 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003396 "type" : "expression",
3397 "value" : {
3398 "type" : "expression",
3399 "value" : {
3400 "op" : "b2d",
3401 "left" : null,
3402 "right" : {
3403 "type" : "bool",
3404 "value" : true
3405 }
3406 }
3407 }
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003408 }
Daniele Moro5a2de712019-09-24 14:34:07 -07003409 ]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003410 }
3411 ]
3412 },
3413 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003414 "name" : "act_8",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003415 "id" : 46,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003416 "runtime_data" : [],
3417 "primitives" : [
3418 {
3419 "op" : "assign",
3420 "parameters" : [
3421 {
3422 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003423 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003424 },
3425 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003426 "type" : "expression",
3427 "value" : {
3428 "type" : "expression",
3429 "value" : {
3430 "op" : "b2d",
3431 "left" : null,
3432 "right" : {
3433 "type" : "bool",
3434 "value" : false
3435 }
3436 }
3437 }
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003438 }
Daniele Moro5a2de712019-09-24 14:34:07 -07003439 ]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003440 }
3441 ]
3442 },
3443 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003444 "name" : "act_9",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003445 "id" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003446 "runtime_data" : [],
3447 "primitives" : [
3448 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003449 "op" : "mark_to_drop",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003450 "parameters" : [
3451 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003452 "type" : "header",
3453 "value" : "standard_metadata"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003454 }
3455 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003456 "source_info" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003457 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003458 "line" : 187,
Daniele Moro5a2de712019-09-24 14:34:07 -07003459 "column" : 16,
3460 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003461 }
3462 }
3463 ]
3464 },
3465 {
3466 "name" : "act_10",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003467 "id" : 48,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003468 "runtime_data" : [],
3469 "primitives" : [
3470 {
3471 "op" : "assign",
3472 "parameters" : [
3473 {
3474 "type" : "field",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003475 "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003476 },
3477 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003478 "type" : "hexstr",
3479 "value" : "0x01"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003480 }
3481 ],
3482 "source_info" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003483 "filename" : "include/control/../define.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003484 "line" : 150,
Daniele Moro5a2de712019-09-24 14:34:07 -07003485 "column" : 36,
3486 "source_fragment" : "2w1; ..."
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003487 }
3488 }
3489 ]
3490 },
3491 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003492 "name" : "act_11",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003493 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003494 "runtime_data" : [],
3495 "primitives" : [
3496 {
3497 "op" : "assign",
3498 "parameters" : [
3499 {
3500 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003501 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003502 },
3503 {
3504 "type" : "expression",
3505 "value" : {
3506 "type" : "expression",
3507 "value" : {
3508 "op" : "b2d",
3509 "left" : null,
3510 "right" : {
3511 "type" : "bool",
3512 "value" : true
3513 }
3514 }
3515 }
3516 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003517 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003518 }
3519 ]
3520 },
3521 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003522 "name" : "act_12",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003523 "id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003524 "runtime_data" : [],
3525 "primitives" : [
3526 {
3527 "op" : "assign",
3528 "parameters" : [
3529 {
3530 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003531 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003532 },
3533 {
3534 "type" : "expression",
3535 "value" : {
3536 "type" : "expression",
3537 "value" : {
3538 "op" : "b2d",
3539 "left" : null,
3540 "right" : {
3541 "type" : "bool",
3542 "value" : false
3543 }
3544 }
3545 }
3546 }
3547 ]
3548 }
3549 ]
3550 },
3551 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003552 "name" : "act_13",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003553 "id" : 51,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003554 "runtime_data" : [],
3555 "primitives" : [
3556 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003557 "op" : "assign",
Daniele Moro7c3a0022019-07-12 13:38:34 -07003558 "parameters" : [
3559 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003560 "type" : "field",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003561 "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
Daniele Moro5a2de712019-09-24 14:34:07 -07003562 },
3563 {
3564 "type" : "hexstr",
3565 "value" : "0x02"
Daniele Moro7c3a0022019-07-12 13:38:34 -07003566 }
3567 ],
3568 "source_info" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003569 "filename" : "include/control/../define.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003570 "line" : 151,
Daniele Moro5a2de712019-09-24 14:34:07 -07003571 "column" : 38,
3572 "source_fragment" : "2w2; ..."
Daniele Moro7c3a0022019-07-12 13:38:34 -07003573 }
3574 }
3575 ]
3576 },
3577 {
3578 "name" : "act_14",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003579 "id" : 52,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003580 "runtime_data" : [],
3581 "primitives" : [
3582 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003583 "op" : "assign",
3584 "parameters" : [
3585 {
3586 "type" : "field",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003587 "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003588 },
3589 {
3590 "type" : "hexstr",
3591 "value" : "0x00"
3592 }
3593 ],
3594 "source_info" : {
3595 "filename" : "include/control/../define.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003596 "line" : 149,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003597 "column" : 37,
3598 "source_fragment" : "2w0; ..."
3599 }
3600 },
3601 {
3602 "op" : "assign",
3603 "parameters" : [
3604 {
3605 "type" : "field",
3606 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003607 },
3608 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003609 "type" : "expression",
3610 "value" : {
3611 "type" : "expression",
3612 "value" : {
3613 "op" : "b2d",
3614 "left" : null,
3615 "right" : {
3616 "type" : "bool",
3617 "value" : true
3618 }
3619 }
3620 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003621 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003622 ],
3623 "source_info" : {
3624 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003625 "line" : 196,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003626 "column" : 12,
3627 "source_fragment" : "return"
3628 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003629 }
3630 ]
3631 },
3632 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003633 "name" : "act_15",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003634 "id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003635 "runtime_data" : [],
3636 "primitives" : [
3637 {
3638 "op" : "assign",
3639 "parameters" : [
3640 {
3641 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003642 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003643 },
3644 {
3645 "type" : "expression",
3646 "value" : {
3647 "type" : "expression",
3648 "value" : {
3649 "op" : "b2d",
3650 "left" : null,
3651 "right" : {
3652 "type" : "bool",
3653 "value" : false
3654 }
3655 }
3656 }
3657 }
3658 ]
3659 }
3660 ]
3661 },
3662 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003663 "name" : "act_16",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003664 "id" : 54,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003665 "runtime_data" : [],
3666 "primitives" : [
3667 {
3668 "op" : "assign",
3669 "parameters" : [
3670 {
3671 "type" : "field",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003672 "value" : ["scalars", "spgw_ingress_hasReturned"]
3673 },
3674 {
3675 "type" : "expression",
3676 "value" : {
3677 "type" : "expression",
3678 "value" : {
3679 "op" : "b2d",
3680 "left" : null,
3681 "right" : {
3682 "type" : "bool",
3683 "value" : true
3684 }
3685 }
3686 }
3687 }
3688 ],
3689 "source_info" : {
3690 "filename" : "include/spgw.p4",
3691 "line" : 206,
3692 "column" : 12,
3693 "source_fragment" : "return"
3694 }
3695 }
3696 ]
3697 },
3698 {
3699 "name" : "act_17",
3700 "id" : 55,
3701 "runtime_data" : [],
3702 "primitives" : [
3703 {
3704 "op" : "count",
3705 "parameters" : [
3706 {
3707 "type" : "counter_array",
3708 "value" : "FabricIngress.spgw_ingress.pdr_counter"
3709 },
3710 {
3711 "type" : "field",
3712 "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id22"]
3713 }
3714 ],
3715 "source_info" : {
3716 "filename" : "include/spgw.p4",
3717 "line" : 213,
3718 "column" : 8,
3719 "source_fragment" : "pdr_counter.count(fabric_meta.spgw.ctr_id)"
3720 }
3721 }
3722 ]
3723 },
3724 {
3725 "name" : "act_18",
3726 "id" : 56,
3727 "runtime_data" : [],
3728 "primitives" : [
3729 {
3730 "op" : "assign",
3731 "parameters" : [
3732 {
3733 "type" : "field",
3734 "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
3735 },
3736 {
3737 "type" : "expression",
3738 "value" : {
3739 "type" : "expression",
3740 "value" : {
3741 "op" : "b2d",
3742 "left" : null,
3743 "right" : {
3744 "type" : "bool",
3745 "value" : true
3746 }
3747 }
3748 }
3749 }
3750 ],
3751 "source_info" : {
3752 "filename" : "include/spgw.p4",
3753 "line" : 223,
3754 "column" : 40,
3755 "source_fragment" : "= true; ..."
3756 }
3757 },
3758 {
3759 "op" : "assign",
3760 "parameters" : [
3761 {
3762 "type" : "field",
3763 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
3764 },
3765 {
3766 "type" : "expression",
3767 "value" : {
3768 "type" : "expression",
3769 "value" : {
3770 "op" : "b2d",
3771 "left" : null,
3772 "right" : {
3773 "type" : "bool",
3774 "value" : true
3775 }
3776 }
3777 }
3778 }
3779 ],
3780 "source_info" : {
3781 "filename" : "include/spgw.p4",
3782 "line" : 224,
3783 "column" : 34,
3784 "source_fragment" : "= true; ..."
3785 }
3786 }
3787 ]
3788 },
3789 {
3790 "name" : "act_19",
3791 "id" : 57,
3792 "runtime_data" : [],
3793 "primitives" : [
3794 {
3795 "op" : "assign",
3796 "parameters" : [
3797 {
3798 "type" : "field",
3799 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len18"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003800 },
3801 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003802 "type" : "field",
3803 "value" : ["ipv4", "total_len"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003804 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003805 ],
3806 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003807 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003808 "line" : 232,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003809 "column" : 34,
3810 "source_fragment" : "= ipv4.total_len; ..."
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003811 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003812 }
3813 ]
3814 },
3815 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003816 "name" : "act_20",
3817 "id" : 58,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003818 "runtime_data" : [],
3819 "primitives" : [
3820 {
3821 "op" : "assign",
3822 "parameters" : [
3823 {
3824 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003825 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003826 },
3827 {
3828 "type" : "expression",
3829 "value" : {
3830 "type" : "expression",
3831 "value" : {
3832 "op" : "&",
3833 "left" : {
3834 "type" : "field",
3835 "value" : ["standard_metadata", "egress_spec"]
3836 },
3837 "right" : {
3838 "type" : "hexstr",
3839 "value" : "0xffffffff"
3840 }
3841 }
3842 }
3843 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003844 ],
3845 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003846 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003847 "line" : 31,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003848 "column" : 38,
3849 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3850 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003851 },
3852 {
3853 "op" : "count",
3854 "parameters" : [
3855 {
3856 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003857 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003858 },
3859 {
3860 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003861 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003862 }
3863 ],
3864 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003865 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003866 "line" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003867 "column" : 12,
3868 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3869 }
3870 }
3871 ]
3872 },
3873 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003874 "name" : "act_21",
3875 "id" : 59,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003876 "runtime_data" : [],
3877 "primitives" : [
3878 {
3879 "op" : "assign",
3880 "parameters" : [
3881 {
3882 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003883 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003884 },
3885 {
3886 "type" : "expression",
3887 "value" : {
3888 "type" : "expression",
3889 "value" : {
3890 "op" : "&",
3891 "left" : {
3892 "type" : "field",
3893 "value" : ["standard_metadata", "ingress_port"]
3894 },
3895 "right" : {
3896 "type" : "hexstr",
3897 "value" : "0xffffffff"
3898 }
3899 }
3900 }
3901 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003902 ],
3903 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003904 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003905 "line" : 34,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003906 "column" : 39,
3907 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3908 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003909 },
3910 {
3911 "op" : "count",
3912 "parameters" : [
3913 {
3914 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003915 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003916 },
3917 {
3918 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003919 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003920 }
3921 ],
3922 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003923 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003924 "line" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003925 "column" : 12,
3926 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3927 }
3928 }
3929 ]
3930 },
3931 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003932 "name" : "nop",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003933 "id" : 60,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003934 "runtime_data" : [],
Charles Chancd03f072018-08-31 17:46:37 -07003935 "primitives" : []
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003936 },
3937 {
Charles Chancd03f072018-08-31 17:46:37 -07003938 "name" : "FabricEgress.spgw_egress.gtpu_encap",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003939 "id" : 61,
Charles Chancd03f072018-08-31 17:46:37 -07003940 "runtime_data" : [],
3941 "primitives" : [
3942 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003943 "op" : "add_header",
3944 "parameters" : [
3945 {
3946 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003947 "value" : "gtpu_ipv4"
3948 }
3949 ],
3950 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003951 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003952 "line" : 251,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003953 "column" : 8,
3954 "source_fragment" : "gtpu_ipv4.setValid()"
3955 }
3956 },
3957 {
3958 "op" : "assign",
3959 "parameters" : [
3960 {
3961 "type" : "field",
3962 "value" : ["gtpu_ipv4", "version"]
3963 },
3964 {
3965 "type" : "hexstr",
3966 "value" : "0x04"
3967 }
3968 ],
3969 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003970 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003971 "line" : 252,
Yi Tseng3d3956d2018-01-31 17:28:05 -08003972 "column" : 8,
3973 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003974 }
3975 },
3976 {
3977 "op" : "assign",
3978 "parameters" : [
3979 {
3980 "type" : "field",
3981 "value" : ["gtpu_ipv4", "ihl"]
3982 },
3983 {
3984 "type" : "hexstr",
3985 "value" : "0x05"
3986 }
3987 ],
3988 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003989 "filename" : "include/control/../define.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003990 "line" : 132,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003991 "column" : 28,
3992 "source_fragment" : "5; ..."
3993 }
3994 },
3995 {
3996 "op" : "assign",
3997 "parameters" : [
3998 {
3999 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004000 "value" : ["gtpu_ipv4", "dscp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004001 },
4002 {
4003 "type" : "hexstr",
4004 "value" : "0x00"
4005 }
4006 ],
4007 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004008 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004009 "line" : 254,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004010 "column" : 8,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004011 "source_fragment" : "gtpu_ipv4.dscp = 0"
4012 }
4013 },
4014 {
4015 "op" : "assign",
4016 "parameters" : [
4017 {
4018 "type" : "field",
4019 "value" : ["gtpu_ipv4", "ecn"]
4020 },
4021 {
4022 "type" : "hexstr",
4023 "value" : "0x00"
4024 }
4025 ],
4026 "source_info" : {
4027 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004028 "line" : 255,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004029 "column" : 8,
4030 "source_fragment" : "gtpu_ipv4.ecn = 0"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004031 }
4032 },
4033 {
4034 "op" : "assign",
4035 "parameters" : [
4036 {
4037 "type" : "field",
4038 "value" : ["gtpu_ipv4", "total_len"]
4039 },
4040 {
4041 "type" : "expression",
4042 "value" : {
4043 "type" : "expression",
4044 "value" : {
4045 "op" : "&",
4046 "left" : {
4047 "type" : "expression",
4048 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004049 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004050 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004051 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004052 "value" : ["ipv4", "total_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004053 },
4054 "right" : {
4055 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004056 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004057 }
4058 }
4059 },
4060 "right" : {
4061 "type" : "hexstr",
4062 "value" : "0xffff"
4063 }
4064 }
4065 }
4066 }
4067 ],
4068 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004069 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004070 "line" : 256,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004071 "column" : 8,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004072 "source_fragment" : "gtpu_ipv4.total_len = ipv4.total_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08004073 }
4074 },
4075 {
4076 "op" : "assign",
4077 "parameters" : [
4078 {
4079 "type" : "field",
4080 "value" : ["gtpu_ipv4", "identification"]
4081 },
4082 {
4083 "type" : "hexstr",
4084 "value" : "0x1513"
4085 }
4086 ],
4087 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004088 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004089 "line" : 258,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004090 "column" : 8,
4091 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
4092 }
4093 },
4094 {
4095 "op" : "assign",
4096 "parameters" : [
4097 {
4098 "type" : "field",
4099 "value" : ["gtpu_ipv4", "flags"]
4100 },
4101 {
4102 "type" : "hexstr",
4103 "value" : "0x00"
4104 }
4105 ],
4106 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004107 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004108 "line" : 259,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004109 "column" : 8,
4110 "source_fragment" : "gtpu_ipv4.flags = 0"
4111 }
4112 },
4113 {
4114 "op" : "assign",
4115 "parameters" : [
4116 {
4117 "type" : "field",
4118 "value" : ["gtpu_ipv4", "frag_offset"]
4119 },
4120 {
4121 "type" : "hexstr",
4122 "value" : "0x0000"
4123 }
4124 ],
4125 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004126 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004127 "line" : 260,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004128 "column" : 8,
4129 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
4130 }
4131 },
4132 {
4133 "op" : "assign",
4134 "parameters" : [
4135 {
4136 "type" : "field",
4137 "value" : ["gtpu_ipv4", "ttl"]
4138 },
4139 {
4140 "type" : "hexstr",
4141 "value" : "0x40"
4142 }
4143 ],
4144 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004145 "filename" : "include/control/../define.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004146 "line" : 145,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004147 "column" : 32,
4148 "source_fragment" : "64; ..."
4149 }
4150 },
4151 {
4152 "op" : "assign",
4153 "parameters" : [
4154 {
4155 "type" : "field",
4156 "value" : ["gtpu_ipv4", "protocol"]
4157 },
4158 {
4159 "type" : "hexstr",
4160 "value" : "0x11"
4161 }
4162 ],
4163 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004164 "filename" : "include/control/../define.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004165 "line" : 129,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004166 "column" : 25,
4167 "source_fragment" : "17; ..."
4168 }
4169 },
4170 {
4171 "op" : "assign",
4172 "parameters" : [
4173 {
4174 "type" : "field",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004175 "value" : ["gtpu_ipv4", "src_addr"]
4176 },
4177 {
4178 "type" : "field",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004179 "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_src_addr20"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004180 }
4181 ],
4182 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004183 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004184 "line" : 263,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004185 "column" : 8,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004186 "source_fragment" : "gtpu_ipv4.src_addr = fabric_meta.spgw.tunnel_src_addr; ..."
4187 }
4188 },
4189 {
4190 "op" : "assign",
4191 "parameters" : [
4192 {
4193 "type" : "field",
4194 "value" : ["gtpu_ipv4", "dst_addr"]
4195 },
4196 {
4197 "type" : "field",
4198 "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_dst_addr21"]
4199 }
4200 ],
4201 "source_info" : {
4202 "filename" : "include/spgw.p4",
4203 "line" : 264,
4204 "column" : 8,
4205 "source_fragment" : "gtpu_ipv4.dst_addr = fabric_meta.spgw.tunnel_dst_addr; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08004206 }
4207 },
4208 {
4209 "op" : "assign",
4210 "parameters" : [
4211 {
4212 "type" : "field",
4213 "value" : ["gtpu_ipv4", "hdr_checksum"]
4214 },
4215 {
4216 "type" : "hexstr",
4217 "value" : "0x0000"
4218 }
4219 ],
4220 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004221 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004222 "line" : 265,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004223 "column" : 8,
4224 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
4225 }
4226 },
4227 {
4228 "op" : "add_header",
4229 "parameters" : [
4230 {
4231 "type" : "header",
4232 "value" : "gtpu_udp"
4233 }
4234 ],
4235 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004236 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004237 "line" : 267,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004238 "column" : 8,
4239 "source_fragment" : "gtpu_udp.setValid()"
4240 }
4241 },
4242 {
4243 "op" : "assign",
4244 "parameters" : [
4245 {
4246 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004247 "value" : ["gtpu_udp", "sport"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004248 },
4249 {
4250 "type" : "hexstr",
4251 "value" : "0x0868"
4252 }
4253 ],
4254 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004255 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004256 "line" : 268,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004257 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004258 "source_fragment" : "gtpu_udp.sport = 2152"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004259 }
4260 },
4261 {
4262 "op" : "assign",
4263 "parameters" : [
4264 {
4265 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004266 "value" : ["gtpu_udp", "dport"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004267 },
4268 {
4269 "type" : "hexstr",
4270 "value" : "0x0868"
4271 }
4272 ],
4273 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004274 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004275 "line" : 269,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004276 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004277 "source_fragment" : "gtpu_udp.dport = 2152"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004278 }
4279 },
4280 {
4281 "op" : "assign",
4282 "parameters" : [
4283 {
4284 "type" : "field",
4285 "value" : ["gtpu_udp", "len"]
4286 },
4287 {
4288 "type" : "expression",
4289 "value" : {
4290 "type" : "expression",
4291 "value" : {
4292 "op" : "&",
4293 "left" : {
4294 "type" : "expression",
4295 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004296 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004297 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004298 "type" : "field",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004299 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len18"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004300 },
4301 "right" : {
4302 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004303 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004304 }
4305 }
4306 },
4307 "right" : {
4308 "type" : "hexstr",
4309 "value" : "0xffff"
4310 }
4311 }
4312 }
4313 }
4314 ],
4315 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004316 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004317 "line" : 270,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004318 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004319 "source_fragment" : "gtpu_udp.len = fabric_meta.spgw.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004320 }
4321 },
4322 {
4323 "op" : "assign",
4324 "parameters" : [
4325 {
4326 "type" : "field",
4327 "value" : ["gtpu_udp", "checksum"]
4328 },
4329 {
4330 "type" : "hexstr",
4331 "value" : "0x0000"
4332 }
4333 ],
4334 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004335 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004336 "line" : 272,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004337 "column" : 8,
4338 "source_fragment" : "gtpu_udp.checksum = 0"
4339 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08004340 },
4341 {
4342 "op" : "add_header",
4343 "parameters" : [
4344 {
4345 "type" : "header",
4346 "value" : "gtpu"
4347 }
4348 ],
4349 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004350 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004351 "line" : 275,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004352 "column" : 8,
4353 "source_fragment" : "gtpu.setValid()"
4354 }
4355 },
4356 {
4357 "op" : "assign",
4358 "parameters" : [
4359 {
4360 "type" : "field",
4361 "value" : ["gtpu", "version"]
4362 },
4363 {
4364 "type" : "hexstr",
4365 "value" : "0x01"
4366 }
4367 ],
4368 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004369 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004370 "line" : 276,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004371 "column" : 8,
4372 "source_fragment" : "gtpu.version = 0x01"
4373 }
4374 },
4375 {
4376 "op" : "assign",
4377 "parameters" : [
4378 {
4379 "type" : "field",
4380 "value" : ["gtpu", "pt"]
4381 },
4382 {
4383 "type" : "hexstr",
4384 "value" : "0x01"
4385 }
4386 ],
4387 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004388 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004389 "line" : 277,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004390 "column" : 8,
4391 "source_fragment" : "gtpu.pt = 0x01"
4392 }
4393 },
4394 {
4395 "op" : "assign",
4396 "parameters" : [
4397 {
4398 "type" : "field",
4399 "value" : ["gtpu", "spare"]
4400 },
4401 {
4402 "type" : "hexstr",
4403 "value" : "0x00"
4404 }
4405 ],
4406 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004407 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004408 "line" : 278,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004409 "column" : 8,
4410 "source_fragment" : "gtpu.spare = 0"
4411 }
4412 },
4413 {
4414 "op" : "assign",
4415 "parameters" : [
4416 {
4417 "type" : "field",
4418 "value" : ["gtpu", "ex_flag"]
4419 },
4420 {
4421 "type" : "hexstr",
4422 "value" : "0x00"
4423 }
4424 ],
4425 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004426 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004427 "line" : 279,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004428 "column" : 8,
4429 "source_fragment" : "gtpu.ex_flag = 0"
4430 }
4431 },
4432 {
4433 "op" : "assign",
4434 "parameters" : [
4435 {
4436 "type" : "field",
4437 "value" : ["gtpu", "seq_flag"]
4438 },
4439 {
4440 "type" : "hexstr",
4441 "value" : "0x00"
4442 }
4443 ],
4444 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004445 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004446 "line" : 280,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004447 "column" : 8,
4448 "source_fragment" : "gtpu.seq_flag = 0"
4449 }
4450 },
4451 {
4452 "op" : "assign",
4453 "parameters" : [
4454 {
4455 "type" : "field",
4456 "value" : ["gtpu", "npdu_flag"]
4457 },
4458 {
4459 "type" : "hexstr",
4460 "value" : "0x00"
4461 }
4462 ],
4463 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004464 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004465 "line" : 281,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004466 "column" : 8,
4467 "source_fragment" : "gtpu.npdu_flag = 0"
4468 }
4469 },
4470 {
4471 "op" : "assign",
4472 "parameters" : [
4473 {
4474 "type" : "field",
4475 "value" : ["gtpu", "msgtype"]
4476 },
4477 {
4478 "type" : "hexstr",
4479 "value" : "0xff"
4480 }
4481 ],
4482 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004483 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004484 "line" : 282,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004485 "column" : 8,
4486 "source_fragment" : "gtpu.msgtype = 0xff"
4487 }
4488 },
4489 {
4490 "op" : "assign",
4491 "parameters" : [
4492 {
4493 "type" : "field",
4494 "value" : ["gtpu", "msglen"]
4495 },
4496 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004497 "type" : "field",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004498 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len18"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004499 }
4500 ],
4501 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004502 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004503 "line" : 283,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004504 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004505 "source_fragment" : "gtpu.msglen = fabric_meta.spgw.ipv4_len; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08004506 }
4507 },
4508 {
4509 "op" : "assign",
4510 "parameters" : [
4511 {
4512 "type" : "field",
4513 "value" : ["gtpu", "teid"]
4514 },
4515 {
4516 "type" : "field",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004517 "value" : ["scalars", "fabric_metadata_t._spgw_teid19"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004518 }
4519 ],
4520 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004521 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004522 "line" : 284,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004523 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004524 "source_fragment" : "gtpu.teid = fabric_meta.spgw.teid; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08004525 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004526 }
4527 ]
4528 },
4529 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004530 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004531 "id" : 62,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004532 "runtime_data" : [],
4533 "primitives" : [
4534 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004535 "op" : "remove_header",
4536 "parameters" : [
4537 {
4538 "type" : "header",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004539 "value" : "mpls"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004540 }
4541 ],
4542 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004543 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004544 "line" : 270,
Yi Tseng47eac892018-07-11 02:17:04 +08004545 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004546 "source_fragment" : "hdr.mpls.setInvalid()"
Yi Tseng47eac892018-07-11 02:17:04 +08004547 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004548 },
Yi Tseng47eac892018-07-11 02:17:04 +08004549 {
4550 "op" : "assign",
4551 "parameters" : [
4552 {
4553 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004554 "value" : ["eth_type", "value"]
Yi Tseng47eac892018-07-11 02:17:04 +08004555 },
4556 {
4557 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004558 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004559 }
4560 ],
4561 "source_info" : {
4562 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004563 "line" : 272,
Daniele Moro5a2de712019-09-24 14:34:07 -07004564 "column" : 8,
4565 "source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004566 }
4567 }
4568 ]
4569 },
4570 {
4571 "name" : "FabricEgress.egress_next.set_mpls",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004572 "id" : 63,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004573 "runtime_data" : [],
4574 "primitives" : [
4575 {
4576 "op" : "add_header",
4577 "parameters" : [
4578 {
4579 "type" : "header",
4580 "value" : "mpls"
Yi Tseng47eac892018-07-11 02:17:04 +08004581 }
4582 ],
4583 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004584 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004585 "line" : 277,
Yi Tseng47eac892018-07-11 02:17:04 +08004586 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004587 "source_fragment" : "hdr.mpls.setValid()"
4588 }
4589 },
4590 {
4591 "op" : "assign",
4592 "parameters" : [
4593 {
4594 "type" : "field",
4595 "value" : ["mpls", "label"]
4596 },
4597 {
4598 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004599 "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004600 }
4601 ],
4602 "source_info" : {
4603 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004604 "line" : 278,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004605 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004606 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004607 }
4608 },
4609 {
4610 "op" : "assign",
4611 "parameters" : [
4612 {
4613 "type" : "field",
4614 "value" : ["mpls", "tc"]
4615 },
4616 {
4617 "type" : "hexstr",
4618 "value" : "0x00"
4619 }
4620 ],
4621 "source_info" : {
4622 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004623 "line" : 279,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004624 "column" : 8,
4625 "source_fragment" : "hdr.mpls.tc = 3w0"
4626 }
4627 },
4628 {
4629 "op" : "assign",
4630 "parameters" : [
4631 {
4632 "type" : "field",
4633 "value" : ["mpls", "bos"]
4634 },
4635 {
4636 "type" : "hexstr",
4637 "value" : "0x01"
4638 }
4639 ],
4640 "source_info" : {
4641 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004642 "line" : 280,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004643 "column" : 8,
4644 "source_fragment" : "hdr.mpls.bos = 1w1"
4645 }
4646 },
4647 {
4648 "op" : "assign",
4649 "parameters" : [
4650 {
4651 "type" : "field",
4652 "value" : ["mpls", "ttl"]
4653 },
4654 {
4655 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004656 "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004657 }
4658 ],
4659 "source_info" : {
4660 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004661 "line" : 281,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004662 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004663 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004664 }
4665 },
4666 {
4667 "op" : "assign",
4668 "parameters" : [
4669 {
4670 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004671 "value" : ["eth_type", "value"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004672 },
4673 {
4674 "type" : "hexstr",
4675 "value" : "0x8847"
4676 }
4677 ],
4678 "source_info" : {
4679 "filename" : "include/control/../define.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004680 "line" : 115,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004681 "column" : 31,
4682 "source_fragment" : "0x8847; ..."
4683 }
4684 }
4685 ]
4686 },
4687 {
4688 "name" : "FabricEgress.egress_next.push_vlan",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004689 "id" : 64,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004690 "runtime_data" : [],
4691 "primitives" : [
4692 {
4693 "op" : "add_header",
4694 "parameters" : [
4695 {
4696 "type" : "header",
4697 "value" : "vlan_tag"
4698 }
4699 ],
4700 "source_info" : {
4701 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004702 "line" : 289,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004703 "column" : 8,
4704 "source_fragment" : "hdr.vlan_tag.setValid()"
4705 }
4706 },
4707 {
4708 "op" : "assign",
4709 "parameters" : [
4710 {
4711 "type" : "field",
4712 "value" : ["vlan_tag", "cfi"]
4713 },
4714 {
4715 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004716 "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004717 }
4718 ],
4719 "source_info" : {
4720 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004721 "line" : 290,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004722 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004723 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004724 }
4725 },
4726 {
4727 "op" : "assign",
4728 "parameters" : [
4729 {
4730 "type" : "field",
4731 "value" : ["vlan_tag", "pri"]
4732 },
4733 {
4734 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004735 "value" : ["scalars", "fabric_metadata_t._vlan_pri2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004736 }
4737 ],
4738 "source_info" : {
4739 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004740 "line" : 291,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004741 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004742 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004743 }
4744 },
4745 {
4746 "op" : "assign",
4747 "parameters" : [
4748 {
4749 "type" : "field",
4750 "value" : ["vlan_tag", "eth_type"]
4751 },
4752 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004753 "type" : "hexstr",
4754 "value" : "0x8100"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004755 }
4756 ],
4757 "source_info" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004758 "filename" : "include/control/../define.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004759 "line" : 114,
Daniele Moro5a2de712019-09-24 14:34:07 -07004760 "column" : 31,
4761 "source_fragment" : "0x8100; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004762 }
4763 },
4764 {
4765 "op" : "assign",
4766 "parameters" : [
4767 {
4768 "type" : "field",
4769 "value" : ["vlan_tag", "vlan_id"]
4770 },
4771 {
4772 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004773 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004774 }
4775 ],
4776 "source_info" : {
4777 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004778 "line" : 293,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004779 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004780 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004781 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004782 }
4783 ]
4784 },
4785 {
4786 "name" : "FabricEgress.egress_next.pop_vlan",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004787 "id" : 65,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004788 "runtime_data" : [],
4789 "primitives" : [
4790 {
Yi Tseng47eac892018-07-11 02:17:04 +08004791 "op" : "remove_header",
4792 "parameters" : [
4793 {
4794 "type" : "header",
4795 "value" : "vlan_tag"
4796 }
4797 ],
4798 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004799 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004800 "line" : 316,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004801 "column" : 8,
4802 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4803 }
4804 }
4805 ]
4806 },
4807 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004808 "name" : "act_22",
4809 "id" : 66,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004810 "runtime_data" : [],
4811 "primitives" : [
4812 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004813 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004814 "parameters" : [],
4815 "source_info" : {
4816 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004817 "line" : 41,
4818 "column" : 12,
4819 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004820 }
4821 }
4822 ]
4823 },
4824 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004825 "name" : "act_23",
4826 "id" : 67,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004827 "runtime_data" : [],
4828 "primitives" : [
4829 {
4830 "op" : "add_header",
4831 "parameters" : [
4832 {
4833 "type" : "header",
4834 "value" : "packet_in"
4835 }
4836 ],
4837 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004838 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004839 "line" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004840 "column" : 12,
4841 "source_fragment" : "hdr.packet_in.setValid()"
4842 }
4843 },
4844 {
4845 "op" : "assign",
4846 "parameters" : [
4847 {
4848 "type" : "field",
4849 "value" : ["packet_in", "ingress_port"]
4850 },
4851 {
4852 "type" : "field",
4853 "value" : ["standard_metadata", "ingress_port"]
4854 }
4855 ],
4856 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004857 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004858 "line" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004859 "column" : 12,
4860 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4861 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004862 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004863 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004864 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004865 "parameters" : [],
4866 "source_info" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004867 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004868 "line" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004869 "column" : 12,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004870 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004871 }
4872 }
4873 ]
4874 },
4875 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004876 "name" : "act_24",
4877 "id" : 68,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004878 "runtime_data" : [],
4879 "primitives" : [
4880 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004881 "op" : "mark_to_drop",
4882 "parameters" : [
4883 {
4884 "type" : "header",
4885 "value" : "standard_metadata"
4886 }
4887 ],
4888 "source_info" : {
4889 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004890 "line" : 337,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004891 "column" : 12,
4892 "source_fragment" : "mark_to_drop(standard_metadata)"
4893 }
4894 }
4895 ]
4896 },
4897 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004898 "name" : "act_25",
4899 "id" : 69,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004900 "runtime_data" : [],
4901 "primitives" : [
4902 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004903 "op" : "assign",
4904 "parameters" : [
4905 {
4906 "type" : "field",
4907 "value" : ["scalars", "egress_next_tmp"]
4908 },
4909 {
4910 "type" : "expression",
4911 "value" : {
4912 "type" : "expression",
4913 "value" : {
4914 "op" : "b2d",
4915 "left" : null,
4916 "right" : {
4917 "type" : "bool",
4918 "value" : true
4919 }
4920 }
4921 }
4922 }
4923 ]
4924 }
4925 ]
4926 },
4927 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004928 "name" : "act_26",
4929 "id" : 70,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004930 "runtime_data" : [],
4931 "primitives" : [
4932 {
4933 "op" : "assign",
4934 "parameters" : [
4935 {
4936 "type" : "field",
4937 "value" : ["scalars", "egress_next_tmp"]
4938 },
4939 {
4940 "type" : "expression",
4941 "value" : {
4942 "type" : "expression",
4943 "value" : {
4944 "op" : "b2d",
4945 "left" : null,
4946 "right" : {
4947 "type" : "bool",
4948 "value" : false
4949 }
4950 }
4951 }
4952 }
4953 ]
4954 }
4955 ]
4956 },
4957 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004958 "name" : "act_27",
4959 "id" : 71,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004960 "runtime_data" : [],
4961 "primitives" : [
4962 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004963 "op" : "mark_to_drop",
4964 "parameters" : [
4965 {
4966 "type" : "header",
4967 "value" : "standard_metadata"
4968 }
4969 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004970 "source_info" : {
4971 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004972 "line" : 370,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004973 "column" : 35,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004974 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004975 }
4976 }
4977 ]
4978 },
4979 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04004980 "name" : "act_28",
4981 "id" : 72,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004982 "runtime_data" : [],
4983 "primitives" : [
4984 {
4985 "op" : "assign",
4986 "parameters" : [
4987 {
4988 "type" : "field",
4989 "value" : ["mpls", "ttl"]
4990 },
4991 {
4992 "type" : "expression",
4993 "value" : {
4994 "type" : "expression",
4995 "value" : {
4996 "op" : "&",
4997 "left" : {
4998 "type" : "expression",
4999 "value" : {
5000 "op" : "+",
5001 "left" : {
5002 "type" : "field",
5003 "value" : ["mpls", "ttl"]
5004 },
5005 "right" : {
5006 "type" : "hexstr",
5007 "value" : "0xff"
5008 }
5009 }
5010 },
5011 "right" : {
5012 "type" : "hexstr",
5013 "value" : "0xff"
5014 }
5015 }
5016 }
5017 }
5018 ],
5019 "source_info" : {
5020 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005021 "line" : 369,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005022 "column" : 12,
5023 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
5024 }
5025 }
5026 ]
5027 },
5028 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005029 "name" : "act_29",
5030 "id" : 73,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005031 "runtime_data" : [],
5032 "primitives" : [
5033 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005034 "op" : "mark_to_drop",
5035 "parameters" : [
5036 {
5037 "type" : "header",
5038 "value" : "standard_metadata"
5039 }
5040 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005041 "source_info" : {
5042 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005043 "line" : 374,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005044 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005045 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005046 }
5047 }
5048 ]
5049 },
5050 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005051 "name" : "act_30",
5052 "id" : 74,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005053 "runtime_data" : [],
5054 "primitives" : [
5055 {
5056 "op" : "assign",
5057 "parameters" : [
5058 {
5059 "type" : "field",
5060 "value" : ["ipv4", "ttl"]
5061 },
5062 {
5063 "type" : "expression",
5064 "value" : {
5065 "type" : "expression",
5066 "value" : {
5067 "op" : "&",
5068 "left" : {
5069 "type" : "expression",
5070 "value" : {
5071 "op" : "+",
5072 "left" : {
5073 "type" : "field",
5074 "value" : ["ipv4", "ttl"]
5075 },
5076 "right" : {
5077 "type" : "hexstr",
5078 "value" : "0xff"
5079 }
5080 }
5081 },
5082 "right" : {
5083 "type" : "hexstr",
5084 "value" : "0xff"
5085 }
5086 }
5087 }
5088 }
5089 ],
5090 "source_info" : {
5091 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005092 "line" : 373,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005093 "column" : 16,
5094 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
5095 }
5096 }
5097 ]
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005098 },
5099 {
5100 "name" : "act_31",
5101 "id" : 75,
5102 "runtime_data" : [],
5103 "primitives" : [
5104 {
5105 "op" : "count",
5106 "parameters" : [
5107 {
5108 "type" : "counter_array",
5109 "value" : "FabricEgress.spgw_egress.pdr_counter"
5110 },
5111 {
5112 "type" : "field",
5113 "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id22"]
5114 }
5115 ],
5116 "source_info" : {
5117 "filename" : "include/spgw.p4",
5118 "line" : 288,
5119 "column" : 8,
5120 "source_fragment" : "pdr_counter.count(fabric_meta.spgw.ctr_id)"
5121 }
5122 }
5123 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005124 }
5125 ],
5126 "pipelines" : [
5127 {
5128 "name" : "ingress",
5129 "id" : 0,
5130 "source_info" : {
5131 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005132 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005133 "column" : 8,
5134 "source_fragment" : "FabricIngress"
5135 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005136 "init_table" : "tbl_act",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005137 "tables" : [
5138 {
5139 "name" : "tbl_act",
5140 "id" : 0,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005141 "source_info" : {
5142 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005143 "line" : 62,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005144 "column" : 50,
5145 "source_fragment" : "hdr.gtpu_ipv4, hdr.gtpu_udp"
5146 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005147 "key" : [],
5148 "match_type" : "exact",
5149 "type" : "simple",
5150 "max_size" : 1024,
5151 "with_counters" : false,
5152 "support_timeout" : false,
5153 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005154 "action_ids" : [38],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005155 "actions" : ["act_0"],
5156 "base_default_next" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005157 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005158 "act_0" : "node_3"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005159 },
5160 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005161 "action_id" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005162 "action_const" : true,
5163 "action_data" : [],
5164 "action_entry_const" : true
5165 }
5166 },
5167 {
5168 "name" : "tbl_act_0",
5169 "id" : 1,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005170 "source_info" : {
5171 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005172 "line" : 34,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005173 "column" : 32,
5174 "source_fragment" : "return"
5175 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005176 "key" : [],
5177 "match_type" : "exact",
5178 "type" : "simple",
5179 "max_size" : 1024,
5180 "with_counters" : false,
5181 "support_timeout" : false,
5182 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005183 "action_ids" : [37],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005184 "actions" : ["act"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005185 "base_default_next" : "node_5",
5186 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005187 "act" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005188 },
5189 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005190 "action_id" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005191 "action_const" : true,
5192 "action_data" : [],
5193 "action_entry_const" : true
5194 }
5195 },
5196 {
5197 "name" : "tbl_act_1",
5198 "id" : 2,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005199 "source_info" : {
5200 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005201 "line" : 35,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005202 "column" : 18,
5203 "source_fragment" : "= ipv4; ..."
5204 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005205 "key" : [],
5206 "match_type" : "exact",
5207 "type" : "simple",
5208 "max_size" : 1024,
5209 "with_counters" : false,
5210 "support_timeout" : false,
5211 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005212 "action_ids" : [41],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005213 "actions" : ["act_3"],
5214 "base_default_next" : "node_7",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005215 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005216 "act_3" : "node_7"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005217 },
5218 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005219 "action_id" : 41,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005220 "action_const" : true,
5221 "action_data" : [],
5222 "action_entry_const" : true
5223 }
5224 },
5225 {
5226 "name" : "tbl_act_2",
5227 "id" : 3,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005228 "source_info" : {
5229 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005230 "line" : 39,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005231 "column" : 16,
5232 "source_fragment" : "="
5233 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005234 "key" : [],
5235 "match_type" : "exact",
5236 "type" : "simple",
5237 "max_size" : 1024,
5238 "with_counters" : false,
5239 "support_timeout" : false,
5240 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005241 "action_ids" : [39],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005242 "actions" : ["act_1"],
5243 "base_default_next" : "node_10",
5244 "next_tables" : {
5245 "act_1" : "node_10"
5246 },
5247 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005248 "action_id" : 39,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005249 "action_const" : true,
5250 "action_data" : [],
5251 "action_entry_const" : true
5252 }
5253 },
5254 {
5255 "name" : "tbl_act_3",
5256 "id" : 4,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005257 "source_info" : {
5258 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005259 "line" : 41,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005260 "column" : 12,
5261 "source_fragment" : "udp.setInvalid()"
5262 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005263 "key" : [],
5264 "match_type" : "exact",
5265 "type" : "simple",
5266 "max_size" : 1024,
5267 "with_counters" : false,
5268 "support_timeout" : false,
5269 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005270 "action_ids" : [40],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005271 "actions" : ["act_2"],
5272 "base_default_next" : "node_10",
5273 "next_tables" : {
5274 "act_2" : "node_10"
5275 },
5276 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005277 "action_id" : 40,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005278 "action_const" : true,
5279 "action_data" : [],
5280 "action_entry_const" : true
5281 }
5282 },
5283 {
5284 "name" : "tbl_act_4",
5285 "id" : 5,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005286 "source_info" : {
5287 "filename" : "include/control/packetio.p4",
5288 "line" : 25,
5289 "column" : 42,
5290 "source_fragment" : "= hdr.packet_out.egress_port; ..."
5291 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005292 "key" : [],
5293 "match_type" : "exact",
5294 "type" : "simple",
5295 "max_size" : 1024,
5296 "with_counters" : false,
5297 "support_timeout" : false,
5298 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005299 "action_ids" : [42],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005300 "actions" : ["act_4"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005301 "base_default_next" : "node_12",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005302 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005303 "act_4" : "node_12"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005304 },
5305 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005306 "action_id" : 42,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005307 "action_const" : true,
5308 "action_data" : [],
5309 "action_entry_const" : true
5310 }
5311 },
5312 {
5313 "name" : "tbl_act_5",
5314 "id" : 6,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005315 "source_info" : {
5316 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005317 "line" : 111,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005318 "column" : 36,
5319 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07005320 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005321 "key" : [],
5322 "match_type" : "exact",
5323 "type" : "simple",
5324 "max_size" : 1024,
5325 "with_counters" : false,
5326 "support_timeout" : false,
5327 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005328 "action_ids" : [43],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005329 "actions" : ["act_5"],
5330 "base_default_next" : "node_14",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005331 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005332 "act_5" : "node_14"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005333 },
5334 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005335 "action_id" : 43,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005336 "action_const" : true,
5337 "action_data" : [],
5338 "action_entry_const" : true
5339 }
5340 },
5341 {
5342 "name" : "tbl_act_6",
5343 "id" : 7,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005344 "source_info" : {
5345 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005346 "line" : 127,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005347 "column" : 37,
5348 "source_fragment" : "="
5349 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005350 "key" : [],
5351 "match_type" : "exact",
5352 "type" : "simple",
5353 "max_size" : 1024,
5354 "with_counters" : false,
5355 "support_timeout" : false,
5356 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005357 "action_ids" : [44],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005358 "actions" : ["act_6"],
Daniele Moro5a2de712019-09-24 14:34:07 -07005359 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005360 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005361 "act_6" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005362 },
5363 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005364 "action_id" : 44,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005365 "action_const" : true,
5366 "action_data" : [],
5367 "action_entry_const" : true
5368 }
5369 },
5370 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005371 "name" : "FabricIngress.filtering.ingress_port_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07005372 "id" : 8,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005373 "source_info" : {
5374 "filename" : "include/control/filtering.p4",
5375 "line" : 53,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005376 "column" : 10,
5377 "source_fragment" : "ingress_port_vlan"
5378 },
5379 "key" : [
5380 {
5381 "match_type" : "exact",
5382 "name" : "ig_port",
5383 "target" : ["standard_metadata", "ingress_port"],
5384 "mask" : null
5385 },
5386 {
5387 "match_type" : "exact",
5388 "name" : "vlan_is_valid",
5389 "target" : ["vlan_tag", "$valid$"],
5390 "mask" : null
5391 },
5392 {
5393 "match_type" : "ternary",
5394 "name" : "vlan_id",
5395 "target" : ["vlan_tag", "vlan_id"],
5396 "mask" : null
5397 }
5398 ],
5399 "match_type" : "ternary",
5400 "type" : "simple",
5401 "max_size" : 1024,
5402 "with_counters" : true,
5403 "support_timeout" : false,
5404 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005405 "action_ids" : [17, 18, 19],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005406 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
5407 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
5408 "next_tables" : {
5409 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
5410 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
5411 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
5412 },
5413 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005414 "action_id" : 17,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005415 "action_const" : true,
5416 "action_data" : [],
5417 "action_entry_const" : true
5418 }
5419 },
5420 {
5421 "name" : "FabricIngress.filtering.fwd_classifier",
Daniele Moro5a2de712019-09-24 14:34:07 -07005422 "id" : 9,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005423 "source_info" : {
5424 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005425 "line" : 92,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005426 "column" : 10,
5427 "source_fragment" : "fwd_classifier"
5428 },
5429 "key" : [
5430 {
5431 "match_type" : "exact",
5432 "name" : "ig_port",
5433 "target" : ["standard_metadata", "ingress_port"],
5434 "mask" : null
5435 },
5436 {
5437 "match_type" : "ternary",
5438 "name" : "eth_dst",
5439 "target" : ["ethernet", "dst_addr"],
5440 "mask" : null
5441 },
5442 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005443 "match_type" : "ternary",
5444 "name" : "eth_type",
5445 "target" : ["eth_type", "value"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07005446 "mask" : null
5447 },
5448 {
5449 "match_type" : "exact",
Daniele Moro5a2de712019-09-24 14:34:07 -07005450 "name" : "ip_eth_type",
5451 "target" : ["scalars", "fabric_metadata_t._ip_eth_type0"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005452 "mask" : null
5453 }
5454 ],
5455 "match_type" : "ternary",
5456 "type" : "simple",
5457 "max_size" : 1024,
5458 "with_counters" : true,
5459 "support_timeout" : false,
5460 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005461 "action_ids" : [20],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005462 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Daniele Moro5a2de712019-09-24 14:34:07 -07005463 "base_default_next" : "tbl_act_7",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005464 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005465 "FabricIngress.filtering.set_forwarding_type" : "tbl_act_7"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005466 },
5467 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005468 "action_id" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005469 "action_const" : true,
5470 "action_data" : ["0x0"],
5471 "action_entry_const" : true
5472 }
5473 },
5474 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005475 "name" : "tbl_act_7",
5476 "id" : 10,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005477 "key" : [],
5478 "match_type" : "exact",
5479 "type" : "simple",
5480 "max_size" : 1024,
5481 "with_counters" : false,
5482 "support_timeout" : false,
5483 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005484 "action_ids" : [53],
Daniele Moro5a2de712019-09-24 14:34:07 -07005485 "actions" : ["act_15"],
5486 "base_default_next" : "node_19",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005487 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005488 "act_15" : "node_19"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005489 },
5490 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005491 "action_id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005492 "action_const" : true,
5493 "action_data" : [],
5494 "action_entry_const" : true
5495 }
5496 },
5497 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005498 "name" : "FabricIngress.spgw_ingress.uplink_filter_table",
Daniele Moro5a2de712019-09-24 14:34:07 -07005499 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005500 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005501 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005502 "line" : 84,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005503 "column" : 10,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005504 "source_fragment" : "uplink_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005505 },
5506 "key" : [
5507 {
5508 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005509 "name" : "gtp_ipv4_dst",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005510 "target" : ["gtpu_ipv4", "dst_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005511 "mask" : null
5512 }
5513 ],
5514 "match_type" : "exact",
5515 "type" : "simple",
5516 "max_size" : 1024,
5517 "with_counters" : false,
5518 "support_timeout" : false,
5519 "direct_meters" : null,
5520 "action_ids" : [1],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005521 "actions" : ["nop"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005522 "base_default_next" : null,
5523 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005524 "__HIT__" : "tbl_act_8",
5525 "__MISS__" : "tbl_act_9"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005526 },
5527 "default_entry" : {
5528 "action_id" : 1,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005529 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005530 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005531 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005532 }
5533 },
5534 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005535 "name" : "tbl_act_8",
5536 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005537 "key" : [],
5538 "match_type" : "exact",
5539 "type" : "simple",
5540 "max_size" : 1024,
5541 "with_counters" : false,
5542 "support_timeout" : false,
5543 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005544 "action_ids" : [45],
Daniele Moro5a2de712019-09-24 14:34:07 -07005545 "actions" : ["act_7"],
5546 "base_default_next" : "node_23",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005547 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005548 "act_7" : "node_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005549 },
5550 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005551 "action_id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005552 "action_const" : true,
5553 "action_data" : [],
5554 "action_entry_const" : true
5555 }
5556 },
5557 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005558 "name" : "tbl_act_9",
5559 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005560 "key" : [],
5561 "match_type" : "exact",
5562 "type" : "simple",
5563 "max_size" : 1024,
5564 "with_counters" : false,
5565 "support_timeout" : false,
5566 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005567 "action_ids" : [46],
Daniele Moro5a2de712019-09-24 14:34:07 -07005568 "actions" : ["act_8"],
5569 "base_default_next" : "node_23",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005570 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005571 "act_8" : "node_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005572 },
5573 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005574 "action_id" : 46,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005575 "action_const" : true,
5576 "action_data" : [],
5577 "action_entry_const" : true
5578 }
5579 },
5580 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005581 "name" : "tbl_act_10",
5582 "id" : 14,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005583 "source_info" : {
5584 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005585 "line" : 187,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005586 "column" : 16,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005587 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07005588 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005589 "key" : [],
5590 "match_type" : "exact",
5591 "type" : "simple",
5592 "max_size" : 1024,
5593 "with_counters" : false,
5594 "support_timeout" : false,
5595 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005596 "action_ids" : [47],
Daniele Moro5a2de712019-09-24 14:34:07 -07005597 "actions" : ["act_9"],
5598 "base_default_next" : "tbl_act_11",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005599 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005600 "act_9" : "tbl_act_11"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005601 },
5602 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005603 "action_id" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005604 "action_const" : true,
5605 "action_data" : [],
5606 "action_entry_const" : true
5607 }
5608 },
5609 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005610 "name" : "tbl_act_11",
5611 "id" : 15,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005612 "source_info" : {
5613 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005614 "line" : 189,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005615 "column" : 39,
5616 "source_fragment" : "="
5617 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005618 "key" : [],
5619 "match_type" : "exact",
5620 "type" : "simple",
5621 "max_size" : 1024,
5622 "with_counters" : false,
5623 "support_timeout" : false,
5624 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005625 "action_ids" : [48],
Daniele Moro5a2de712019-09-24 14:34:07 -07005626 "actions" : ["act_10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005627 "base_default_next" : "tbl_spgw_ingress_gtpu_decap",
5628 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005629 "act_10" : "tbl_spgw_ingress_gtpu_decap"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005630 },
5631 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005632 "action_id" : 48,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005633 "action_const" : true,
5634 "action_data" : [],
5635 "action_entry_const" : true
5636 }
5637 },
5638 {
5639 "name" : "tbl_spgw_ingress_gtpu_decap",
Daniele Moro5a2de712019-09-24 14:34:07 -07005640 "id" : 16,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005641 "source_info" : {
5642 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005643 "line" : 190,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005644 "column" : 12,
5645 "source_fragment" : "gtpu_decap()"
5646 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005647 "key" : [],
5648 "match_type" : "exact",
5649 "type" : "simple",
5650 "max_size" : 1024,
5651 "with_counters" : false,
5652 "support_timeout" : false,
5653 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005654 "action_ids" : [11],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005655 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
Daniele Moro5a2de712019-09-24 14:34:07 -07005656 "base_default_next" : "node_33",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005657 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005658 "FabricIngress.spgw_ingress.gtpu_decap" : "node_33"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005659 },
5660 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005661 "action_id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005662 "action_const" : true,
5663 "action_data" : [],
5664 "action_entry_const" : true
5665 }
5666 },
5667 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005668 "name" : "FabricIngress.spgw_ingress.downlink_filter_table",
Daniele Moro5a2de712019-09-24 14:34:07 -07005669 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005670 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005671 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005672 "line" : 73,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005673 "column" : 10,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005674 "source_fragment" : "downlink_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005675 },
5676 "key" : [
5677 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005678 "match_type" : "lpm",
5679 "name" : "ipv4_prefix",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005680 "target" : ["ipv4", "dst_addr"],
5681 "mask" : null
5682 }
5683 ],
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005684 "match_type" : "lpm",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005685 "type" : "simple",
5686 "max_size" : 1024,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005687 "with_counters" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005688 "support_timeout" : false,
5689 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005690 "action_ids" : [0],
5691 "actions" : ["nop"],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005692 "base_default_next" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005693 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005694 "__HIT__" : "tbl_act_12",
5695 "__MISS__" : "tbl_act_13"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005696 },
5697 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005698 "action_id" : 0,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005699 "action_const" : true,
5700 "action_data" : [],
5701 "action_entry_const" : true
5702 }
5703 },
5704 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005705 "name" : "tbl_act_12",
5706 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005707 "key" : [],
5708 "match_type" : "exact",
5709 "type" : "simple",
5710 "max_size" : 1024,
5711 "with_counters" : false,
5712 "support_timeout" : false,
5713 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005714 "action_ids" : [49],
Daniele Moro5a2de712019-09-24 14:34:07 -07005715 "actions" : ["act_11"],
5716 "base_default_next" : "node_30",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005717 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005718 "act_11" : "node_30"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005719 },
5720 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005721 "action_id" : 49,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005722 "action_const" : true,
5723 "action_data" : [],
5724 "action_entry_const" : true
5725 }
5726 },
5727 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005728 "name" : "tbl_act_13",
5729 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005730 "key" : [],
5731 "match_type" : "exact",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005732 "type" : "simple",
5733 "max_size" : 1024,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005734 "with_counters" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005735 "support_timeout" : false,
5736 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005737 "action_ids" : [50],
Daniele Moro5a2de712019-09-24 14:34:07 -07005738 "actions" : ["act_12"],
5739 "base_default_next" : "node_30",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005740 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005741 "act_12" : "node_30"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005742 },
5743 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005744 "action_id" : 50,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005745 "action_const" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005746 "action_data" : [],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005747 "action_entry_const" : true
5748 }
5749 },
5750 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005751 "name" : "tbl_act_14",
5752 "id" : 20,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005753 "source_info" : {
5754 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005755 "line" : 192,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005756 "column" : 39,
5757 "source_fragment" : "="
5758 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005759 "key" : [],
5760 "match_type" : "exact",
5761 "type" : "simple",
5762 "max_size" : 1024,
5763 "with_counters" : false,
5764 "support_timeout" : false,
5765 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005766 "action_ids" : [51],
Daniele Moro5a2de712019-09-24 14:34:07 -07005767 "actions" : ["act_13"],
5768 "base_default_next" : "node_33",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005769 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005770 "act_13" : "node_33"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005771 },
5772 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005773 "action_id" : 51,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005774 "action_const" : true,
5775 "action_data" : [],
5776 "action_entry_const" : true
5777 }
5778 },
5779 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005780 "name" : "tbl_act_15",
5781 "id" : 21,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005782 "source_info" : {
5783 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005784 "line" : 194,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005785 "column" : 39,
5786 "source_fragment" : "= SPGW_DIR_UNKNOWN; ..."
5787 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005788 "key" : [],
5789 "match_type" : "exact",
5790 "type" : "simple",
5791 "max_size" : 1024,
5792 "with_counters" : false,
5793 "support_timeout" : false,
5794 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005795 "action_ids" : [52],
Daniele Moro5a2de712019-09-24 14:34:07 -07005796 "actions" : ["act_14"],
5797 "base_default_next" : "node_33",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005798 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005799 "act_14" : "node_33"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005800 },
5801 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005802 "action_id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005803 "action_const" : true,
5804 "action_data" : [],
5805 "action_entry_const" : true
5806 }
5807 },
5808 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005809 "name" : "FabricIngress.spgw_ingress.uplink_pdr_lookup",
Daniele Moro5a2de712019-09-24 14:34:07 -07005810 "id" : 22,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005811 "source_info" : {
5812 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04005813 "line" : 111,
5814 "column" : 10,
5815 "source_fragment" : "uplink_pdr_lookup"
5816 },
5817 "key" : [
5818 {
5819 "match_type" : "exact",
5820 "name" : "tunnel_ipv4_dst",
5821 "target" : ["scalars", "fabric_metadata_t._spgw_tunnel_dst_addr21"],
5822 "mask" : null
5823 },
5824 {
5825 "match_type" : "exact",
5826 "name" : "teid",
5827 "target" : ["scalars", "fabric_metadata_t._spgw_teid19"],
5828 "mask" : null
5829 },
5830 {
5831 "match_type" : "exact",
5832 "name" : "ue_addr",
5833 "target" : ["ipv4", "src_addr"],
5834 "mask" : null
5835 }
5836 ],
5837 "match_type" : "exact",
5838 "type" : "simple",
5839 "max_size" : 1024,
5840 "with_counters" : false,
5841 "support_timeout" : false,
5842 "direct_meters" : null,
5843 "action_ids" : [13, 10],
5844 "actions" : ["FabricIngress.spgw_ingress.set_pdr_attributes", "NoAction"],
5845 "base_default_next" : "node_39",
5846 "next_tables" : {
5847 "FabricIngress.spgw_ingress.set_pdr_attributes" : "node_39",
5848 "NoAction" : "node_39"
5849 },
5850 "default_entry" : {
5851 "action_id" : 10,
5852 "action_const" : false,
5853 "action_data" : [],
5854 "action_entry_const" : false
5855 }
5856 },
5857 {
5858 "name" : "FabricIngress.spgw_ingress.downlink_pdr_lookup",
5859 "id" : 23,
5860 "source_info" : {
5861 "filename" : "include/spgw.p4",
5862 "line" : 103,
5863 "column" : 10,
5864 "source_fragment" : "downlink_pdr_lookup"
5865 },
5866 "key" : [
5867 {
5868 "match_type" : "exact",
5869 "name" : "ue_addr",
5870 "target" : ["ipv4", "dst_addr"],
5871 "mask" : null
5872 }
5873 ],
5874 "match_type" : "exact",
5875 "type" : "simple",
5876 "max_size" : 1024,
5877 "with_counters" : false,
5878 "support_timeout" : false,
5879 "direct_meters" : null,
5880 "action_ids" : [12, 9],
5881 "actions" : ["FabricIngress.spgw_ingress.set_pdr_attributes", "NoAction"],
5882 "base_default_next" : "node_39",
5883 "next_tables" : {
5884 "FabricIngress.spgw_ingress.set_pdr_attributes" : "node_39",
5885 "NoAction" : "node_39"
5886 },
5887 "default_entry" : {
5888 "action_id" : 9,
5889 "action_const" : false,
5890 "action_data" : [],
5891 "action_entry_const" : false
5892 }
5893 },
5894 {
5895 "name" : "tbl_act_16",
5896 "id" : 24,
5897 "source_info" : {
5898 "filename" : "include/spgw.p4",
5899 "line" : 206,
5900 "column" : 12,
5901 "source_fragment" : "return"
5902 },
5903 "key" : [],
5904 "match_type" : "exact",
5905 "type" : "simple",
5906 "max_size" : 1024,
5907 "with_counters" : false,
5908 "support_timeout" : false,
5909 "direct_meters" : null,
5910 "action_ids" : [54],
5911 "actions" : ["act_16"],
5912 "base_default_next" : "node_39",
5913 "next_tables" : {
5914 "act_16" : "node_39"
5915 },
5916 "default_entry" : {
5917 "action_id" : 54,
5918 "action_const" : true,
5919 "action_data" : [],
5920 "action_entry_const" : true
5921 }
5922 },
5923 {
5924 "name" : "FabricIngress.spgw_ingress.flexible_pdr_lookup",
5925 "id" : 25,
5926 "source_info" : {
5927 "filename" : "include/spgw.p4",
5928 "line" : 123,
5929 "column" : 10,
5930 "source_fragment" : "flexible_pdr_lookup"
5931 },
5932 "key" : [
5933 {
5934 "match_type" : "ternary",
5935 "name" : "spgw_direction",
5936 "target" : ["scalars", "fabric_metadata_t._spgw_direction17"],
5937 "mask" : null
5938 },
5939 {
5940 "match_type" : "ternary",
5941 "name" : "tunnel_ipv4_dst",
5942 "target" : ["scalars", "fabric_metadata_t._spgw_tunnel_dst_addr21"],
5943 "mask" : null
5944 },
5945 {
5946 "match_type" : "ternary",
5947 "name" : "teid",
5948 "target" : ["scalars", "fabric_metadata_t._spgw_teid19"],
5949 "mask" : null
5950 },
5951 {
5952 "match_type" : "ternary",
5953 "name" : "ipv4_src",
5954 "target" : ["ipv4", "src_addr"],
5955 "mask" : null
5956 },
5957 {
5958 "match_type" : "ternary",
5959 "name" : "ipv4_dst",
5960 "target" : ["ipv4", "dst_addr"],
5961 "mask" : null
5962 },
5963 {
5964 "match_type" : "ternary",
5965 "name" : "ip_proto",
5966 "target" : ["ipv4", "protocol"],
5967 "mask" : null
5968 },
5969 {
5970 "match_type" : "ternary",
5971 "name" : "l4_sport",
5972 "target" : ["scalars", "fabric_metadata_t._l4_sport13"],
5973 "mask" : null
5974 },
5975 {
5976 "match_type" : "ternary",
5977 "name" : "l4_dport",
5978 "target" : ["scalars", "fabric_metadata_t._l4_dport14"],
5979 "mask" : null
5980 }
5981 ],
5982 "match_type" : "ternary",
5983 "type" : "simple",
5984 "max_size" : 1024,
5985 "with_counters" : false,
5986 "support_timeout" : false,
5987 "direct_meters" : null,
5988 "action_ids" : [14],
5989 "actions" : ["FabricIngress.spgw_ingress.set_pdr_attributes"],
5990 "base_default_next" : "tbl_act_17",
5991 "next_tables" : {
5992 "FabricIngress.spgw_ingress.set_pdr_attributes" : "tbl_act_17"
5993 },
5994 "default_entry" : {
5995 "action_id" : 14,
5996 "action_const" : true,
5997 "action_data" : ["0x0", "0x0"],
5998 "action_entry_const" : true
5999 }
6000 },
6001 {
6002 "name" : "tbl_act_17",
6003 "id" : 26,
6004 "source_info" : {
6005 "filename" : "include/spgw.p4",
6006 "line" : 213,
6007 "column" : 8,
6008 "source_fragment" : "pdr_counter.count(fabric_meta.spgw.ctr_id)"
6009 },
6010 "key" : [],
6011 "match_type" : "exact",
6012 "type" : "simple",
6013 "max_size" : 1024,
6014 "with_counters" : false,
6015 "support_timeout" : false,
6016 "direct_meters" : null,
6017 "action_ids" : [55],
6018 "actions" : ["act_17"],
6019 "base_default_next" : "FabricIngress.spgw_ingress.far_lookup",
6020 "next_tables" : {
6021 "act_17" : "FabricIngress.spgw_ingress.far_lookup"
6022 },
6023 "default_entry" : {
6024 "action_id" : 55,
6025 "action_const" : true,
6026 "action_data" : [],
6027 "action_entry_const" : true
6028 }
6029 },
6030 {
6031 "name" : "FabricIngress.spgw_ingress.far_lookup",
6032 "id" : 27,
6033 "source_info" : {
6034 "filename" : "include/spgw.p4",
6035 "line" : 168,
6036 "column" : 10,
6037 "source_fragment" : "far_lookup"
6038 },
6039 "key" : [
6040 {
6041 "match_type" : "exact",
6042 "name" : "far_id",
6043 "target" : ["scalars", "fabric_metadata_t._spgw_far_id23"],
6044 "mask" : null
6045 }
6046 ],
6047 "match_type" : "exact",
6048 "type" : "simple",
6049 "max_size" : 1024,
6050 "with_counters" : false,
6051 "support_timeout" : false,
6052 "direct_meters" : null,
6053 "action_ids" : [15, 16],
6054 "actions" : ["FabricIngress.spgw_ingress.load_normal_far_attributes", "FabricIngress.spgw_ingress.load_tunnel_far_attributes"],
6055 "base_default_next" : "node_44",
6056 "next_tables" : {
6057 "FabricIngress.spgw_ingress.load_normal_far_attributes" : "node_44",
6058 "FabricIngress.spgw_ingress.load_tunnel_far_attributes" : "node_44"
6059 },
6060 "default_entry" : {
6061 "action_id" : 15,
6062 "action_const" : true,
6063 "action_data" : ["0x1", "0x0"],
6064 "action_entry_const" : true
6065 }
6066 },
6067 {
6068 "name" : "tbl_act_18",
6069 "id" : 28,
6070 "source_info" : {
6071 "filename" : "include/spgw.p4",
6072 "line" : 223,
6073 "column" : 40,
6074 "source_fragment" : "= true; ..."
6075 },
6076 "key" : [],
6077 "match_type" : "exact",
6078 "type" : "simple",
6079 "max_size" : 1024,
6080 "with_counters" : false,
6081 "support_timeout" : false,
6082 "direct_meters" : null,
6083 "action_ids" : [56],
6084 "actions" : ["act_18"],
6085 "base_default_next" : "tbl_act_19",
6086 "next_tables" : {
6087 "act_18" : "tbl_act_19"
6088 },
6089 "default_entry" : {
6090 "action_id" : 56,
6091 "action_const" : true,
6092 "action_data" : [],
6093 "action_entry_const" : true
6094 }
6095 },
6096 {
6097 "name" : "tbl_act_19",
6098 "id" : 29,
6099 "source_info" : {
6100 "filename" : "include/spgw.p4",
6101 "line" : 232,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006102 "column" : 34,
6103 "source_fragment" : "="
6104 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006105 "key" : [],
6106 "match_type" : "exact",
6107 "type" : "simple",
6108 "max_size" : 1024,
6109 "with_counters" : false,
6110 "support_timeout" : false,
6111 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006112 "action_ids" : [57],
6113 "actions" : ["act_19"],
6114 "base_default_next" : "node_47",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006115 "next_tables" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006116 "act_19" : "node_47"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006117 },
6118 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006119 "action_id" : 57,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006120 "action_const" : true,
6121 "action_data" : [],
6122 "action_entry_const" : true
6123 }
6124 },
6125 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006126 "name" : "FabricIngress.forwarding.bridging",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006127 "id" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006128 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006129 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006130 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006131 "column" : 10,
6132 "source_fragment" : "bridging"
6133 },
6134 "key" : [
6135 {
6136 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006137 "name" : "vlan_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07006138 "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006139 "mask" : null
6140 },
6141 {
6142 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006143 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006144 "target" : ["ethernet", "dst_addr"],
6145 "mask" : null
6146 }
6147 ],
6148 "match_type" : "ternary",
6149 "type" : "simple",
6150 "max_size" : 1024,
6151 "with_counters" : true,
6152 "support_timeout" : false,
6153 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006154 "action_ids" : [21, 2],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006155 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
6156 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006157 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006158 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.acl.acl",
6159 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006160 },
6161 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006162 "action_id" : 2,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006163 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006164 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006165 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006166 }
6167 },
6168 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006169 "name" : "FabricIngress.forwarding.mpls",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006170 "id" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006171 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006172 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006173 "line" : 71,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006174 "column" : 10,
6175 "source_fragment" : "mpls"
6176 },
6177 "key" : [
6178 {
6179 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006180 "name" : "mpls_label",
Daniele Moro5a2de712019-09-24 14:34:07 -07006181 "target" : ["scalars", "fabric_metadata_t._mpls_label4"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006182 "mask" : null
6183 }
6184 ],
6185 "match_type" : "exact",
6186 "type" : "simple",
6187 "max_size" : 1024,
6188 "with_counters" : true,
6189 "support_timeout" : false,
6190 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006191 "action_ids" : [22, 3],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006192 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
6193 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006194 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006195 "FabricIngress.forwarding.pop_mpls_and_next" : "FabricIngress.acl.acl",
6196 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006197 },
6198 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006199 "action_id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006200 "action_const" : true,
6201 "action_data" : [],
6202 "action_entry_const" : true
6203 }
6204 },
6205 {
Charles Chan384aea22018-08-23 22:08:02 -07006206 "name" : "FabricIngress.forwarding.routing_v4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006207 "id" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006208 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006209 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006210 "line" : 108,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006211 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07006212 "source_fragment" : "routing_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006213 },
6214 "key" : [
6215 {
6216 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006217 "name" : "ipv4_dst",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006218 "target" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006219 "mask" : null
6220 }
6221 ],
6222 "match_type" : "lpm",
6223 "type" : "simple",
6224 "max_size" : 1024,
Daniele Moro5a2de712019-09-24 14:34:07 -07006225 "with_counters" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006226 "support_timeout" : false,
6227 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006228 "action_ids" : [23, 24, 4],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006229 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
6230 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006231 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006232 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.acl.acl",
6233 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.acl.acl",
6234 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006235 },
6236 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006237 "action_id" : 4,
CyberHasHe9ba39c2019-10-11 05:59:12 +08006238 "action_const" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006239 "action_data" : [],
CyberHasHe9ba39c2019-10-11 05:59:12 +08006240 "action_entry_const" : false
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006241 }
6242 },
6243 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006244 "name" : "FabricIngress.acl.acl",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006245 "id" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006246 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006247 "filename" : "include/control/acl.p4",
6248 "line" : 60,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006249 "column" : 10,
6250 "source_fragment" : "acl"
6251 },
6252 "key" : [
6253 {
6254 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006255 "name" : "ig_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006256 "target" : ["standard_metadata", "ingress_port"],
6257 "mask" : null
6258 },
6259 {
6260 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006261 "name" : "ip_proto",
Daniele Moro5a2de712019-09-24 14:34:07 -07006262 "target" : ["scalars", "fabric_metadata_t._ip_proto12"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006263 "mask" : null
6264 },
6265 {
6266 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006267 "name" : "l4_sport",
Daniele Moro5a2de712019-09-24 14:34:07 -07006268 "target" : ["scalars", "fabric_metadata_t._l4_sport13"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006269 "mask" : null
6270 },
6271 {
6272 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006273 "name" : "l4_dport",
Daniele Moro5a2de712019-09-24 14:34:07 -07006274 "target" : ["scalars", "fabric_metadata_t._l4_dport14"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006275 "mask" : null
6276 },
6277 {
6278 "match_type" : "ternary",
Daniele Moro0cecfe12019-12-13 17:24:33 -08006279 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006280 "target" : ["ethernet", "dst_addr"],
6281 "mask" : null
6282 },
6283 {
6284 "match_type" : "ternary",
Daniele Moro0cecfe12019-12-13 17:24:33 -08006285 "name" : "eth_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006286 "target" : ["ethernet", "src_addr"],
6287 "mask" : null
6288 },
6289 {
6290 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006291 "name" : "vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006292 "target" : ["vlan_tag", "vlan_id"],
6293 "mask" : null
6294 },
6295 {
6296 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006297 "name" : "eth_type",
Daniele Moro5a2de712019-09-24 14:34:07 -07006298 "target" : ["eth_type", "value"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08006299 "mask" : null
6300 },
6301 {
6302 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006303 "name" : "ipv4_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006304 "target" : ["ipv4", "src_addr"],
6305 "mask" : null
6306 },
6307 {
6308 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006309 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006310 "target" : ["ipv4", "dst_addr"],
6311 "mask" : null
6312 },
6313 {
6314 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006315 "name" : "icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006316 "target" : ["icmp", "icmp_type"],
6317 "mask" : null
6318 },
6319 {
6320 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006321 "name" : "icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006322 "target" : ["icmp", "icmp_code"],
6323 "mask" : null
6324 }
6325 ],
6326 "match_type" : "ternary",
6327 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006328 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006329 "with_counters" : true,
6330 "support_timeout" : false,
6331 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006332 "action_ids" : [25, 26, 27, 28, 29],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006333 "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 MacDavidbec6b6a2020-05-21 21:32:38 -04006334 "base_default_next" : "node_55",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006335 "next_tables" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006336 "FabricIngress.acl.set_next_id_acl" : "node_55",
6337 "FabricIngress.acl.punt_to_cpu" : "node_55",
6338 "FabricIngress.acl.set_clone_session_id" : "node_55",
6339 "FabricIngress.acl.drop" : "node_55",
6340 "FabricIngress.acl.nop_acl" : "node_55"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006341 },
6342 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006343 "action_id" : 29,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006344 "action_const" : true,
6345 "action_data" : [],
6346 "action_entry_const" : true
6347 }
6348 },
6349 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006350 "name" : "FabricIngress.next.xconnect",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006351 "id" : 34,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006352 "source_info" : {
6353 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006354 "line" : 119,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006355 "column" : 10,
6356 "source_fragment" : "xconnect"
6357 },
6358 "key" : [
6359 {
6360 "match_type" : "exact",
6361 "name" : "ig_port",
6362 "target" : ["standard_metadata", "ingress_port"],
6363 "mask" : null
6364 },
6365 {
6366 "match_type" : "exact",
6367 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07006368 "target" : ["scalars", "fabric_metadata_t._next_id9"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006369 "mask" : null
6370 }
6371 ],
6372 "match_type" : "exact",
6373 "type" : "simple",
6374 "max_size" : 1024,
6375 "with_counters" : true,
6376 "support_timeout" : false,
6377 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006378 "action_ids" : [31, 32, 6],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006379 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
6380 "base_default_next" : "FabricIngress.next.hashed",
6381 "next_tables" : {
6382 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
6383 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
6384 "nop" : "FabricIngress.next.hashed"
6385 },
6386 "default_entry" : {
6387 "action_id" : 6,
6388 "action_const" : true,
6389 "action_data" : [],
6390 "action_entry_const" : true
6391 }
6392 },
6393 {
6394 "name" : "FabricIngress.next.hashed",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006395 "id" : 35,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006396 "source_info" : {
6397 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006398 "line" : 202,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006399 "column" : 10,
6400 "source_fragment" : "hashed"
6401 },
6402 "key" : [
6403 {
6404 "match_type" : "exact",
6405 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07006406 "target" : ["scalars", "fabric_metadata_t._next_id9"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006407 "mask" : null
6408 }
6409 ],
6410 "match_type" : "exact",
6411 "type" : "indirect_ws",
6412 "action_profile" : "FabricIngress.next.hashed_selector",
6413 "max_size" : 1024,
6414 "with_counters" : true,
6415 "support_timeout" : false,
6416 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006417 "action_ids" : [33, 34, 35, 7],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006418 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
6419 "base_default_next" : "FabricIngress.next.multicast",
6420 "next_tables" : {
6421 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
6422 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
6423 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
6424 "nop" : "FabricIngress.next.multicast"
6425 }
6426 },
6427 {
6428 "name" : "FabricIngress.next.multicast",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006429 "id" : 36,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006430 "source_info" : {
6431 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006432 "line" : 236,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006433 "column" : 10,
6434 "source_fragment" : "multicast"
6435 },
6436 "key" : [
6437 {
6438 "match_type" : "exact",
6439 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07006440 "target" : ["scalars", "fabric_metadata_t._next_id9"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006441 "mask" : null
6442 }
6443 ],
6444 "match_type" : "exact",
6445 "type" : "simple",
6446 "max_size" : 1024,
6447 "with_counters" : true,
6448 "support_timeout" : false,
6449 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006450 "action_ids" : [36, 8],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006451 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
6452 "base_default_next" : "FabricIngress.next.next_vlan",
6453 "next_tables" : {
6454 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
6455 "nop" : "FabricIngress.next.next_vlan"
6456 },
6457 "default_entry" : {
6458 "action_id" : 8,
6459 "action_const" : true,
6460 "action_data" : [],
6461 "action_entry_const" : true
6462 }
6463 },
6464 {
6465 "name" : "FabricIngress.next.next_vlan",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006466 "id" : 37,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006467 "source_info" : {
6468 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006469 "line" : 86,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006470 "column" : 10,
6471 "source_fragment" : "next_vlan"
6472 },
6473 "key" : [
6474 {
6475 "match_type" : "exact",
6476 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07006477 "target" : ["scalars", "fabric_metadata_t._next_id9"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006478 "mask" : null
6479 }
6480 ],
6481 "match_type" : "exact",
6482 "type" : "simple",
6483 "max_size" : 1024,
6484 "with_counters" : true,
6485 "support_timeout" : false,
6486 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006487 "action_ids" : [30, 5],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006488 "actions" : ["FabricIngress.next.set_vlan", "nop"],
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006489 "base_default_next" : "node_60",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006490 "next_tables" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006491 "FabricIngress.next.set_vlan" : "node_60",
6492 "nop" : "node_60"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006493 },
6494 "default_entry" : {
6495 "action_id" : 5,
6496 "action_const" : true,
6497 "action_data" : [],
6498 "action_entry_const" : true
6499 }
6500 },
6501 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006502 "name" : "tbl_act_20",
6503 "id" : 38,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006504 "source_info" : {
6505 "filename" : "include/control/port_counter.p4",
6506 "line" : 31,
6507 "column" : 12,
6508 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
6509 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006510 "key" : [],
6511 "match_type" : "exact",
6512 "type" : "simple",
6513 "max_size" : 1024,
6514 "with_counters" : false,
6515 "support_timeout" : false,
6516 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006517 "action_ids" : [58],
6518 "actions" : ["act_20"],
6519 "base_default_next" : "node_62",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006520 "next_tables" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006521 "act_20" : "node_62"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006522 },
6523 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006524 "action_id" : 58,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006525 "action_const" : true,
6526 "action_data" : [],
6527 "action_entry_const" : true
6528 }
6529 },
6530 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006531 "name" : "tbl_act_21",
6532 "id" : 39,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006533 "source_info" : {
6534 "filename" : "include/control/port_counter.p4",
6535 "line" : 34,
6536 "column" : 12,
6537 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
6538 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006539 "key" : [],
6540 "match_type" : "exact",
6541 "type" : "simple",
6542 "max_size" : 1024,
6543 "with_counters" : false,
6544 "support_timeout" : false,
6545 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006546 "action_ids" : [59],
6547 "actions" : ["act_21"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006548 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006549 "next_tables" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006550 "act_21" : null
Carmelo Casconea5400af2018-07-17 22:11:54 +02006551 },
6552 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006553 "action_id" : 59,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006554 "action_const" : true,
6555 "action_data" : [],
6556 "action_entry_const" : true
6557 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006558 }
6559 ],
6560 "action_profiles" : [
6561 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006562 "name" : "FabricIngress.next.hashed_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006563 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006564 "source_info" : {
6565 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006566 "line" : 183,
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006567 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006568 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006569 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006570 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006571 "selector" : {
6572 "algo" : "crc16",
6573 "input" : [
6574 {
6575 "type" : "field",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006576 "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006577 },
6578 {
6579 "type" : "field",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006580 "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006581 },
6582 {
6583 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006584 "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006585 },
6586 {
6587 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006588 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006589 },
6590 {
6591 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006592 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006593 }
6594 ]
6595 }
6596 }
6597 ],
6598 "conditionals" : [
6599 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006600 "name" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006601 "id" : 0,
6602 "source_info" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006603 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006604 "line" : 34,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006605 "column" : 12,
6606 "source_fragment" : "! is_gtpu_encapped"
6607 },
6608 "expression" : {
6609 "type" : "expression",
6610 "value" : {
6611 "op" : "not",
6612 "left" : null,
6613 "right" : {
6614 "type" : "expression",
6615 "value" : {
6616 "op" : "d2b",
6617 "left" : null,
6618 "right" : {
6619 "type" : "field",
6620 "value" : ["gtpu", "$valid$"]
6621 }
6622 }
6623 }
6624 }
6625 },
6626 "true_next" : "tbl_act_0",
6627 "false_next" : "node_5"
6628 },
6629 {
6630 "name" : "node_5",
6631 "id" : 1,
6632 "expression" : {
6633 "type" : "expression",
6634 "value" : {
6635 "op" : "not",
6636 "left" : null,
6637 "right" : {
6638 "type" : "expression",
6639 "value" : {
6640 "op" : "d2b",
6641 "left" : null,
6642 "right" : {
6643 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006644 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006645 }
6646 }
6647 }
6648 }
6649 },
6650 "true_next" : "tbl_act_1",
6651 "false_next" : "node_10"
6652 },
6653 {
6654 "name" : "node_7",
6655 "id" : 2,
6656 "source_info" : {
6657 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006658 "line" : 38,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006659 "column" : 12,
6660 "source_fragment" : "inner_udp.isValid()"
6661 },
6662 "expression" : {
6663 "type" : "expression",
6664 "value" : {
6665 "op" : "d2b",
6666 "left" : null,
6667 "right" : {
6668 "type" : "field",
6669 "value" : ["inner_udp", "$valid$"]
6670 }
6671 }
6672 },
6673 "true_next" : "tbl_act_2",
6674 "false_next" : "tbl_act_3"
6675 },
6676 {
6677 "name" : "node_10",
6678 "id" : 3,
6679 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006680 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006681 "line" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006682 "column" : 12,
6683 "source_fragment" : "hdr.packet_out.isValid()"
6684 },
6685 "expression" : {
6686 "type" : "expression",
6687 "value" : {
6688 "op" : "d2b",
6689 "left" : null,
6690 "right" : {
6691 "type" : "field",
6692 "value" : ["packet_out", "$valid$"]
6693 }
6694 }
6695 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006696 "true_next" : "tbl_act_4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006697 "false_next" : "node_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006698 },
6699 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006700 "name" : "node_12",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006701 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006702 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006703 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006704 "line" : 110,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006705 "column" : 12,
6706 "source_fragment" : "hdr.vlan_tag.isValid()"
6707 },
6708 "expression" : {
6709 "type" : "expression",
6710 "value" : {
6711 "op" : "d2b",
6712 "left" : null,
6713 "right" : {
6714 "type" : "field",
6715 "value" : ["vlan_tag", "$valid$"]
6716 }
6717 }
6718 },
6719 "true_next" : "tbl_act_5",
6720 "false_next" : "node_14"
6721 },
6722 {
6723 "name" : "node_14",
6724 "id" : 5,
6725 "source_info" : {
6726 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006727 "line" : 122,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006728 "column" : 12,
6729 "source_fragment" : "!hdr.mpls.isValid()"
6730 },
6731 "expression" : {
6732 "type" : "expression",
6733 "value" : {
6734 "op" : "not",
6735 "left" : null,
6736 "right" : {
6737 "type" : "expression",
6738 "value" : {
6739 "op" : "d2b",
6740 "left" : null,
6741 "right" : {
6742 "type" : "field",
6743 "value" : ["mpls", "$valid$"]
6744 }
6745 }
6746 }
6747 }
6748 },
6749 "true_next" : "tbl_act_6",
Daniele Moro5a2de712019-09-24 14:34:07 -07006750 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006751 },
6752 {
6753 "name" : "node_19",
Daniele Moro5a2de712019-09-24 14:34:07 -07006754 "id" : 6,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006755 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006756 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006757 "line" : 181,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006758 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006759 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006760 },
6761 "expression" : {
6762 "type" : "expression",
6763 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006764 "op" : "d2b",
6765 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006766 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006767 "type" : "field",
6768 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006769 }
6770 }
6771 },
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006772 "true_next" : "FabricIngress.spgw_ingress.uplink_filter_table",
6773 "false_next" : "FabricIngress.spgw_ingress.downlink_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006774 },
6775 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006776 "name" : "node_23",
6777 "id" : 7,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006778 "source_info" : {
6779 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006780 "line" : 185,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006781 "column" : 16,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006782 "source_fragment" : "!uplink_filter_table.apply().hit"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006783 },
6784 "expression" : {
6785 "type" : "expression",
6786 "value" : {
6787 "op" : "not",
6788 "left" : null,
6789 "right" : {
6790 "type" : "expression",
6791 "value" : {
6792 "op" : "d2b",
6793 "left" : null,
6794 "right" : {
6795 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006796 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006797 }
6798 }
6799 }
6800 }
6801 },
Daniele Moro5a2de712019-09-24 14:34:07 -07006802 "true_next" : "tbl_act_10",
6803 "false_next" : "tbl_act_11"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006804 },
6805 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006806 "name" : "node_30",
6807 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006808 "expression" : {
6809 "type" : "expression",
6810 "value" : {
6811 "op" : "d2b",
6812 "left" : null,
6813 "right" : {
6814 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006815 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006816 }
6817 }
6818 },
Daniele Moro5a2de712019-09-24 14:34:07 -07006819 "true_next" : "tbl_act_14",
6820 "false_next" : "tbl_act_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006821 },
6822 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006823 "name" : "node_33",
6824 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006825 "expression" : {
6826 "type" : "expression",
6827 "value" : {
6828 "op" : "not",
6829 "left" : null,
6830 "right" : {
6831 "type" : "expression",
6832 "value" : {
6833 "op" : "d2b",
6834 "left" : null,
6835 "right" : {
6836 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006837 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006838 }
6839 }
6840 }
6841 }
6842 },
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006843 "true_next" : "node_34",
6844 "false_next" : "node_39"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006845 },
6846 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006847 "name" : "node_34",
Daniele Moro5a2de712019-09-24 14:34:07 -07006848 "id" : 10,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006849 "source_info" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04006850 "filename" : "include/spgw.p4",
6851 "line" : 201,
6852 "column" : 12,
6853 "source_fragment" : "fabric_meta.spgw.direction == SPGW_DIR_UPLINK"
6854 },
6855 "expression" : {
6856 "type" : "expression",
6857 "value" : {
6858 "op" : "==",
6859 "left" : {
6860 "type" : "field",
6861 "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
6862 },
6863 "right" : {
6864 "type" : "hexstr",
6865 "value" : "0x01"
6866 }
6867 }
6868 },
6869 "true_next" : "FabricIngress.spgw_ingress.uplink_pdr_lookup",
6870 "false_next" : "node_36"
6871 },
6872 {
6873 "name" : "node_36",
6874 "id" : 11,
6875 "source_info" : {
6876 "filename" : "include/spgw.p4",
6877 "line" : 203,
6878 "column" : 19,
6879 "source_fragment" : "fabric_meta.spgw.direction == SPGW_DIR_DOWNLINK"
6880 },
6881 "expression" : {
6882 "type" : "expression",
6883 "value" : {
6884 "op" : "==",
6885 "left" : {
6886 "type" : "field",
6887 "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
6888 },
6889 "right" : {
6890 "type" : "hexstr",
6891 "value" : "0x02"
6892 }
6893 }
6894 },
6895 "true_next" : "FabricIngress.spgw_ingress.downlink_pdr_lookup",
6896 "false_next" : "tbl_act_16"
6897 },
6898 {
6899 "name" : "node_39",
6900 "id" : 12,
6901 "expression" : {
6902 "type" : "expression",
6903 "value" : {
6904 "op" : "not",
6905 "left" : null,
6906 "right" : {
6907 "type" : "expression",
6908 "value" : {
6909 "op" : "d2b",
6910 "left" : null,
6911 "right" : {
6912 "type" : "field",
6913 "value" : ["scalars", "spgw_ingress_hasReturned"]
6914 }
6915 }
6916 }
6917 }
6918 },
6919 "true_next" : "node_40",
6920 "false_next" : "node_47"
6921 },
6922 {
6923 "name" : "node_40",
6924 "id" : 13,
6925 "source_info" : {
6926 "filename" : "include/spgw.p4",
6927 "line" : 209,
6928 "column" : 12,
6929 "source_fragment" : "fabric_meta.spgw.pdr_hit == false"
6930 },
6931 "expression" : {
6932 "type" : "expression",
6933 "value" : {
6934 "op" : "==",
6935 "left" : {
6936 "type" : "expression",
6937 "value" : {
6938 "op" : "d2b",
6939 "left" : null,
6940 "right" : {
6941 "type" : "field",
6942 "value" : ["scalars", "fabric_metadata_t._spgw_pdr_hit24"]
6943 }
6944 }
6945 },
6946 "right" : {
6947 "type" : "bool",
6948 "value" : false
6949 }
6950 }
6951 },
6952 "true_next" : "FabricIngress.spgw_ingress.flexible_pdr_lookup",
6953 "false_next" : "tbl_act_17"
6954 },
6955 {
6956 "name" : "node_44",
6957 "id" : 14,
6958 "source_info" : {
6959 "filename" : "include/spgw.p4",
6960 "line" : 220,
6961 "column" : 12,
6962 "source_fragment" : "fabric_meta.spgw.far_dropped == true"
6963 },
6964 "expression" : {
6965 "type" : "expression",
6966 "value" : {
6967 "op" : "==",
6968 "left" : {
6969 "type" : "expression",
6970 "value" : {
6971 "op" : "d2b",
6972 "left" : null,
6973 "right" : {
6974 "type" : "field",
6975 "value" : ["scalars", "fabric_metadata_t._spgw_far_dropped25"]
6976 }
6977 }
6978 },
6979 "right" : {
6980 "type" : "bool",
6981 "value" : true
6982 }
6983 }
6984 },
6985 "true_next" : "tbl_act_18",
6986 "false_next" : "tbl_act_19"
6987 },
6988 {
6989 "name" : "node_47",
6990 "id" : 15,
6991 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006992 "filename" : "fabric.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006993 "line" : 71,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006994 "column" : 12,
6995 "source_fragment" : "fabric_metadata.skip_forwarding == false"
6996 },
6997 "expression" : {
6998 "type" : "expression",
6999 "value" : {
7000 "op" : "==",
7001 "left" : {
7002 "type" : "expression",
7003 "value" : {
7004 "op" : "d2b",
7005 "left" : null,
7006 "right" : {
7007 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07007008 "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007009 }
7010 }
7011 },
7012 "right" : {
7013 "type" : "bool",
7014 "value" : false
7015 }
7016 }
7017 },
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007018 "true_next" : "node_48",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007019 "false_next" : "FabricIngress.acl.acl"
7020 },
7021 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007022 "name" : "node_48",
7023 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007024 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007025 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07007026 "line" : 150,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007027 "column" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007028 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
7029 },
7030 "expression" : {
7031 "type" : "expression",
7032 "value" : {
7033 "op" : "==",
7034 "left" : {
7035 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07007036 "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007037 },
7038 "right" : {
7039 "type" : "hexstr",
7040 "value" : "0x00"
7041 }
7042 }
7043 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08007044 "true_next" : "FabricIngress.forwarding.bridging",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007045 "false_next" : "node_50"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007046 },
7047 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007048 "name" : "node_50",
7049 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007050 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007051 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07007052 "line" : 151,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007053 "column" : 17,
7054 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
7055 },
7056 "expression" : {
7057 "type" : "expression",
7058 "value" : {
7059 "op" : "==",
7060 "left" : {
7061 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07007062 "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007063 },
7064 "right" : {
7065 "type" : "hexstr",
7066 "value" : "0x01"
7067 }
7068 }
7069 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08007070 "true_next" : "FabricIngress.forwarding.mpls",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007071 "false_next" : "node_52"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007072 },
7073 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007074 "name" : "node_52",
7075 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007076 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007077 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07007078 "line" : 152,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007079 "column" : 17,
7080 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
7081 },
7082 "expression" : {
7083 "type" : "expression",
7084 "value" : {
7085 "op" : "==",
7086 "left" : {
7087 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07007088 "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007089 },
7090 "right" : {
7091 "type" : "hexstr",
7092 "value" : "0x02"
7093 }
7094 }
7095 },
Charles Chan384aea22018-08-23 22:08:02 -07007096 "true_next" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007097 "false_next" : "FabricIngress.acl.acl"
7098 },
7099 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007100 "name" : "node_55",
7101 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007102 "source_info" : {
7103 "filename" : "fabric.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07007104 "line" : 75,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007105 "column" : 12,
7106 "source_fragment" : "fabric_metadata.skip_next == false"
7107 },
7108 "expression" : {
7109 "type" : "expression",
7110 "value" : {
7111 "op" : "==",
7112 "left" : {
7113 "type" : "expression",
7114 "value" : {
7115 "op" : "d2b",
7116 "left" : null,
7117 "right" : {
7118 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07007119 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007120 }
7121 }
7122 },
7123 "right" : {
7124 "type" : "bool",
7125 "value" : false
7126 }
7127 }
7128 },
7129 "false_next" : null,
7130 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08007131 },
7132 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007133 "name" : "node_60",
7134 "id" : 20,
Yi Tseng27b9bc02018-04-12 14:52:40 +08007135 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007136 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007137 "line" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007138 "column" : 12,
7139 "source_fragment" : "standard_metadata.egress_spec < 511"
7140 },
7141 "expression" : {
7142 "type" : "expression",
7143 "value" : {
7144 "op" : "<",
7145 "left" : {
7146 "type" : "field",
7147 "value" : ["standard_metadata", "egress_spec"]
7148 },
7149 "right" : {
7150 "type" : "hexstr",
7151 "value" : "0x01ff"
7152 }
7153 }
7154 },
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007155 "true_next" : "tbl_act_20",
7156 "false_next" : "node_62"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007157 },
7158 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007159 "name" : "node_62",
7160 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007161 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007162 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007163 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007164 "column" : 12,
7165 "source_fragment" : "standard_metadata.ingress_port < 511"
7166 },
7167 "expression" : {
7168 "type" : "expression",
7169 "value" : {
7170 "op" : "<",
7171 "left" : {
7172 "type" : "field",
7173 "value" : ["standard_metadata", "ingress_port"]
7174 },
7175 "right" : {
7176 "type" : "hexstr",
7177 "value" : "0x01ff"
7178 }
7179 }
7180 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007181 "false_next" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007182 "true_next" : "tbl_act_21"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007183 }
7184 ]
7185 },
7186 {
7187 "name" : "egress",
7188 "id" : 1,
7189 "source_info" : {
7190 "filename" : "fabric.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07007191 "line" : 93,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007192 "column" : 8,
7193 "source_fragment" : "FabricEgress"
7194 },
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007195 "init_table" : "node_66",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007196 "tables" : [
7197 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007198 "name" : "tbl_act_22",
7199 "id" : 40,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007200 "source_info" : {
7201 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007202 "line" : 41,
7203 "column" : 12,
7204 "source_fragment" : "exit"
Carmelo Cascone3032b872019-04-13 01:23:54 -07007205 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02007206 "key" : [],
7207 "match_type" : "exact",
7208 "type" : "simple",
7209 "max_size" : 1024,
7210 "with_counters" : false,
7211 "support_timeout" : false,
7212 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007213 "action_ids" : [66],
7214 "actions" : ["act_22"],
7215 "base_default_next" : "node_68",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007216 "next_tables" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007217 "act_22" : "node_68"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007218 },
7219 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007220 "action_id" : 66,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007221 "action_const" : true,
7222 "action_data" : [],
7223 "action_entry_const" : true
7224 }
7225 },
7226 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007227 "name" : "tbl_act_23",
7228 "id" : 41,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007229 "source_info" : {
7230 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07007231 "line" : 44,
7232 "column" : 12,
7233 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07007234 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007235 "key" : [],
7236 "match_type" : "exact",
7237 "type" : "simple",
7238 "max_size" : 1024,
7239 "with_counters" : false,
7240 "support_timeout" : false,
7241 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007242 "action_ids" : [67],
7243 "actions" : ["act_23"],
7244 "base_default_next" : "node_70",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007245 "next_tables" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007246 "act_23" : "node_70"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007247 },
7248 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007249 "action_id" : 67,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007250 "action_const" : true,
7251 "action_data" : [],
7252 "action_entry_const" : true
7253 }
7254 },
7255 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007256 "name" : "tbl_act_24",
7257 "id" : 42,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007258 "source_info" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07007259 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007260 "line" : 337,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007261 "column" : 12,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07007262 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07007263 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007264 "key" : [],
7265 "match_type" : "exact",
7266 "type" : "simple",
7267 "max_size" : 1024,
7268 "with_counters" : false,
7269 "support_timeout" : false,
7270 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007271 "action_ids" : [68],
7272 "actions" : ["act_24"],
7273 "base_default_next" : "node_72",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007274 "next_tables" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007275 "act_24" : "node_72"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007276 },
7277 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007278 "action_id" : 68,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007279 "action_const" : true,
7280 "action_data" : [],
7281 "action_entry_const" : true
7282 }
7283 },
7284 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007285 "name" : "tbl_egress_next_pop_mpls_if_present",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007286 "id" : 43,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007287 "source_info" : {
7288 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007289 "line" : 341,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007290 "column" : 36,
7291 "source_fragment" : "pop_mpls_if_present()"
7292 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007293 "key" : [],
7294 "match_type" : "exact",
7295 "type" : "simple",
7296 "max_size" : 1024,
7297 "with_counters" : false,
7298 "support_timeout" : false,
7299 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007300 "action_ids" : [62],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007301 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
7302 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
7303 "next_tables" : {
7304 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
7305 },
7306 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007307 "action_id" : 62,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007308 "action_const" : true,
7309 "action_data" : [],
7310 "action_entry_const" : true
7311 }
7312 },
7313 {
7314 "name" : "tbl_egress_next_set_mpls",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007315 "id" : 44,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007316 "source_info" : {
7317 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007318 "line" : 343,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007319 "column" : 12,
7320 "source_fragment" : "set_mpls()"
7321 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007322 "key" : [],
7323 "match_type" : "exact",
7324 "type" : "simple",
7325 "max_size" : 1024,
7326 "with_counters" : false,
7327 "support_timeout" : false,
7328 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007329 "action_ids" : [63],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007330 "actions" : ["FabricEgress.egress_next.set_mpls"],
7331 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
7332 "next_tables" : {
7333 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
7334 },
7335 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007336 "action_id" : 63,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007337 "action_const" : true,
7338 "action_data" : [],
7339 "action_entry_const" : true
7340 }
7341 },
7342 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007343 "name" : "FabricEgress.egress_next.egress_vlan",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007344 "id" : 45,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007345 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007346 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007347 "line" : 320,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007348 "column" : 10,
7349 "source_fragment" : "egress_vlan"
7350 },
7351 "key" : [
7352 {
7353 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007354 "name" : "vlan_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07007355 "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007356 "mask" : null
7357 },
7358 {
7359 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007360 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007361 "target" : ["standard_metadata", "egress_port"],
7362 "mask" : null
7363 }
7364 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08007365 "match_type" : "exact",
7366 "type" : "simple",
7367 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08007368 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08007369 "support_timeout" : false,
7370 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007371 "action_ids" : [65, 60],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007372 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007373 "base_default_next" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08007374 "next_tables" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007375 "__HIT__" : "tbl_act_25",
7376 "__MISS__" : "tbl_act_26"
Daniele Moro7c3a0022019-07-12 13:38:34 -07007377 },
7378 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07007379 "action_id" : 60,
Daniele Moro7c3a0022019-07-12 13:38:34 -07007380 "action_const" : true,
7381 "action_data" : [],
7382 "action_entry_const" : true
7383 }
7384 },
7385 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007386 "name" : "tbl_act_25",
7387 "id" : 46,
Daniele Moro7c3a0022019-07-12 13:38:34 -07007388 "key" : [],
7389 "match_type" : "exact",
7390 "type" : "simple",
7391 "max_size" : 1024,
7392 "with_counters" : false,
7393 "support_timeout" : false,
7394 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007395 "action_ids" : [69],
7396 "actions" : ["act_25"],
7397 "base_default_next" : "node_79",
Daniele Moro7c3a0022019-07-12 13:38:34 -07007398 "next_tables" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007399 "act_25" : "node_79"
Daniele Moro7c3a0022019-07-12 13:38:34 -07007400 },
7401 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007402 "action_id" : 69,
7403 "action_const" : true,
7404 "action_data" : [],
7405 "action_entry_const" : true
7406 }
7407 },
7408 {
7409 "name" : "tbl_act_26",
7410 "id" : 47,
7411 "key" : [],
7412 "match_type" : "exact",
7413 "type" : "simple",
7414 "max_size" : 1024,
7415 "with_counters" : false,
7416 "support_timeout" : false,
7417 "direct_meters" : null,
7418 "action_ids" : [70],
7419 "actions" : ["act_26"],
7420 "base_default_next" : "node_79",
7421 "next_tables" : {
7422 "act_26" : "node_79"
7423 },
7424 "default_entry" : {
7425 "action_id" : 70,
Daniele Moro7c3a0022019-07-12 13:38:34 -07007426 "action_const" : true,
7427 "action_data" : [],
7428 "action_entry_const" : true
7429 }
7430 },
7431 {
7432 "name" : "tbl_egress_next_push_vlan",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007433 "id" : 48,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007434 "source_info" : {
7435 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007436 "line" : 360,
Daniele Moro7c3a0022019-07-12 13:38:34 -07007437 "column" : 20,
7438 "source_fragment" : "push_vlan()"
7439 },
7440 "key" : [],
7441 "match_type" : "exact",
7442 "type" : "simple",
7443 "max_size" : 1024,
7444 "with_counters" : false,
7445 "support_timeout" : false,
7446 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007447 "action_ids" : [64],
Daniele Moro7c3a0022019-07-12 13:38:34 -07007448 "actions" : ["FabricEgress.egress_next.push_vlan"],
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007449 "base_default_next" : "node_82",
Daniele Moro7c3a0022019-07-12 13:38:34 -07007450 "next_tables" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007451 "FabricEgress.egress_next.push_vlan" : "node_82"
Daniele Moro7c3a0022019-07-12 13:38:34 -07007452 },
7453 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007454 "action_id" : 64,
Daniele Moro7c3a0022019-07-12 13:38:34 -07007455 "action_const" : true,
7456 "action_data" : [],
7457 "action_entry_const" : true
7458 }
7459 },
7460 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007461 "name" : "tbl_act_27",
7462 "id" : 49,
Daniele Moro7c3a0022019-07-12 13:38:34 -07007463 "source_info" : {
7464 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007465 "line" : 369,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007466 "column" : 25,
7467 "source_fragment" : "="
7468 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007469 "key" : [],
7470 "match_type" : "exact",
7471 "type" : "simple",
7472 "max_size" : 1024,
7473 "with_counters" : false,
7474 "support_timeout" : false,
7475 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007476 "action_ids" : [72],
7477 "actions" : ["act_28"],
7478 "base_default_next" : "node_84",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007479 "next_tables" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007480 "act_28" : "node_84"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007481 },
7482 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007483 "action_id" : 72,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007484 "action_const" : true,
7485 "action_data" : [],
7486 "action_entry_const" : true
7487 }
7488 },
7489 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007490 "name" : "tbl_act_28",
7491 "id" : 50,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007492 "source_info" : {
7493 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007494 "line" : 370,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007495 "column" : 35,
7496 "source_fragment" : "mark_to_drop(standard_metadata)"
7497 },
7498 "key" : [],
7499 "match_type" : "exact",
7500 "type" : "simple",
7501 "max_size" : 1024,
7502 "with_counters" : false,
7503 "support_timeout" : false,
7504 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007505 "action_ids" : [71],
7506 "actions" : ["act_27"],
7507 "base_default_next" : "tbl_act_31",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007508 "next_tables" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007509 "act_27" : "tbl_act_31"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007510 },
7511 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007512 "action_id" : 71,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007513 "action_const" : true,
7514 "action_data" : [],
7515 "action_entry_const" : true
7516 }
7517 },
7518 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007519 "name" : "tbl_act_29",
7520 "id" : 51,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007521 "source_info" : {
7522 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007523 "line" : 373,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007524 "column" : 29,
7525 "source_fragment" : "="
7526 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007527 "key" : [],
7528 "match_type" : "exact",
7529 "type" : "simple",
7530 "max_size" : 1024,
7531 "with_counters" : false,
7532 "support_timeout" : false,
7533 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007534 "action_ids" : [74],
7535 "actions" : ["act_30"],
7536 "base_default_next" : "node_88",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007537 "next_tables" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007538 "act_30" : "node_88"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007539 },
7540 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007541 "action_id" : 74,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007542 "action_const" : true,
7543 "action_data" : [],
7544 "action_entry_const" : true
7545 }
7546 },
7547 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007548 "name" : "tbl_act_30",
7549 "id" : 52,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007550 "source_info" : {
7551 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007552 "line" : 374,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007553 "column" : 39,
7554 "source_fragment" : "mark_to_drop(standard_metadata)"
7555 },
7556 "key" : [],
7557 "match_type" : "exact",
7558 "type" : "simple",
7559 "max_size" : 1024,
7560 "with_counters" : false,
7561 "support_timeout" : false,
7562 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007563 "action_ids" : [73],
7564 "actions" : ["act_29"],
7565 "base_default_next" : "tbl_act_31",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007566 "next_tables" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007567 "act_29" : "tbl_act_31"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007568 },
7569 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007570 "action_id" : 73,
7571 "action_const" : true,
7572 "action_data" : [],
7573 "action_entry_const" : true
7574 }
7575 },
7576 {
7577 "name" : "tbl_act_31",
7578 "id" : 53,
7579 "source_info" : {
7580 "filename" : "include/spgw.p4",
7581 "line" : 288,
7582 "column" : 8,
7583 "source_fragment" : "pdr_counter.count(fabric_meta.spgw.ctr_id)"
7584 },
7585 "key" : [],
7586 "match_type" : "exact",
7587 "type" : "simple",
7588 "max_size" : 1024,
7589 "with_counters" : false,
7590 "support_timeout" : false,
7591 "direct_meters" : null,
7592 "action_ids" : [75],
7593 "actions" : ["act_31"],
7594 "base_default_next" : "node_91",
7595 "next_tables" : {
7596 "act_31" : "node_91"
7597 },
7598 "default_entry" : {
7599 "action_id" : 75,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007600 "action_const" : true,
7601 "action_data" : [],
7602 "action_entry_const" : true
7603 }
7604 },
7605 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007606 "name" : "tbl_spgw_egress_gtpu_encap",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007607 "id" : 54,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007608 "source_info" : {
7609 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007610 "line" : 291,
Carmelo Cascone3032b872019-04-13 01:23:54 -07007611 "column" : 12,
7612 "source_fragment" : "gtpu_encap()"
7613 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007614 "key" : [],
7615 "match_type" : "exact",
7616 "type" : "simple",
7617 "max_size" : 1024,
7618 "with_counters" : false,
7619 "support_timeout" : false,
7620 "direct_meters" : null,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007621 "action_ids" : [61],
Yi Tseng27b9bc02018-04-12 14:52:40 +08007622 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007623 "base_default_next" : null,
7624 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08007625 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007626 },
7627 "default_entry" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007628 "action_id" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007629 "action_const" : true,
7630 "action_data" : [],
7631 "action_entry_const" : true
7632 }
7633 }
7634 ],
7635 "action_profiles" : [],
7636 "conditionals" : [
7637 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007638 "name" : "node_66",
7639 "id" : 22,
Carmelo Casconea5400af2018-07-17 22:11:54 +02007640 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007641 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007642 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02007643 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007644 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02007645 },
7646 "expression" : {
7647 "type" : "expression",
7648 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007649 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02007650 "left" : {
7651 "type" : "expression",
7652 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007653 "op" : "d2b",
7654 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02007655 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007656 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07007657 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out11"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02007658 }
7659 }
7660 },
7661 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007662 "type" : "bool",
7663 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02007664 }
7665 }
7666 },
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007667 "true_next" : "tbl_act_22",
7668 "false_next" : "node_68"
Carmelo Casconea5400af2018-07-17 22:11:54 +02007669 },
7670 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007671 "name" : "node_68",
7672 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007673 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007674 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007675 "line" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007676 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08007677 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007678 },
7679 "expression" : {
7680 "type" : "expression",
7681 "value" : {
7682 "op" : "==",
7683 "left" : {
7684 "type" : "field",
7685 "value" : ["standard_metadata", "egress_port"]
7686 },
7687 "right" : {
7688 "type" : "hexstr",
7689 "value" : "0x00ff"
7690 }
7691 }
7692 },
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007693 "true_next" : "tbl_act_23",
7694 "false_next" : "node_70"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007695 },
7696 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007697 "name" : "node_70",
7698 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007699 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007700 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007701 "line" : 335,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007702 "column" : 12,
7703 "source_fragment" : "fabric_metadata.is_multicast == true ..."
7704 },
7705 "expression" : {
7706 "type" : "expression",
7707 "value" : {
7708 "op" : "and",
7709 "left" : {
7710 "type" : "expression",
7711 "value" : {
7712 "op" : "==",
7713 "left" : {
7714 "type" : "expression",
7715 "value" : {
7716 "op" : "d2b",
7717 "left" : null,
7718 "right" : {
7719 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07007720 "value" : ["scalars", "fabric_metadata_t._is_multicast10"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007721 }
7722 }
7723 },
7724 "right" : {
7725 "type" : "bool",
7726 "value" : true
7727 }
7728 }
7729 },
7730 "right" : {
7731 "type" : "expression",
7732 "value" : {
7733 "op" : "==",
7734 "left" : {
7735 "type" : "field",
7736 "value" : ["standard_metadata", "ingress_port"]
7737 },
7738 "right" : {
7739 "type" : "field",
7740 "value" : ["standard_metadata", "egress_port"]
7741 }
7742 }
7743 }
7744 }
7745 },
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007746 "true_next" : "tbl_act_24",
7747 "false_next" : "node_72"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007748 },
7749 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007750 "name" : "node_72",
7751 "id" : 25,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007752 "source_info" : {
7753 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007754 "line" : 340,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007755 "column" : 12,
7756 "source_fragment" : "fabric_metadata.mpls_label == 0"
7757 },
7758 "expression" : {
7759 "type" : "expression",
7760 "value" : {
7761 "op" : "==",
7762 "left" : {
7763 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07007764 "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007765 },
7766 "right" : {
7767 "type" : "hexstr",
7768 "value" : "0x000000"
7769 }
7770 }
7771 },
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007772 "true_next" : "node_73",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007773 "false_next" : "tbl_egress_next_set_mpls"
7774 },
7775 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007776 "name" : "node_73",
7777 "id" : 26,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007778 "source_info" : {
7779 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007780 "line" : 341,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007781 "column" : 16,
7782 "source_fragment" : "hdr.mpls.isValid()"
7783 },
7784 "expression" : {
7785 "type" : "expression",
7786 "value" : {
7787 "op" : "d2b",
7788 "left" : null,
7789 "right" : {
7790 "type" : "field",
7791 "value" : ["mpls", "$valid$"]
7792 }
7793 }
7794 },
7795 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007796 "false_next" : "FabricEgress.egress_next.egress_vlan"
7797 },
7798 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007799 "name" : "node_79",
7800 "id" : 27,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007801 "source_info" : {
7802 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007803 "line" : 357,
Daniele Moro7c3a0022019-07-12 13:38:34 -07007804 "column" : 16,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007805 "source_fragment" : "!egress_vlan.apply().hit"
7806 },
7807 "expression" : {
7808 "type" : "expression",
7809 "value" : {
7810 "op" : "not",
7811 "left" : null,
7812 "right" : {
7813 "type" : "expression",
7814 "value" : {
7815 "op" : "d2b",
7816 "left" : null,
7817 "right" : {
7818 "type" : "field",
7819 "value" : ["scalars", "egress_next_tmp"]
7820 }
7821 }
7822 }
7823 }
7824 },
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007825 "true_next" : "node_80",
7826 "false_next" : "node_82"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007827 },
7828 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007829 "name" : "node_80",
7830 "id" : 28,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007831 "source_info" : {
7832 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007833 "line" : 359,
Daniele Moro7c3a0022019-07-12 13:38:34 -07007834 "column" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007835 "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
7836 },
7837 "expression" : {
7838 "type" : "expression",
7839 "value" : {
7840 "op" : "!=",
7841 "left" : {
7842 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07007843 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007844 },
7845 "right" : {
7846 "type" : "hexstr",
7847 "value" : "0x0ffe"
7848 }
7849 }
7850 },
7851 "true_next" : "tbl_egress_next_push_vlan",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007852 "false_next" : "node_82"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007853 },
7854 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007855 "name" : "node_82",
7856 "id" : 29,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007857 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007858 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007859 "line" : 368,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007860 "column" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007861 "source_fragment" : "hdr.mpls.isValid()"
7862 },
7863 "expression" : {
7864 "type" : "expression",
7865 "value" : {
7866 "op" : "d2b",
7867 "left" : null,
7868 "right" : {
7869 "type" : "field",
7870 "value" : ["mpls", "$valid$"]
7871 }
7872 }
7873 },
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007874 "true_next" : "tbl_act_27",
7875 "false_next" : "node_86"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007876 },
7877 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007878 "name" : "node_84",
7879 "id" : 30,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007880 "source_info" : {
7881 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007882 "line" : 370,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007883 "column" : 16,
7884 "source_fragment" : "hdr.mpls.ttl == 0"
7885 },
7886 "expression" : {
7887 "type" : "expression",
7888 "value" : {
7889 "op" : "==",
7890 "left" : {
7891 "type" : "field",
7892 "value" : ["mpls", "ttl"]
7893 },
7894 "right" : {
7895 "type" : "hexstr",
7896 "value" : "0x00"
7897 }
7898 }
7899 },
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007900 "true_next" : "tbl_act_28",
7901 "false_next" : "tbl_act_31"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007902 },
7903 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007904 "name" : "node_86",
7905 "id" : 31,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007906 "source_info" : {
7907 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007908 "line" : 372,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007909 "column" : 15,
7910 "source_fragment" : "hdr.ipv4.isValid()"
7911 },
7912 "expression" : {
7913 "type" : "expression",
7914 "value" : {
7915 "op" : "d2b",
7916 "left" : null,
7917 "right" : {
7918 "type" : "field",
7919 "value" : ["ipv4", "$valid$"]
7920 }
7921 }
7922 },
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007923 "true_next" : "tbl_act_29",
7924 "false_next" : "tbl_act_31"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007925 },
7926 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007927 "name" : "node_88",
7928 "id" : 32,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007929 "source_info" : {
7930 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07007931 "line" : 374,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007932 "column" : 20,
7933 "source_fragment" : "hdr.ipv4.ttl == 0"
7934 },
7935 "expression" : {
7936 "type" : "expression",
7937 "value" : {
7938 "op" : "==",
7939 "left" : {
7940 "type" : "field",
7941 "value" : ["ipv4", "ttl"]
7942 },
7943 "right" : {
7944 "type" : "hexstr",
7945 "value" : "0x00"
7946 }
7947 }
7948 },
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007949 "true_next" : "tbl_act_30",
7950 "false_next" : "tbl_act_31"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007951 },
7952 {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007953 "name" : "node_91",
7954 "id" : 33,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007955 "source_info" : {
7956 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007957 "line" : 290,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007958 "column" : 12,
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007959 "source_fragment" : "fabric_meta.spgw.outer_header_creation == true"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007960 },
7961 "expression" : {
7962 "type" : "expression",
7963 "value" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007964 "op" : "==",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007965 "left" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007966 "type" : "expression",
7967 "value" : {
7968 "op" : "d2b",
7969 "left" : null,
7970 "right" : {
7971 "type" : "field",
7972 "value" : ["scalars", "fabric_metadata_t._spgw_outer_header_creation27"]
7973 }
7974 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007975 },
7976 "right" : {
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04007977 "type" : "bool",
7978 "value" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007979 }
7980 }
7981 },
7982 "false_next" : null,
7983 "true_next" : "tbl_spgw_egress_gtpu_encap"
7984 }
7985 ]
7986 }
7987 ],
7988 "checksums" : [
7989 {
7990 "name" : "cksum",
7991 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07007992 "source_info" : {
7993 "filename" : "include/checksum.p4",
7994 "line" : 28,
7995 "column" : 8,
7996 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
7997 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007998 "target" : ["ipv4", "hdr_checksum"],
7999 "type" : "generic",
8000 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08008001 "verify" : false,
8002 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008003 "if_cond" : {
8004 "type" : "expression",
8005 "value" : {
8006 "op" : "d2b",
8007 "left" : null,
8008 "right" : {
8009 "type" : "field",
8010 "value" : ["ipv4", "$valid$"]
8011 }
8012 }
8013 }
8014 },
8015 {
8016 "name" : "cksum_0",
8017 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07008018 "source_info" : {
8019 "filename" : "include/spgw.p4",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04008020 "line" : 306,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07008021 "column" : 8,
8022 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
8023 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02008024 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008025 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08008026 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08008027 "verify" : false,
8028 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008029 "if_cond" : {
8030 "type" : "expression",
8031 "value" : {
8032 "op" : "d2b",
8033 "left" : null,
8034 "right" : {
8035 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02008036 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008037 }
8038 }
8039 }
8040 },
8041 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08008042 "name" : "cksum_1",
8043 "id" : 2,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07008044 "source_info" : {
8045 "filename" : "include/checksum.p4",
8046 "line" : 57,
8047 "column" : 8,
8048 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
8049 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02008050 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008051 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08008052 "calculation" : "calc_1",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08008053 "verify" : true,
8054 "update" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008055 "if_cond" : {
8056 "type" : "expression",
8057 "value" : {
8058 "op" : "d2b",
8059 "left" : null,
8060 "right" : {
8061 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02008062 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008063 }
8064 }
8065 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008066 }
8067 ],
8068 "force_arith" : [],
8069 "extern_instances" : [],
8070 "field_aliases" : [
8071 [
8072 "queueing_metadata.enq_timestamp",
8073 ["standard_metadata", "enq_timestamp"]
8074 ],
8075 [
8076 "queueing_metadata.enq_qdepth",
8077 ["standard_metadata", "enq_qdepth"]
8078 ],
8079 [
8080 "queueing_metadata.deq_timedelta",
8081 ["standard_metadata", "deq_timedelta"]
8082 ],
8083 [
8084 "queueing_metadata.deq_qdepth",
8085 ["standard_metadata", "deq_qdepth"]
8086 ],
8087 [
8088 "intrinsic_metadata.ingress_global_timestamp",
8089 ["standard_metadata", "ingress_global_timestamp"]
8090 ],
8091 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08008092 "intrinsic_metadata.egress_global_timestamp",
8093 ["standard_metadata", "egress_global_timestamp"]
8094 ],
8095 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008096 "intrinsic_metadata.lf_field_list",
8097 ["standard_metadata", "lf_field_list"]
8098 ],
8099 [
8100 "intrinsic_metadata.mcast_grp",
8101 ["standard_metadata", "mcast_grp"]
8102 ],
8103 [
8104 "intrinsic_metadata.resubmit_flag",
8105 ["standard_metadata", "resubmit_flag"]
8106 ],
8107 [
8108 "intrinsic_metadata.egress_rid",
8109 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08008110 ],
8111 [
8112 "intrinsic_metadata.recirculate_flag",
8113 ["standard_metadata", "recirculate_flag"]
Carmelo Cascone9b607da2019-05-08 14:03:01 -07008114 ],
8115 [
8116 "intrinsic_metadata.priority",
8117 ["standard_metadata", "priority"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08008118 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02008119 ],
8120 "program" : "fabric.p4",
8121 "__meta__" : {
8122 "version" : [2, 18],
8123 "compiler" : "https://github.com/p4lang/p4c"
8124 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08008125}