blob: 47759c70054d8cb0d6347334eb49452fd9a49d97 [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],
33 ["fabric_metadata_t._spgw_direction15", 2, false],
34 ["fabric_metadata_t._spgw_ipv4_len16", 16, false],
35 ["fabric_metadata_t._spgw_teid17", 32, false],
36 ["fabric_metadata_t._spgw_s1u_enb_addr18", 32, false],
37 ["fabric_metadata_t._spgw_s1u_sgw_addr19", 32, false],
38 ["_padding_0", 2, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080039 ]
40 },
41 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020042 "name" : "standard_metadata",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080043 "id" : 1,
44 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020045 ["ingress_port", 9, false],
46 ["egress_spec", 9, false],
47 ["egress_port", 9, false],
48 ["clone_spec", 32, false],
49 ["instance_type", 32, false],
50 ["drop", 1, false],
51 ["recirculate_port", 16, false],
52 ["packet_length", 32, false],
53 ["enq_timestamp", 32, false],
54 ["enq_qdepth", 19, false],
55 ["deq_timedelta", 32, false],
56 ["deq_qdepth", 19, false],
57 ["ingress_global_timestamp", 48, false],
58 ["egress_global_timestamp", 48, false],
59 ["lf_field_list", 32, false],
60 ["mcast_grp", 16, false],
61 ["resubmit_flag", 32, false],
62 ["egress_rid", 16, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020063 ["recirculate_flag", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070064 ["checksum_error", 1, false],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -070065 ["parser_error", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070066 ["priority", 3, false],
67 ["_padding", 2, false]
Carmelo Cascone6af4e172018-06-15 16:01:30 +020068 ]
69 },
70 {
71 "name" : "ethernet_t",
72 "id" : 2,
73 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080074 ["dst_addr", 48, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070075 ["src_addr", 48, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080076 ]
77 },
78 {
79 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020080 "id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080081 "fields" : [
Daniele Moro5a2de712019-09-24 14:34:07 -070082 ["eth_type", 16, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080083 ["pri", 3, false],
84 ["cfi", 1, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070085 ["vlan_id", 12, false]
86 ]
87 },
88 {
89 "name" : "eth_type_t",
90 "id" : 4,
91 "fields" : [
92 ["value", 16, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080093 ]
94 },
95 {
96 "name" : "mpls_t",
Daniele Moro5a2de712019-09-24 14:34:07 -070097 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080098 "fields" : [
99 ["label", 20, false],
100 ["tc", 3, false],
101 ["bos", 1, false],
102 ["ttl", 8, false]
103 ]
104 },
105 {
106 "name" : "ipv4_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700107 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800108 "fields" : [
109 ["version", 4, false],
110 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900111 ["dscp", 6, false],
112 ["ecn", 2, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800113 ["total_len", 16, false],
114 ["identification", 16, false],
115 ["flags", 3, false],
116 ["frag_offset", 13, false],
117 ["ttl", 8, false],
118 ["protocol", 8, false],
119 ["hdr_checksum", 16, false],
120 ["src_addr", 32, false],
121 ["dst_addr", 32, false]
122 ]
123 },
124 {
125 "name" : "udp_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700126 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800127 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800128 ["sport", 16, false],
129 ["dport", 16, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800130 ["len", 16, false],
131 ["checksum", 16, false]
132 ]
133 },
134 {
135 "name" : "gtpu_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700136 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800137 "fields" : [
138 ["version", 3, false],
139 ["pt", 1, false],
140 ["spare", 1, false],
141 ["ex_flag", 1, false],
142 ["seq_flag", 1, false],
143 ["npdu_flag", 1, false],
144 ["msgtype", 8, false],
145 ["msglen", 16, false],
146 ["teid", 32, false]
147 ]
148 },
149 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800150 "name" : "tcp_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700151 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800152 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800153 ["sport", 16, false],
154 ["dport", 16, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800155 ["seq_no", 32, false],
156 ["ack_no", 32, false],
157 ["data_offset", 4, false],
158 ["res", 3, false],
159 ["ecn", 3, false],
160 ["ctrl", 6, false],
161 ["window", 16, false],
162 ["checksum", 16, false],
163 ["urgent_ptr", 16, false]
164 ]
165 },
166 {
167 "name" : "icmp_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700168 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800169 "fields" : [
170 ["icmp_type", 8, false],
171 ["icmp_code", 8, false],
172 ["checksum", 16, false],
173 ["identifier", 16, false],
174 ["sequence_number", 16, false],
175 ["timestamp", 64, false]
176 ]
177 },
178 {
179 "name" : "packet_out_header_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700180 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800181 "fields" : [
182 ["egress_port", 9, false],
183 ["_pad", 7, false]
184 ]
185 },
186 {
187 "name" : "packet_in_header_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700188 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800189 "fields" : [
190 ["ingress_port", 9, false],
191 ["_pad", 7, false]
192 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800193 }
194 ],
195 "headers" : [
196 {
197 "name" : "scalars",
198 "id" : 0,
199 "header_type" : "scalars_0",
200 "metadata" : true,
201 "pi_omit" : true
202 },
203 {
204 "name" : "standard_metadata",
205 "id" : 1,
206 "header_type" : "standard_metadata",
207 "metadata" : true,
208 "pi_omit" : true
209 },
210 {
211 "name" : "ethernet",
212 "id" : 2,
213 "header_type" : "ethernet_t",
214 "metadata" : false,
215 "pi_omit" : true
216 },
217 {
218 "name" : "vlan_tag",
219 "id" : 3,
220 "header_type" : "vlan_tag_t",
221 "metadata" : false,
222 "pi_omit" : true
223 },
224 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800225 "name" : "inner_vlan_tag",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800226 "id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800227 "header_type" : "vlan_tag_t",
228 "metadata" : false,
229 "pi_omit" : true
230 },
231 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700232 "name" : "eth_type",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800233 "id" : 5,
Daniele Moro5a2de712019-09-24 14:34:07 -0700234 "header_type" : "eth_type_t",
235 "metadata" : false,
236 "pi_omit" : true
237 },
238 {
239 "name" : "mpls",
240 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800241 "header_type" : "mpls_t",
242 "metadata" : false,
243 "pi_omit" : true
244 },
245 {
246 "name" : "gtpu_ipv4",
Daniele Moro5a2de712019-09-24 14:34:07 -0700247 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800248 "header_type" : "ipv4_t",
249 "metadata" : false,
250 "pi_omit" : true
251 },
252 {
253 "name" : "gtpu_udp",
Daniele Moro5a2de712019-09-24 14:34:07 -0700254 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800255 "header_type" : "udp_t",
256 "metadata" : false,
257 "pi_omit" : true
258 },
259 {
260 "name" : "gtpu",
Daniele Moro5a2de712019-09-24 14:34:07 -0700261 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800262 "header_type" : "gtpu_t",
263 "metadata" : false,
264 "pi_omit" : true
265 },
266 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700267 "name" : "inner_ipv4",
Daniele Moro5a2de712019-09-24 14:34:07 -0700268 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800269 "header_type" : "ipv4_t",
270 "metadata" : false,
271 "pi_omit" : true
272 },
273 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700274 "name" : "inner_udp",
Daniele Moro5a2de712019-09-24 14:34:07 -0700275 "id" : 11,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700276 "header_type" : "udp_t",
277 "metadata" : false,
278 "pi_omit" : true
279 },
280 {
281 "name" : "ipv4",
Daniele Moro5a2de712019-09-24 14:34:07 -0700282 "id" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800283 "header_type" : "ipv4_t",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800284 "metadata" : false,
285 "pi_omit" : true
286 },
287 {
288 "name" : "tcp",
Daniele Moro5a2de712019-09-24 14:34:07 -0700289 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800290 "header_type" : "tcp_t",
291 "metadata" : false,
292 "pi_omit" : true
293 },
294 {
295 "name" : "udp",
Daniele Moro5a2de712019-09-24 14:34:07 -0700296 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800297 "header_type" : "udp_t",
298 "metadata" : false,
299 "pi_omit" : true
300 },
301 {
302 "name" : "icmp",
Daniele Moro5a2de712019-09-24 14:34:07 -0700303 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800304 "header_type" : "icmp_t",
305 "metadata" : false,
306 "pi_omit" : true
307 },
308 {
309 "name" : "packet_out",
Daniele Moro5a2de712019-09-24 14:34:07 -0700310 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800311 "header_type" : "packet_out_header_t",
312 "metadata" : false,
313 "pi_omit" : true
314 },
315 {
316 "name" : "packet_in",
Daniele Moro5a2de712019-09-24 14:34:07 -0700317 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800318 "header_type" : "packet_in_header_t",
319 "metadata" : false,
320 "pi_omit" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800321 }
322 ],
323 "header_stacks" : [],
324 "header_union_types" : [],
325 "header_unions" : [],
326 "header_union_stacks" : [],
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700327 "field_lists" : [
328 {
329 "id" : 1,
330 "name" : "fl",
331 "source_info" : {
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700332 "filename" : "include/control/acl.p4",
333 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700334 "column" : 40,
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700335 "source_fragment" : "{standard_metadata.ingress_port}"
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700336 },
337 "elements" : [
338 {
339 "type" : "field",
340 "value" : ["standard_metadata", "ingress_port"]
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700341 }
342 ]
343 }
344 ],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700345 "errors" : [
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700346 ["NoError", 1],
347 ["PacketTooShort", 2],
348 ["NoMatch", 3],
349 ["StackOutOfBounds", 4],
350 ["HeaderTooShort", 5],
351 ["ParserTimeout", 6],
352 ["ParserInvalidArgument", 7]
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700353 ],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800354 "enums" : [],
355 "parsers" : [
356 {
357 "name" : "parser",
358 "id" : 0,
359 "init_state" : "start",
360 "parse_states" : [
361 {
362 "name" : "start",
363 "id" : 0,
364 "parser_ops" : [],
365 "transitions" : [
366 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800367 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800368 "value" : "0x00ff",
369 "mask" : null,
370 "next_state" : "parse_packet_out"
371 },
372 {
373 "value" : "default",
374 "mask" : null,
375 "next_state" : "parse_ethernet"
376 }
377 ],
378 "transition_key" : [
379 {
380 "type" : "field",
381 "value" : ["standard_metadata", "ingress_port"]
382 }
383 ]
384 },
385 {
386 "name" : "parse_packet_out",
387 "id" : 1,
388 "parser_ops" : [
389 {
390 "parameters" : [
391 {
392 "type" : "regular",
393 "value" : "packet_out"
394 }
395 ],
396 "op" : "extract"
397 }
398 ],
399 "transitions" : [
400 {
401 "value" : "default",
402 "mask" : null,
403 "next_state" : "parse_ethernet"
404 }
405 ],
406 "transition_key" : []
407 },
408 {
409 "name" : "parse_ethernet",
410 "id" : 2,
411 "parser_ops" : [
412 {
413 "parameters" : [
414 {
415 "type" : "regular",
416 "value" : "ethernet"
417 }
418 ],
419 "op" : "extract"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800420 },
421 {
422 "parameters" : [
423 {
424 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700425 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800426 },
427 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700428 "type" : "hexstr",
429 "value" : "0x0ffe"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800430 }
431 ],
432 "op" : "set"
433 },
434 {
435 "parameters" : [
436 {
437 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700438 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800439 },
440 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700441 "type" : "lookahead",
442 "value" : [0, 16]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800443 }
444 ],
445 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800446 }
447 ],
448 "transitions" : [
449 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800450 "type" : "hexstr",
Daniele Moro77654f92019-07-30 10:29:54 -0700451 "value" : "0x88a8",
452 "mask" : null,
453 "next_state" : "parse_vlan_tag"
454 },
455 {
456 "type" : "hexstr",
457 "value" : "0x9100",
458 "mask" : null,
459 "next_state" : "parse_vlan_tag"
460 },
461 {
462 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800463 "value" : "0x8100",
464 "mask" : null,
465 "next_state" : "parse_vlan_tag"
466 },
467 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800468 "value" : "default",
469 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700470 "next_state" : "parse_eth_type"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800471 }
472 ],
473 "transition_key" : [
474 {
475 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700476 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800477 }
478 ]
479 },
480 {
481 "name" : "parse_vlan_tag",
482 "id" : 3,
483 "parser_ops" : [
484 {
485 "parameters" : [
486 {
487 "type" : "regular",
488 "value" : "vlan_tag"
489 }
490 ],
491 "op" : "extract"
Daniele Moro5a2de712019-09-24 14:34:07 -0700492 },
493 {
494 "parameters" : [
495 {
496 "type" : "field",
497 "value" : ["scalars", "tmp_3"]
498 },
499 {
500 "type" : "lookahead",
501 "value" : [0, 16]
502 }
503 ],
504 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800505 }
506 ],
507 "transitions" : [
508 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800509 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800510 "value" : "0x8100",
511 "mask" : null,
512 "next_state" : "parse_inner_vlan_tag"
513 },
514 {
515 "value" : "default",
516 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700517 "next_state" : "parse_eth_type"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800518 }
519 ],
520 "transition_key" : [
521 {
522 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700523 "value" : ["scalars", "tmp_3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800524 }
525 ]
526 },
527 {
528 "name" : "parse_inner_vlan_tag",
529 "id" : 4,
530 "parser_ops" : [
531 {
532 "parameters" : [
533 {
534 "type" : "regular",
535 "value" : "inner_vlan_tag"
536 }
537 ],
538 "op" : "extract"
539 }
540 ],
541 "transitions" : [
542 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700543 "value" : "default",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800544 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700545 "next_state" : "parse_eth_type"
546 }
547 ],
548 "transition_key" : []
549 },
550 {
551 "name" : "parse_eth_type",
552 "id" : 5,
553 "parser_ops" : [
554 {
555 "parameters" : [
556 {
557 "type" : "regular",
558 "value" : "eth_type"
559 }
560 ],
561 "op" : "extract"
562 }
563 ],
564 "transitions" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800565 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800566 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800567 "value" : "0x8847",
568 "mask" : null,
569 "next_state" : "parse_mpls"
570 },
571 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700572 "type" : "hexstr",
573 "value" : "0x0800",
574 "mask" : null,
575 "next_state" : "parse_ipv4"
576 },
577 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800578 "value" : "default",
579 "mask" : null,
580 "next_state" : null
581 }
582 ],
583 "transition_key" : [
584 {
585 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700586 "value" : ["eth_type", "value"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800587 }
588 ]
589 },
590 {
591 "name" : "parse_mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -0700592 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800593 "parser_ops" : [
594 {
595 "parameters" : [
596 {
597 "type" : "regular",
598 "value" : "mpls"
599 }
600 ],
601 "op" : "extract"
602 },
603 {
604 "parameters" : [
605 {
606 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700607 "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800608 },
609 {
610 "type" : "field",
611 "value" : ["mpls", "label"]
612 }
613 ],
614 "op" : "set"
615 },
616 {
617 "parameters" : [
618 {
619 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700620 "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800621 },
622 {
623 "type" : "field",
624 "value" : ["mpls", "ttl"]
625 }
626 ],
627 "op" : "set"
628 },
629 {
630 "parameters" : [
631 {
632 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700633 "value" : ["scalars", "tmp_4"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800634 },
635 {
636 "type" : "lookahead",
637 "value" : [0, 4]
638 }
639 ],
640 "op" : "set"
641 }
642 ],
643 "transitions" : [
644 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800645 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800646 "value" : "0x04",
647 "mask" : null,
648 "next_state" : "parse_ipv4"
649 },
650 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800651 "value" : "default",
652 "mask" : null,
653 "next_state" : "parse_ethernet"
654 }
655 ],
656 "transition_key" : [
657 {
658 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700659 "value" : ["scalars", "tmp_4"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800660 }
661 ]
662 },
663 {
Daniele Moro7c3a0022019-07-12 13:38:34 -0700664 "name" : "parse_ipv4",
665 "id" : 7,
666 "parser_ops" : [
667 {
668 "parameters" : [
669 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800670 "type" : "regular",
671 "value" : "ipv4"
672 }
673 ],
674 "op" : "extract"
675 },
676 {
677 "parameters" : [
678 {
679 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700680 "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800681 },
682 {
683 "type" : "field",
684 "value" : ["ipv4", "protocol"]
685 }
686 ],
687 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800688 },
689 {
690 "parameters" : [
691 {
692 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700693 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800694 },
695 {
696 "type" : "hexstr",
697 "value" : "0x0800"
698 }
699 ],
700 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800701 }
702 ],
703 "transitions" : [
704 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800705 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800706 "value" : "0x06",
707 "mask" : null,
708 "next_state" : "parse_tcp"
709 },
710 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800711 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800712 "value" : "0x11",
713 "mask" : null,
714 "next_state" : "parse_udp"
715 },
716 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800717 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800718 "value" : "0x01",
719 "mask" : null,
720 "next_state" : "parse_icmp"
721 },
722 {
723 "value" : "default",
724 "mask" : null,
725 "next_state" : null
726 }
727 ],
728 "transition_key" : [
729 {
730 "type" : "field",
731 "value" : ["ipv4", "protocol"]
732 }
733 ]
734 },
735 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800736 "name" : "parse_tcp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700737 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800738 "parser_ops" : [
739 {
740 "parameters" : [
741 {
742 "type" : "regular",
743 "value" : "tcp"
744 }
745 ],
746 "op" : "extract"
747 },
748 {
749 "parameters" : [
750 {
751 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700752 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800753 },
754 {
755 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800756 "value" : ["tcp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800757 }
758 ],
759 "op" : "set"
760 },
761 {
762 "parameters" : [
763 {
764 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700765 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800766 },
767 {
768 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800769 "value" : ["tcp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800770 }
771 ],
772 "op" : "set"
773 }
774 ],
775 "transitions" : [
776 {
777 "value" : "default",
778 "mask" : null,
779 "next_state" : null
780 }
781 ],
782 "transition_key" : []
783 },
784 {
785 "name" : "parse_udp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700786 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800787 "parser_ops" : [
788 {
789 "parameters" : [
790 {
791 "type" : "regular",
792 "value" : "udp"
793 }
794 ],
795 "op" : "extract"
796 },
797 {
798 "parameters" : [
799 {
800 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700801 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800802 },
803 {
804 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800805 "value" : ["udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800806 }
807 ],
808 "op" : "set"
809 },
810 {
811 "parameters" : [
812 {
813 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700814 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800815 },
816 {
817 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800818 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800819 }
820 ],
821 "op" : "set"
822 }
823 ],
824 "transitions" : [
825 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800826 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800827 "value" : "0x0868",
828 "mask" : null,
829 "next_state" : "parse_gtpu"
830 },
831 {
832 "value" : "default",
833 "mask" : null,
834 "next_state" : null
835 }
836 ],
837 "transition_key" : [
838 {
839 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800840 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800841 }
842 ]
843 },
844 {
845 "name" : "parse_icmp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700846 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800847 "parser_ops" : [
848 {
849 "parameters" : [
850 {
851 "type" : "regular",
852 "value" : "icmp"
853 }
854 ],
855 "op" : "extract"
856 }
857 ],
858 "transitions" : [
859 {
860 "value" : "default",
861 "mask" : null,
862 "next_state" : null
863 }
864 ],
865 "transition_key" : []
866 },
867 {
868 "name" : "parse_gtpu",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700869 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800870 "parser_ops" : [
871 {
872 "parameters" : [
873 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700874 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800875 "value" : ["scalars", "tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700876 },
877 {
878 "type" : "expression",
879 "value" : {
880 "type" : "expression",
881 "value" : {
882 "op" : "&",
883 "left" : {
884 "type" : "expression",
885 "value" : {
886 "op" : "&",
887 "left" : {
888 "type" : "expression",
889 "value" : {
890 "op" : ">>",
891 "left" : {
892 "type" : "field",
893 "value" : ["ipv4", "dst_addr"]
894 },
895 "right" : {
896 "type" : "hexstr",
897 "value" : "0x18"
898 }
899 }
900 },
901 "right" : {
902 "type" : "hexstr",
903 "value" : "0xffffffff"
904 }
905 }
906 },
907 "right" : {
908 "type" : "hexstr",
909 "value" : "0xff"
910 }
911 }
912 }
913 }
914 ],
915 "op" : "set"
916 }
917 ],
918 "transitions" : [
919 {
920 "type" : "hexstr",
921 "value" : "0x8c",
922 "mask" : null,
923 "next_state" : "do_parse_gtpu"
924 },
925 {
926 "value" : "default",
927 "mask" : null,
928 "next_state" : null
929 }
930 ],
931 "transition_key" : [
932 {
933 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800934 "value" : ["scalars", "tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700935 }
936 ]
937 },
938 {
939 "name" : "do_parse_gtpu",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700940 "id" : 12,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700941 "parser_ops" : [
942 {
943 "parameters" : [
944 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800945 "type" : "regular",
946 "value" : "gtpu"
947 }
948 ],
949 "op" : "extract"
950 },
951 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800952 "parameters" : [
953 {
954 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700955 "value" : "inner_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800956 }
957 ],
958 "op" : "extract"
959 }
960 ],
961 "transitions" : [
962 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800963 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800964 "value" : "0x06",
965 "mask" : null,
966 "next_state" : "parse_tcp"
967 },
968 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800969 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800970 "value" : "0x11",
971 "mask" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700972 "next_state" : "parse_inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800973 },
974 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800975 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800976 "value" : "0x01",
977 "mask" : null,
978 "next_state" : "parse_icmp"
979 },
980 {
981 "value" : "default",
982 "mask" : null,
983 "next_state" : null
984 }
985 ],
986 "transition_key" : [
987 {
988 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700989 "value" : ["inner_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800990 }
991 ]
992 },
993 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700994 "name" : "parse_inner_udp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700995 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800996 "parser_ops" : [
997 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800998 "parameters" : [
999 {
1000 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001001 "value" : "inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001002 }
1003 ],
1004 "op" : "extract"
1005 },
1006 {
1007 "parameters" : [
1008 {
1009 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001010 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001011 },
1012 {
1013 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001014 "value" : ["inner_udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001015 }
1016 ],
1017 "op" : "set"
1018 },
1019 {
1020 "parameters" : [
1021 {
1022 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001023 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001024 },
1025 {
1026 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001027 "value" : ["inner_udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001028 }
1029 ],
1030 "op" : "set"
1031 }
1032 ],
1033 "transitions" : [
1034 {
1035 "value" : "default",
1036 "mask" : null,
1037 "next_state" : null
1038 }
1039 ],
1040 "transition_key" : []
1041 }
1042 ]
1043 }
1044 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001045 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001046 "deparsers" : [
1047 {
1048 "name" : "deparser",
1049 "id" : 0,
1050 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001051 "filename" : "include/parser.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001052 "line" : 265,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001053 "column" : 8,
1054 "source_fragment" : "FabricDeparser"
1055 },
Daniele Moro5a2de712019-09-24 14:34:07 -07001056 "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 -08001057 }
1058 ],
1059 "meter_arrays" : [],
1060 "counter_arrays" : [
1061 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001062 "name" : "FabricIngress.spgw_ingress.ue_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001063 "id" : 0,
1064 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001065 "binding" : "FabricIngress.spgw_ingress.dl_sess_lookup",
1066 "source_info" : {
1067 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001068 "line" : 52,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001069 "column" : 50,
1070 "source_fragment" : "ue_counter"
1071 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001072 },
1073 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001074 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001075 "id" : 1,
1076 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001077 "binding" : "FabricIngress.filtering.ingress_port_vlan",
1078 "source_info" : {
1079 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001080 "line" : 31,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001081 "column" : 50,
1082 "source_fragment" : "ingress_port_vlan_counter"
1083 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001084 },
1085 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001086 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001087 "id" : 2,
1088 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001089 "binding" : "FabricIngress.filtering.fwd_classifier",
1090 "source_info" : {
1091 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001092 "line" : 85,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001093 "column" : 50,
1094 "source_fragment" : "fwd_classifier_counter"
1095 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001096 },
1097 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001098 "name" : "FabricIngress.forwarding.bridging_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001099 "id" : 3,
1100 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001101 "binding" : "FabricIngress.forwarding.bridging",
1102 "source_info" : {
1103 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001104 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001105 "column" : 50,
1106 "source_fragment" : "bridging_counter"
1107 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001108 },
1109 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001110 "name" : "FabricIngress.forwarding.mpls_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001111 "id" : 4,
1112 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001113 "binding" : "FabricIngress.forwarding.mpls",
1114 "source_info" : {
1115 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001116 "line" : 63,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001117 "column" : 50,
1118 "source_fragment" : "mpls_counter"
1119 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001120 },
1121 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001122 "name" : "FabricIngress.acl.acl_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001123 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001124 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001125 "binding" : "FabricIngress.acl.acl",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001126 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001127 "filename" : "include/control/acl.p4",
1128 "line" : 30,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001129 "column" : 50,
1130 "source_fragment" : "acl_counter"
1131 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001132 },
1133 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001134 "name" : "FabricIngress.next.next_vlan_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001135 "id" : 6,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001136 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001137 "binding" : "FabricIngress.next.next_vlan",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001138 "source_info" : {
1139 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001140 "line" : 67,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001141 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001142 "source_fragment" : "next_vlan_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001143 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001144 },
1145 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001146 "name" : "FabricIngress.next.xconnect_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001147 "id" : 7,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001148 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001149 "binding" : "FabricIngress.next.xconnect",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001150 "source_info" : {
1151 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001152 "line" : 107,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001153 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001154 "source_fragment" : "xconnect_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001155 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001156 },
1157 {
1158 "name" : "FabricIngress.next.hashed_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001159 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001160 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001161 "binding" : "FabricIngress.next.hashed",
1162 "source_info" : {
1163 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001164 "line" : 184,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001165 "column" : 50,
1166 "source_fragment" : "hashed_counter"
1167 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001168 },
1169 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001170 "name" : "FabricIngress.next.multicast_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001171 "id" : 9,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001172 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001173 "binding" : "FabricIngress.next.multicast",
1174 "source_info" : {
1175 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001176 "line" : 228,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001177 "column" : 50,
1178 "source_fragment" : "multicast_counter"
1179 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00001180 },
1181 {
1182 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001183 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001184 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001185 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001186 "line" : 26,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001187 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001188 "source_fragment" : "egress_port_counter"
1189 },
1190 "size" : 511,
1191 "is_direct" : false
1192 },
1193 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001194 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001195 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001196 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001197 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001198 "line" : 27,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001199 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001200 "source_fragment" : "ingress_port_counter"
1201 },
1202 "size" : 511,
1203 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08001204 },
1205 {
1206 "name" : "FabricEgress.egress_next.egress_vlan_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001207 "id" : 12,
Yi Tseng47eac892018-07-11 02:17:04 +08001208 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001209 "binding" : "FabricEgress.egress_next.egress_vlan",
1210 "source_info" : {
1211 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001212 "line" : 313,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001213 "column" : 50,
1214 "source_fragment" : "egress_vlan_counter"
1215 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001216 }
1217 ],
1218 "register_arrays" : [],
1219 "calculations" : [
1220 {
1221 "name" : "calc",
1222 "id" : 0,
1223 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001224 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001225 "line" : 28,
1226 "column" : 8,
1227 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1228 },
1229 "algo" : "csum16",
1230 "input" : [
1231 {
1232 "type" : "field",
1233 "value" : ["ipv4", "version"]
1234 },
1235 {
1236 "type" : "field",
1237 "value" : ["ipv4", "ihl"]
1238 },
1239 {
1240 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001241 "value" : ["ipv4", "dscp"]
1242 },
1243 {
1244 "type" : "field",
1245 "value" : ["ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001246 },
1247 {
1248 "type" : "field",
1249 "value" : ["ipv4", "total_len"]
1250 },
1251 {
1252 "type" : "field",
1253 "value" : ["ipv4", "identification"]
1254 },
1255 {
1256 "type" : "field",
1257 "value" : ["ipv4", "flags"]
1258 },
1259 {
1260 "type" : "field",
1261 "value" : ["ipv4", "frag_offset"]
1262 },
1263 {
1264 "type" : "field",
1265 "value" : ["ipv4", "ttl"]
1266 },
1267 {
1268 "type" : "field",
1269 "value" : ["ipv4", "protocol"]
1270 },
1271 {
1272 "type" : "field",
1273 "value" : ["ipv4", "src_addr"]
1274 },
1275 {
1276 "type" : "field",
1277 "value" : ["ipv4", "dst_addr"]
1278 }
1279 ]
1280 },
1281 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001282 "name" : "calc_0",
1283 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001284 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001285 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001286 "line" : 243,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001287 "column" : 8,
1288 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1289 },
1290 "algo" : "csum16",
1291 "input" : [
1292 {
1293 "type" : "field",
1294 "value" : ["gtpu_ipv4", "version"]
1295 },
1296 {
1297 "type" : "field",
1298 "value" : ["gtpu_ipv4", "ihl"]
1299 },
1300 {
1301 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001302 "value" : ["gtpu_ipv4", "dscp"]
1303 },
1304 {
1305 "type" : "field",
1306 "value" : ["gtpu_ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001307 },
1308 {
1309 "type" : "field",
1310 "value" : ["gtpu_ipv4", "total_len"]
1311 },
1312 {
1313 "type" : "field",
1314 "value" : ["gtpu_ipv4", "identification"]
1315 },
1316 {
1317 "type" : "field",
1318 "value" : ["gtpu_ipv4", "flags"]
1319 },
1320 {
1321 "type" : "field",
1322 "value" : ["gtpu_ipv4", "frag_offset"]
1323 },
1324 {
1325 "type" : "field",
1326 "value" : ["gtpu_ipv4", "ttl"]
1327 },
1328 {
1329 "type" : "field",
1330 "value" : ["gtpu_ipv4", "protocol"]
1331 },
1332 {
1333 "type" : "field",
1334 "value" : ["gtpu_ipv4", "src_addr"]
1335 },
1336 {
1337 "type" : "field",
1338 "value" : ["gtpu_ipv4", "dst_addr"]
1339 }
1340 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001341 },
1342 {
1343 "name" : "calc_1",
1344 "id" : 2,
1345 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001346 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001347 "line" : 57,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001348 "column" : 8,
1349 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1350 },
1351 "algo" : "csum16",
1352 "input" : [
1353 {
1354 "type" : "field",
1355 "value" : ["ipv4", "version"]
1356 },
1357 {
1358 "type" : "field",
1359 "value" : ["ipv4", "ihl"]
1360 },
1361 {
1362 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001363 "value" : ["ipv4", "dscp"]
1364 },
1365 {
1366 "type" : "field",
1367 "value" : ["ipv4", "ecn"]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001368 },
1369 {
1370 "type" : "field",
1371 "value" : ["ipv4", "total_len"]
1372 },
1373 {
1374 "type" : "field",
1375 "value" : ["ipv4", "identification"]
1376 },
1377 {
1378 "type" : "field",
1379 "value" : ["ipv4", "flags"]
1380 },
1381 {
1382 "type" : "field",
1383 "value" : ["ipv4", "frag_offset"]
1384 },
1385 {
1386 "type" : "field",
1387 "value" : ["ipv4", "ttl"]
1388 },
1389 {
1390 "type" : "field",
1391 "value" : ["ipv4", "protocol"]
1392 },
1393 {
1394 "type" : "field",
1395 "value" : ["ipv4", "src_addr"]
1396 },
1397 {
1398 "type" : "field",
1399 "value" : ["ipv4", "dst_addr"]
1400 }
1401 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001402 }
1403 ],
1404 "learn_lists" : [],
1405 "actions" : [
1406 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001407 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001408 "id" : 0,
1409 "runtime_data" : [],
1410 "primitives" : []
1411 },
1412 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001413 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001414 "id" : 1,
1415 "runtime_data" : [],
1416 "primitives" : []
1417 },
1418 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001419 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001420 "id" : 2,
1421 "runtime_data" : [],
1422 "primitives" : []
1423 },
1424 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001425 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001426 "id" : 3,
1427 "runtime_data" : [],
1428 "primitives" : []
1429 },
1430 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001431 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001432 "id" : 4,
1433 "runtime_data" : [],
1434 "primitives" : []
1435 },
1436 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001437 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001438 "id" : 5,
1439 "runtime_data" : [],
1440 "primitives" : []
1441 },
1442 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001443 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001444 "id" : 6,
1445 "runtime_data" : [],
1446 "primitives" : []
1447 },
1448 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001449 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001450 "id" : 7,
1451 "runtime_data" : [],
1452 "primitives" : []
1453 },
1454 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001455 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001456 "id" : 8,
1457 "runtime_data" : [],
1458 "primitives" : []
1459 },
1460 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001461 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001462 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001463 "runtime_data" : [],
1464 "primitives" : [
1465 {
1466 "op" : "remove_header",
1467 "parameters" : [
1468 {
1469 "type" : "header",
1470 "value" : "gtpu_ipv4"
1471 }
1472 ],
1473 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001474 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001475 "line" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001476 "column" : 8,
1477 "source_fragment" : "gtpu_ipv4.setInvalid()"
1478 }
1479 },
1480 {
1481 "op" : "remove_header",
1482 "parameters" : [
1483 {
1484 "type" : "header",
1485 "value" : "gtpu_udp"
1486 }
1487 ],
1488 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001489 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001490 "line" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001491 "column" : 8,
1492 "source_fragment" : "gtpu_udp.setInvalid()"
1493 }
1494 },
1495 {
1496 "op" : "remove_header",
1497 "parameters" : [
1498 {
1499 "type" : "header",
1500 "value" : "gtpu"
1501 }
1502 ],
1503 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001504 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001505 "line" : 58,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001506 "column" : 8,
1507 "source_fragment" : "gtpu.setInvalid()"
1508 }
1509 }
1510 ]
1511 },
1512 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001513 "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001514 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001515 "runtime_data" : [
1516 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001517 "name" : "teid",
1518 "bitwidth" : 32
1519 },
1520 {
1521 "name" : "s1u_enb_addr",
1522 "bitwidth" : 32
1523 },
1524 {
1525 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001526 "bitwidth" : 32
1527 }
1528 ],
1529 "primitives" : [
1530 {
1531 "op" : "assign",
1532 "parameters" : [
1533 {
1534 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001535 "value" : ["scalars", "fabric_metadata_t._spgw_teid17"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001536 },
1537 {
1538 "type" : "runtime_data",
1539 "value" : 0
1540 }
1541 ],
1542 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001543 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001544 "line" : 64,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001545 "column" : 30,
1546 "source_fragment" : "= teid; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001547 }
1548 },
1549 {
1550 "op" : "assign",
1551 "parameters" : [
1552 {
1553 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001554 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr18"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001555 },
1556 {
1557 "type" : "runtime_data",
1558 "value" : 1
1559 }
1560 ],
1561 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001562 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001563 "line" : 65,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001564 "column" : 38,
1565 "source_fragment" : "= s1u_enb_addr; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001566 }
1567 },
1568 {
1569 "op" : "assign",
1570 "parameters" : [
1571 {
1572 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001573 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr19"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001574 },
1575 {
1576 "type" : "runtime_data",
1577 "value" : 2
1578 }
1579 ],
1580 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001581 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001582 "line" : 66,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001583 "column" : 38,
1584 "source_fragment" : "= s1u_sgw_addr; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001585 }
1586 }
1587 ]
1588 },
1589 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001590 "name" : "FabricIngress.filtering.deny",
1591 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001592 "runtime_data" : [],
1593 "primitives" : [
1594 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001595 "op" : "assign",
1596 "parameters" : [
1597 {
1598 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001599 "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001600 },
1601 {
1602 "type" : "expression",
1603 "value" : {
1604 "type" : "expression",
1605 "value" : {
1606 "op" : "b2d",
1607 "left" : null,
1608 "right" : {
1609 "type" : "bool",
1610 "value" : true
1611 }
1612 }
1613 }
1614 }
1615 ],
1616 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001617 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001618 "line" : 36,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001619 "column" : 40,
1620 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001621 }
1622 },
1623 {
1624 "op" : "assign",
1625 "parameters" : [
1626 {
1627 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001628 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001629 },
1630 {
1631 "type" : "expression",
1632 "value" : {
1633 "type" : "expression",
1634 "value" : {
1635 "op" : "b2d",
1636 "left" : null,
1637 "right" : {
1638 "type" : "bool",
1639 "value" : true
1640 }
1641 }
1642 }
1643 }
1644 ],
1645 "source_info" : {
1646 "filename" : "include/control/filtering.p4",
1647 "line" : 37,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001648 "column" : 34,
1649 "source_fragment" : "= true; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001650 }
1651 }
1652 ]
1653 },
1654 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001655 "name" : "FabricIngress.filtering.permit",
1656 "id" : 12,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001657 "runtime_data" : [],
1658 "primitives" : []
1659 },
1660 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001661 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
1662 "id" : 13,
1663 "runtime_data" : [
1664 {
1665 "name" : "vlan_id",
1666 "bitwidth" : 12
1667 }
1668 ],
1669 "primitives" : [
1670 {
1671 "op" : "assign",
1672 "parameters" : [
1673 {
1674 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001675 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001676 },
1677 {
1678 "type" : "runtime_data",
1679 "value" : 0
1680 }
1681 ],
1682 "source_info" : {
1683 "filename" : "include/control/filtering.p4",
1684 "line" : 47,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001685 "column" : 32,
1686 "source_fragment" : "= vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001687 }
1688 }
1689 ]
1690 },
1691 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001692 "name" : "FabricIngress.filtering.set_forwarding_type",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001693 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001694 "runtime_data" : [
1695 {
1696 "name" : "fwd_type",
1697 "bitwidth" : 3
1698 }
1699 ],
1700 "primitives" : [
1701 {
1702 "op" : "assign",
1703 "parameters" : [
1704 {
1705 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001706 "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001707 },
1708 {
1709 "type" : "runtime_data",
1710 "value" : 0
1711 }
1712 ],
1713 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001714 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001715 "line" : 88,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001716 "column" : 33,
1717 "source_fragment" : "= fwd_type; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001718 }
1719 }
1720 ]
1721 },
1722 {
Yi Tseng47eac892018-07-11 02:17:04 +08001723 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001724 "id" : 15,
1725 "runtime_data" : [
1726 {
1727 "name" : "next_id",
1728 "bitwidth" : 32
1729 }
1730 ],
1731 "primitives" : [
1732 {
1733 "op" : "assign",
1734 "parameters" : [
1735 {
1736 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001737 "value" : ["scalars", "fabric_metadata_t._next_id9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001738 },
1739 {
1740 "type" : "runtime_data",
1741 "value" : 0
1742 }
1743 ],
1744 "source_info" : {
1745 "filename" : "include/control/forwarding.p4",
1746 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001747 "column" : 32,
1748 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001749 }
1750 }
1751 ]
1752 },
1753 {
1754 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
1755 "id" : 16,
1756 "runtime_data" : [
1757 {
1758 "name" : "next_id",
1759 "bitwidth" : 32
1760 }
1761 ],
1762 "primitives" : [
1763 {
1764 "op" : "assign",
1765 "parameters" : [
1766 {
1767 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001768 "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001769 },
1770 {
1771 "type" : "hexstr",
1772 "value" : "0x000000"
1773 }
1774 ],
1775 "source_info" : {
1776 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001777 "line" : 66,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001778 "column" : 35,
1779 "source_fragment" : "= 0; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001780 }
1781 },
1782 {
1783 "op" : "assign",
1784 "parameters" : [
1785 {
1786 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001787 "value" : ["scalars", "fabric_metadata_t._next_id9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001788 },
1789 {
1790 "type" : "runtime_data",
1791 "value" : 0
1792 }
1793 ],
1794 "source_info" : {
1795 "filename" : "include/control/forwarding.p4",
1796 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001797 "column" : 32,
1798 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001799 }
1800 }
1801 ]
1802 },
1803 {
1804 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001805 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001806 "runtime_data" : [
1807 {
1808 "name" : "next_id",
1809 "bitwidth" : 32
1810 }
1811 ],
1812 "primitives" : [
1813 {
1814 "op" : "assign",
1815 "parameters" : [
1816 {
1817 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001818 "value" : ["scalars", "fabric_metadata_t._next_id9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001819 },
1820 {
1821 "type" : "runtime_data",
1822 "value" : 0
1823 }
1824 ],
1825 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001826 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001827 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001828 "column" : 32,
1829 "source_fragment" : "= next_id; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001830 }
1831 }
1832 ]
1833 },
1834 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001835 "name" : "FabricIngress.forwarding.nop_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001836 "id" : 18,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001837 "runtime_data" : [],
1838 "primitives" : []
Yi Tseng47eac892018-07-11 02:17:04 +08001839 },
1840 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001841 "name" : "FabricIngress.acl.set_next_id_acl",
Charles Chancf696e52018-08-16 16:25:13 -07001842 "id" : 19,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001843 "runtime_data" : [
1844 {
1845 "name" : "next_id",
1846 "bitwidth" : 32
1847 }
1848 ],
1849 "primitives" : [
1850 {
1851 "op" : "assign",
1852 "parameters" : [
1853 {
1854 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001855 "value" : ["scalars", "fabric_metadata_t._next_id9"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08001856 },
1857 {
1858 "type" : "runtime_data",
1859 "value" : 0
1860 }
1861 ],
1862 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001863 "filename" : "include/control/acl.p4",
1864 "line" : 33,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001865 "column" : 32,
1866 "source_fragment" : "= next_id; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001867 }
1868 }
1869 ]
1870 },
1871 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001872 "name" : "FabricIngress.acl.punt_to_cpu",
Charles Chancf696e52018-08-16 16:25:13 -07001873 "id" : 20,
Charles Chancd03f072018-08-31 17:46:37 -07001874 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001875 "primitives" : [
1876 {
1877 "op" : "assign",
1878 "parameters" : [
1879 {
1880 "type" : "field",
1881 "value" : ["standard_metadata", "egress_spec"]
1882 },
1883 {
1884 "type" : "hexstr",
1885 "value" : "0x00ff"
1886 }
1887 ],
1888 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001889 "filename" : "include/control/acl.p4",
1890 "line" : 39,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001891 "column" : 8,
1892 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001893 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001894 },
1895 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001896 "op" : "assign",
1897 "parameters" : [
1898 {
1899 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001900 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001901 },
1902 {
1903 "type" : "expression",
1904 "value" : {
1905 "type" : "expression",
1906 "value" : {
1907 "op" : "b2d",
1908 "left" : null,
1909 "right" : {
1910 "type" : "bool",
1911 "value" : true
1912 }
1913 }
1914 }
1915 }
1916 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001917 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001918 "filename" : "include/control/acl.p4",
1919 "line" : 40,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001920 "column" : 34,
1921 "source_fragment" : "= true; ..."
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001922 }
1923 }
1924 ]
1925 },
1926 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001927 "name" : "FabricIngress.acl.set_clone_session_id",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001928 "id" : 21,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001929 "runtime_data" : [
1930 {
1931 "name" : "clone_id",
1932 "bitwidth" : 32
1933 }
1934 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001935 "primitives" : [
1936 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001937 "op" : "clone_ingress_pkt_to_egress",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001938 "parameters" : [
1939 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001940 "type" : "runtime_data",
1941 "value" : 0
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001942 },
1943 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001944 "type" : "hexstr",
1945 "value" : "0x1"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001946 }
1947 ],
1948 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001949 "filename" : "include/control/acl.p4",
1950 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001951 "column" : 8,
Daniele Moro3b7a21b2019-06-25 17:33:40 -07001952 "source_fragment" : "clone3(CloneType.I2E, clone_id, {standard_metadata.ingress_port})"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001953 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001954 }
1955 ]
1956 },
1957 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001958 "name" : "FabricIngress.acl.drop",
1959 "id" : 22,
Yi Tseng47eac892018-07-11 02:17:04 +08001960 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001961 "primitives" : [
1962 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001963 "op" : "mark_to_drop",
1964 "parameters" : [
1965 {
1966 "type" : "header",
1967 "value" : "standard_metadata"
1968 }
1969 ],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001970 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001971 "filename" : "include/control/acl.p4",
1972 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001973 "column" : 8,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001974 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001975 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001976 },
1977 {
1978 "op" : "assign",
1979 "parameters" : [
1980 {
1981 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001982 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001983 },
1984 {
1985 "type" : "expression",
1986 "value" : {
1987 "type" : "expression",
1988 "value" : {
1989 "op" : "b2d",
1990 "left" : null,
1991 "right" : {
1992 "type" : "bool",
1993 "value" : true
1994 }
1995 }
1996 }
1997 }
1998 ],
1999 "source_info" : {
2000 "filename" : "include/control/acl.p4",
2001 "line" : 52,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002002 "column" : 34,
2003 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002004 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002005 }
2006 ]
2007 },
2008 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002009 "name" : "FabricIngress.acl.nop_acl",
2010 "id" : 23,
Charles Chancf696e52018-08-16 16:25:13 -07002011 "runtime_data" : [],
2012 "primitives" : []
2013 },
2014 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002015 "name" : "FabricIngress.next.set_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002016 "id" : 24,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002017 "runtime_data" : [
2018 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002019 "name" : "vlan_id",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002020 "bitwidth" : 12
2021 }
2022 ],
2023 "primitives" : [
2024 {
2025 "op" : "assign",
2026 "parameters" : [
2027 {
2028 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002029 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002030 },
2031 {
2032 "type" : "runtime_data",
2033 "value" : 0
2034 }
2035 ],
2036 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002037 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002038 "line" : 70,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002039 "column" : 32,
2040 "source_fragment" : "= vlan_id; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002041 }
2042 }
2043 ]
2044 },
2045 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002046 "name" : "FabricIngress.next.output_xconnect",
2047 "id" : 25,
2048 "runtime_data" : [
2049 {
2050 "name" : "port_num",
2051 "bitwidth" : 9
2052 }
2053 ],
2054 "primitives" : [
2055 {
2056 "op" : "assign",
2057 "parameters" : [
2058 {
2059 "type" : "field",
2060 "value" : ["standard_metadata", "egress_spec"]
2061 },
2062 {
2063 "type" : "runtime_data",
2064 "value" : 0
2065 }
2066 ],
2067 "source_info" : {
2068 "filename" : "include/control/next.p4",
2069 "line" : 31,
2070 "column" : 5,
2071 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2072 }
2073 }
2074 ]
2075 },
2076 {
2077 "name" : "FabricIngress.next.set_next_id_xconnect",
2078 "id" : 26,
2079 "runtime_data" : [
2080 {
2081 "name" : "next_id",
2082 "bitwidth" : 32
2083 }
2084 ],
2085 "primitives" : [
2086 {
2087 "op" : "assign",
2088 "parameters" : [
2089 {
2090 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002091 "value" : ["scalars", "fabric_metadata_t._next_id9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002092 },
2093 {
2094 "type" : "runtime_data",
2095 "value" : 0
2096 }
2097 ],
2098 "source_info" : {
2099 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002100 "line" : 115,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002101 "column" : 32,
2102 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002103 }
2104 }
2105 ]
2106 },
2107 {
2108 "name" : "FabricIngress.next.output_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002109 "id" : 27,
Yi Tseng47eac892018-07-11 02:17:04 +08002110 "runtime_data" : [
2111 {
2112 "name" : "port_num",
2113 "bitwidth" : 9
2114 }
2115 ],
2116 "primitives" : [
2117 {
2118 "op" : "assign",
2119 "parameters" : [
2120 {
2121 "type" : "field",
2122 "value" : ["standard_metadata", "egress_spec"]
2123 },
2124 {
2125 "type" : "runtime_data",
2126 "value" : 0
2127 }
2128 ],
2129 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002130 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002131 "line" : 31,
2132 "column" : 5,
2133 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng47eac892018-07-11 02:17:04 +08002134 }
2135 }
2136 ]
2137 },
2138 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002139 "name" : "FabricIngress.next.routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002140 "id" : 28,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002141 "runtime_data" : [
2142 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002143 "name" : "port_num",
2144 "bitwidth" : 9
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002145 },
2146 {
2147 "name" : "smac",
2148 "bitwidth" : 48
2149 },
2150 {
2151 "name" : "dmac",
2152 "bitwidth" : 48
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002153 }
2154 ],
2155 "primitives" : [
2156 {
2157 "op" : "assign",
2158 "parameters" : [
2159 {
2160 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002161 "value" : ["ethernet", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002162 },
2163 {
2164 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002165 "value" : 1
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002166 }
2167 ],
2168 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002169 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002170 "line" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002171 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002172 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2173 }
2174 },
2175 {
2176 "op" : "assign",
2177 "parameters" : [
2178 {
2179 "type" : "field",
2180 "value" : ["ethernet", "dst_addr"]
2181 },
2182 {
2183 "type" : "runtime_data",
2184 "value" : 2
2185 }
2186 ],
2187 "source_info" : {
2188 "filename" : "include/control/next.p4",
2189 "line" : 41,
2190 "column" : 8,
2191 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002192 }
2193 },
2194 {
2195 "op" : "assign",
2196 "parameters" : [
2197 {
2198 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002199 "value" : ["standard_metadata", "egress_spec"]
2200 },
2201 {
2202 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002203 "value" : 0
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002204 }
2205 ],
2206 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002207 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002208 "line" : 31,
2209 "column" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002210 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2211 }
2212 }
2213 ]
2214 },
2215 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002216 "name" : "FabricIngress.next.mpls_routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002217 "id" : 29,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002218 "runtime_data" : [
2219 {
2220 "name" : "port_num",
2221 "bitwidth" : 9
2222 },
2223 {
2224 "name" : "smac",
2225 "bitwidth" : 48
2226 },
2227 {
2228 "name" : "dmac",
2229 "bitwidth" : 48
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002230 },
2231 {
2232 "name" : "label",
2233 "bitwidth" : 20
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002234 }
2235 ],
2236 "primitives" : [
2237 {
2238 "op" : "assign",
2239 "parameters" : [
2240 {
2241 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002242 "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002243 },
2244 {
2245 "type" : "runtime_data",
2246 "value" : 3
2247 }
2248 ],
2249 "source_info" : {
2250 "filename" : "include/control/next.p4",
2251 "line" : 46,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002252 "column" : 35,
2253 "source_fragment" : "= label; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002254 }
2255 },
2256 {
2257 "op" : "assign",
2258 "parameters" : [
2259 {
2260 "type" : "field",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002261 "value" : ["ethernet", "src_addr"]
2262 },
2263 {
2264 "type" : "runtime_data",
2265 "value" : 1
2266 }
2267 ],
2268 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002269 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002270 "line" : 36,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002271 "column" : 8,
2272 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2273 }
2274 },
2275 {
2276 "op" : "assign",
2277 "parameters" : [
2278 {
2279 "type" : "field",
2280 "value" : ["ethernet", "dst_addr"]
2281 },
2282 {
2283 "type" : "runtime_data",
2284 "value" : 2
2285 }
2286 ],
2287 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002288 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002289 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002290 "column" : 8,
2291 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2292 }
2293 },
2294 {
2295 "op" : "assign",
2296 "parameters" : [
2297 {
2298 "type" : "field",
2299 "value" : ["standard_metadata", "egress_spec"]
2300 },
2301 {
2302 "type" : "runtime_data",
2303 "value" : 0
2304 }
2305 ],
2306 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002307 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002308 "line" : 31,
2309 "column" : 5,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002310 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2311 }
2312 }
2313 ]
2314 },
2315 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002316 "name" : "FabricIngress.next.set_mcast_group_id",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002317 "id" : 30,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002318 "runtime_data" : [
2319 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002320 "name" : "group_id",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002321 "bitwidth" : 16
2322 }
2323 ],
2324 "primitives" : [
2325 {
2326 "op" : "assign",
2327 "parameters" : [
2328 {
2329 "type" : "field",
2330 "value" : ["standard_metadata", "mcast_grp"]
2331 },
2332 {
2333 "type" : "runtime_data",
2334 "value" : 0
2335 }
2336 ],
2337 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002338 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002339 "line" : 231,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002340 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002341 "source_fragment" : "standard_metadata.mcast_grp = group_id"
Esin Karaman971fb7f2017-12-28 13:44:52 +00002342 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002343 },
2344 {
2345 "op" : "assign",
2346 "parameters" : [
2347 {
2348 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002349 "value" : ["scalars", "fabric_metadata_t._is_multicast10"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002350 },
2351 {
2352 "type" : "expression",
2353 "value" : {
2354 "type" : "expression",
2355 "value" : {
2356 "op" : "b2d",
2357 "left" : null,
2358 "right" : {
2359 "type" : "bool",
2360 "value" : true
2361 }
2362 }
2363 }
2364 }
2365 ],
2366 "source_info" : {
2367 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002368 "line" : 232,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002369 "column" : 37,
2370 "source_fragment" : "= true; ..."
Carmelo Casconea5400af2018-07-17 22:11:54 +02002371 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002372 }
2373 ]
2374 },
2375 {
2376 "name" : "act",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002377 "id" : 31,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002378 "runtime_data" : [],
2379 "primitives" : [
2380 {
2381 "op" : "assign",
2382 "parameters" : [
2383 {
2384 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002385 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002386 },
2387 {
2388 "type" : "expression",
2389 "value" : {
2390 "type" : "expression",
2391 "value" : {
2392 "op" : "b2d",
2393 "left" : null,
2394 "right" : {
2395 "type" : "bool",
2396 "value" : true
2397 }
2398 }
2399 }
2400 }
2401 ],
2402 "source_info" : {
2403 "filename" : "include/spgw.p4",
2404 "line" : 30,
2405 "column" : 32,
2406 "source_fragment" : "return"
2407 }
2408 }
2409 ]
2410 },
2411 {
2412 "name" : "act_0",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002413 "id" : 32,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002414 "runtime_data" : [],
2415 "primitives" : [
2416 {
2417 "op" : "remove_header",
2418 "parameters" : [
2419 {
2420 "type" : "header",
2421 "value" : "gtpu_ipv4"
2422 }
2423 ],
2424 "source_info" : {
2425 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002426 "line" : 62,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002427 "column" : 50,
2428 "source_fragment" : "hdr.gtpu_ipv4"
2429 }
2430 },
2431 {
2432 "op" : "remove_header",
2433 "parameters" : [
2434 {
2435 "type" : "header",
2436 "value" : "gtpu_udp"
2437 }
2438 ],
2439 "source_info" : {
2440 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002441 "line" : 62,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002442 "column" : 65,
2443 "source_fragment" : "hdr.gtpu_udp"
2444 }
2445 },
2446 {
2447 "op" : "assign",
2448 "parameters" : [
2449 {
2450 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002451 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002452 },
2453 {
2454 "type" : "expression",
2455 "value" : {
2456 "type" : "expression",
2457 "value" : {
2458 "op" : "b2d",
2459 "left" : null,
2460 "right" : {
2461 "type" : "bool",
2462 "value" : false
2463 }
2464 }
2465 }
2466 }
2467 ]
2468 }
2469 ]
2470 },
2471 {
2472 "name" : "act_1",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002473 "id" : 33,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002474 "runtime_data" : [],
2475 "primitives" : [
2476 {
2477 "op" : "assign_header",
2478 "parameters" : [
2479 {
2480 "type" : "header",
2481 "value" : "udp"
2482 },
2483 {
2484 "type" : "header",
2485 "value" : "inner_udp"
2486 }
2487 ],
2488 "source_info" : {
2489 "filename" : "include/spgw.p4",
2490 "line" : 35,
2491 "column" : 16,
2492 "source_fragment" : "= inner_udp; ..."
2493 }
2494 }
2495 ]
2496 },
2497 {
2498 "name" : "act_2",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002499 "id" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002500 "runtime_data" : [],
2501 "primitives" : [
2502 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002503 "op" : "remove_header",
2504 "parameters" : [
2505 {
2506 "type" : "header",
2507 "value" : "udp"
2508 }
2509 ],
2510 "source_info" : {
2511 "filename" : "include/spgw.p4",
2512 "line" : 37,
2513 "column" : 12,
2514 "source_fragment" : "udp.setInvalid()"
2515 }
2516 }
2517 ]
2518 },
2519 {
2520 "name" : "act_3",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002521 "id" : 35,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002522 "runtime_data" : [],
2523 "primitives" : [
2524 {
2525 "op" : "assign_header",
2526 "parameters" : [
2527 {
2528 "type" : "header",
2529 "value" : "gtpu_ipv4"
2530 },
2531 {
2532 "type" : "header",
2533 "value" : "ipv4"
2534 }
2535 ],
2536 "source_info" : {
2537 "filename" : "include/spgw.p4",
2538 "line" : 31,
2539 "column" : 18,
2540 "source_fragment" : "= ipv4; ..."
2541 }
2542 },
2543 {
2544 "op" : "assign_header",
2545 "parameters" : [
2546 {
2547 "type" : "header",
2548 "value" : "ipv4"
2549 },
2550 {
2551 "type" : "header",
2552 "value" : "inner_ipv4"
2553 }
2554 ],
2555 "source_info" : {
2556 "filename" : "include/spgw.p4",
2557 "line" : 32,
2558 "column" : 13,
2559 "source_fragment" : "= inner_ipv4; ..."
2560 }
2561 },
2562 {
2563 "op" : "assign_header",
2564 "parameters" : [
2565 {
2566 "type" : "header",
2567 "value" : "gtpu_udp"
2568 },
2569 {
2570 "type" : "header",
2571 "value" : "udp"
2572 }
2573 ],
2574 "source_info" : {
2575 "filename" : "include/spgw.p4",
2576 "line" : 33,
2577 "column" : 17,
2578 "source_fragment" : "= udp; ..."
2579 }
2580 }
2581 ]
2582 },
2583 {
2584 "name" : "act_4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002585 "id" : 36,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002586 "runtime_data" : [],
2587 "primitives" : [
2588 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002589 "op" : "assign",
2590 "parameters" : [
2591 {
2592 "type" : "field",
2593 "value" : ["standard_metadata", "egress_spec"]
2594 },
2595 {
2596 "type" : "field",
2597 "value" : ["packet_out", "egress_port"]
2598 }
2599 ],
2600 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002601 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002602 "line" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002603 "column" : 12,
2604 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2605 }
2606 },
2607 {
2608 "op" : "remove_header",
2609 "parameters" : [
2610 {
2611 "type" : "header",
2612 "value" : "packet_out"
2613 }
2614 ],
2615 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002616 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002617 "line" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002618 "column" : 12,
2619 "source_fragment" : "hdr.packet_out.setInvalid()"
2620 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002621 },
2622 {
2623 "op" : "assign",
2624 "parameters" : [
2625 {
2626 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002627 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out11"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002628 },
2629 {
2630 "type" : "expression",
2631 "value" : {
2632 "type" : "expression",
2633 "value" : {
2634 "op" : "b2d",
2635 "left" : null,
2636 "right" : {
2637 "type" : "bool",
2638 "value" : true
2639 }
2640 }
2641 }
2642 }
2643 ],
2644 "source_info" : {
2645 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002646 "line" : 27,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002647 "column" : 53,
2648 "source_fragment" : "= true; ..."
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002649 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002650 },
2651 {
2652 "op" : "exit",
2653 "parameters" : [],
2654 "source_info" : {
2655 "filename" : "include/control/packetio.p4",
2656 "line" : 29,
2657 "column" : 12,
2658 "source_fragment" : "exit"
2659 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002660 }
2661 ]
2662 },
2663 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002664 "name" : "act_5",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002665 "id" : 37,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002666 "runtime_data" : [],
2667 "primitives" : [
2668 {
2669 "op" : "assign",
2670 "parameters" : [
2671 {
2672 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002673 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002674 },
2675 {
2676 "type" : "field",
2677 "value" : ["vlan_tag", "vlan_id"]
2678 }
2679 ],
2680 "source_info" : {
2681 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002682 "line" : 111,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002683 "column" : 36,
2684 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002685 }
2686 },
2687 {
2688 "op" : "assign",
2689 "parameters" : [
2690 {
2691 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002692 "value" : ["scalars", "fabric_metadata_t._vlan_pri2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002693 },
2694 {
2695 "type" : "field",
2696 "value" : ["vlan_tag", "pri"]
2697 }
2698 ],
2699 "source_info" : {
2700 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002701 "line" : 112,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002702 "column" : 37,
2703 "source_fragment" : "= hdr.vlan_tag.pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002704 }
2705 },
2706 {
2707 "op" : "assign",
2708 "parameters" : [
2709 {
2710 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002711 "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002712 },
2713 {
2714 "type" : "field",
2715 "value" : ["vlan_tag", "cfi"]
2716 }
2717 ],
2718 "source_info" : {
2719 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002720 "line" : 113,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002721 "column" : 37,
2722 "source_fragment" : "= hdr.vlan_tag.cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002723 }
2724 }
2725 ]
2726 },
2727 {
2728 "name" : "act_6",
2729 "id" : 38,
2730 "runtime_data" : [],
2731 "primitives" : [
2732 {
2733 "op" : "assign",
2734 "parameters" : [
2735 {
2736 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002737 "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002738 },
2739 {
2740 "type" : "hexstr",
2741 "value" : "0x41"
2742 }
2743 ],
2744 "source_info" : {
2745 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002746 "line" : 127,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002747 "column" : 37,
2748 "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002749 }
2750 }
2751 ]
2752 },
2753 {
2754 "name" : "act_7",
2755 "id" : 39,
2756 "runtime_data" : [],
2757 "primitives" : [
2758 {
2759 "op" : "assign",
2760 "parameters" : [
2761 {
2762 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002763 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002764 },
2765 {
Daniele Moro5a2de712019-09-24 14:34:07 -07002766 "type" : "expression",
2767 "value" : {
2768 "type" : "expression",
2769 "value" : {
2770 "op" : "b2d",
2771 "left" : null,
2772 "right" : {
2773 "type" : "bool",
2774 "value" : true
2775 }
2776 }
2777 }
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002778 }
Daniele Moro5a2de712019-09-24 14:34:07 -07002779 ]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002780 }
2781 ]
2782 },
2783 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002784 "name" : "act_8",
2785 "id" : 40,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002786 "runtime_data" : [],
2787 "primitives" : [
2788 {
2789 "op" : "assign",
2790 "parameters" : [
2791 {
2792 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002793 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002794 },
2795 {
Daniele Moro5a2de712019-09-24 14:34:07 -07002796 "type" : "expression",
2797 "value" : {
2798 "type" : "expression",
2799 "value" : {
2800 "op" : "b2d",
2801 "left" : null,
2802 "right" : {
2803 "type" : "bool",
2804 "value" : false
2805 }
2806 }
2807 }
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002808 }
Daniele Moro5a2de712019-09-24 14:34:07 -07002809 ]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002810 }
2811 ]
2812 },
2813 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002814 "name" : "act_9",
2815 "id" : 41,
2816 "runtime_data" : [],
2817 "primitives" : [
2818 {
Daniele Moro5a2de712019-09-24 14:34:07 -07002819 "op" : "mark_to_drop",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002820 "parameters" : [
2821 {
Daniele Moro5a2de712019-09-24 14:34:07 -07002822 "type" : "header",
2823 "value" : "standard_metadata"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002824 }
2825 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002826 "source_info" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07002827 "filename" : "include/spgw.p4",
2828 "line" : 149,
2829 "column" : 16,
2830 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002831 }
2832 }
2833 ]
2834 },
2835 {
2836 "name" : "act_10",
2837 "id" : 42,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002838 "runtime_data" : [],
2839 "primitives" : [
2840 {
2841 "op" : "assign",
2842 "parameters" : [
2843 {
2844 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002845 "value" : ["scalars", "fabric_metadata_t._spgw_direction15"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002846 },
2847 {
Daniele Moro5a2de712019-09-24 14:34:07 -07002848 "type" : "hexstr",
2849 "value" : "0x01"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002850 }
2851 ],
2852 "source_info" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07002853 "filename" : "include/control/../define.p4",
2854 "line" : 147,
2855 "column" : 36,
2856 "source_fragment" : "2w1; ..."
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002857 }
2858 }
2859 ]
2860 },
2861 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002862 "name" : "act_11",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002863 "id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002864 "runtime_data" : [],
2865 "primitives" : [
2866 {
2867 "op" : "assign",
2868 "parameters" : [
2869 {
2870 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002871 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002872 },
2873 {
2874 "type" : "expression",
2875 "value" : {
2876 "type" : "expression",
2877 "value" : {
2878 "op" : "b2d",
2879 "left" : null,
2880 "right" : {
2881 "type" : "bool",
2882 "value" : true
2883 }
2884 }
2885 }
2886 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002887 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002888 }
2889 ]
2890 },
2891 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002892 "name" : "act_12",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002893 "id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002894 "runtime_data" : [],
2895 "primitives" : [
2896 {
2897 "op" : "assign",
2898 "parameters" : [
2899 {
2900 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002901 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002902 },
2903 {
2904 "type" : "expression",
2905 "value" : {
2906 "type" : "expression",
2907 "value" : {
2908 "op" : "b2d",
2909 "left" : null,
2910 "right" : {
2911 "type" : "bool",
2912 "value" : false
2913 }
2914 }
2915 }
2916 }
2917 ]
2918 }
2919 ]
2920 },
2921 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002922 "name" : "act_13",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002923 "id" : 45,
Yi Tseng27b9bc02018-04-12 14:52:40 +08002924 "runtime_data" : [],
2925 "primitives" : [
2926 {
Daniele Moro5a2de712019-09-24 14:34:07 -07002927 "op" : "assign",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002928 "parameters" : [
2929 {
Daniele Moro5a2de712019-09-24 14:34:07 -07002930 "type" : "field",
2931 "value" : ["scalars", "fabric_metadata_t._spgw_direction15"]
2932 },
2933 {
2934 "type" : "hexstr",
2935 "value" : "0x02"
Daniele Moro7c3a0022019-07-12 13:38:34 -07002936 }
2937 ],
2938 "source_info" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07002939 "filename" : "include/control/../define.p4",
2940 "line" : 148,
2941 "column" : 38,
2942 "source_fragment" : "2w2; ..."
Daniele Moro7c3a0022019-07-12 13:38:34 -07002943 }
2944 }
2945 ]
2946 },
2947 {
2948 "name" : "act_14",
2949 "id" : 46,
2950 "runtime_data" : [],
2951 "primitives" : [
2952 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002953 "op" : "assign",
2954 "parameters" : [
2955 {
2956 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002957 "value" : ["scalars", "fabric_metadata_t._spgw_direction15"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002958 },
2959 {
2960 "type" : "hexstr",
2961 "value" : "0x00"
2962 }
2963 ],
2964 "source_info" : {
2965 "filename" : "include/control/../define.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07002966 "line" : 146,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002967 "column" : 37,
2968 "source_fragment" : "2w0; ..."
2969 }
2970 },
2971 {
2972 "op" : "assign",
2973 "parameters" : [
2974 {
2975 "type" : "field",
2976 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002977 },
2978 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002979 "type" : "expression",
2980 "value" : {
2981 "type" : "expression",
2982 "value" : {
2983 "op" : "b2d",
2984 "left" : null,
2985 "right" : {
2986 "type" : "bool",
2987 "value" : true
2988 }
2989 }
2990 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002991 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002992 ],
2993 "source_info" : {
2994 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002995 "line" : 158,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002996 "column" : 12,
2997 "source_fragment" : "return"
2998 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002999 }
3000 ]
3001 },
3002 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003003 "name" : "act_15",
3004 "id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003005 "runtime_data" : [],
3006 "primitives" : [
3007 {
3008 "op" : "assign",
3009 "parameters" : [
3010 {
3011 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003012 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003013 },
3014 {
3015 "type" : "expression",
3016 "value" : {
3017 "type" : "expression",
3018 "value" : {
3019 "op" : "b2d",
3020 "left" : null,
3021 "right" : {
3022 "type" : "bool",
3023 "value" : false
3024 }
3025 }
3026 }
3027 }
3028 ]
3029 }
3030 ]
3031 },
3032 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003033 "name" : "act_16",
3034 "id" : 48,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003035 "runtime_data" : [],
3036 "primitives" : [
3037 {
3038 "op" : "assign",
3039 "parameters" : [
3040 {
3041 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003042 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len16"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003043 },
3044 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003045 "type" : "field",
3046 "value" : ["ipv4", "total_len"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003047 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003048 ],
3049 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003050 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003051 "line" : 175,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003052 "column" : 34,
3053 "source_fragment" : "= ipv4.total_len; ..."
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003054 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003055 }
3056 ]
3057 },
3058 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003059 "name" : "act_17",
3060 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003061 "runtime_data" : [],
3062 "primitives" : [
3063 {
3064 "op" : "assign",
3065 "parameters" : [
3066 {
3067 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003068 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003069 },
3070 {
3071 "type" : "expression",
3072 "value" : {
3073 "type" : "expression",
3074 "value" : {
3075 "op" : "&",
3076 "left" : {
3077 "type" : "field",
3078 "value" : ["standard_metadata", "egress_spec"]
3079 },
3080 "right" : {
3081 "type" : "hexstr",
3082 "value" : "0xffffffff"
3083 }
3084 }
3085 }
3086 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003087 ],
3088 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003089 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003090 "line" : 31,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003091 "column" : 38,
3092 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3093 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003094 },
3095 {
3096 "op" : "count",
3097 "parameters" : [
3098 {
3099 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003100 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003101 },
3102 {
3103 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003104 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003105 }
3106 ],
3107 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003108 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003109 "line" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003110 "column" : 12,
3111 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3112 }
3113 }
3114 ]
3115 },
3116 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003117 "name" : "act_18",
3118 "id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003119 "runtime_data" : [],
3120 "primitives" : [
3121 {
3122 "op" : "assign",
3123 "parameters" : [
3124 {
3125 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003126 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003127 },
3128 {
3129 "type" : "expression",
3130 "value" : {
3131 "type" : "expression",
3132 "value" : {
3133 "op" : "&",
3134 "left" : {
3135 "type" : "field",
3136 "value" : ["standard_metadata", "ingress_port"]
3137 },
3138 "right" : {
3139 "type" : "hexstr",
3140 "value" : "0xffffffff"
3141 }
3142 }
3143 }
3144 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003145 ],
3146 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003147 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003148 "line" : 34,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003149 "column" : 39,
3150 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3151 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003152 },
3153 {
3154 "op" : "count",
3155 "parameters" : [
3156 {
3157 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003158 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003159 },
3160 {
3161 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003162 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003163 }
3164 ],
3165 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003166 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003167 "line" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003168 "column" : 12,
3169 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3170 }
3171 }
3172 ]
3173 },
3174 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003175 "name" : "nop",
Daniele Moro5a2de712019-09-24 14:34:07 -07003176 "id" : 51,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003177 "runtime_data" : [],
Charles Chancd03f072018-08-31 17:46:37 -07003178 "primitives" : []
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003179 },
3180 {
Charles Chancd03f072018-08-31 17:46:37 -07003181 "name" : "FabricEgress.spgw_egress.gtpu_encap",
Daniele Moro5a2de712019-09-24 14:34:07 -07003182 "id" : 52,
Charles Chancd03f072018-08-31 17:46:37 -07003183 "runtime_data" : [],
3184 "primitives" : [
3185 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003186 "op" : "add_header",
3187 "parameters" : [
3188 {
3189 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003190 "value" : "gtpu_ipv4"
3191 }
3192 ],
3193 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003194 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003195 "line" : 191,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003196 "column" : 8,
3197 "source_fragment" : "gtpu_ipv4.setValid()"
3198 }
3199 },
3200 {
3201 "op" : "assign",
3202 "parameters" : [
3203 {
3204 "type" : "field",
3205 "value" : ["gtpu_ipv4", "version"]
3206 },
3207 {
3208 "type" : "hexstr",
3209 "value" : "0x04"
3210 }
3211 ],
3212 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003213 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003214 "line" : 192,
Yi Tseng3d3956d2018-01-31 17:28:05 -08003215 "column" : 8,
3216 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003217 }
3218 },
3219 {
3220 "op" : "assign",
3221 "parameters" : [
3222 {
3223 "type" : "field",
3224 "value" : ["gtpu_ipv4", "ihl"]
3225 },
3226 {
3227 "type" : "hexstr",
3228 "value" : "0x05"
3229 }
3230 ],
3231 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003232 "filename" : "include/control/../define.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003233 "line" : 129,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003234 "column" : 28,
3235 "source_fragment" : "5; ..."
3236 }
3237 },
3238 {
3239 "op" : "assign",
3240 "parameters" : [
3241 {
3242 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003243 "value" : ["gtpu_ipv4", "dscp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003244 },
3245 {
3246 "type" : "hexstr",
3247 "value" : "0x00"
3248 }
3249 ],
3250 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003251 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003252 "line" : 194,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003253 "column" : 8,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003254 "source_fragment" : "gtpu_ipv4.dscp = 0"
3255 }
3256 },
3257 {
3258 "op" : "assign",
3259 "parameters" : [
3260 {
3261 "type" : "field",
3262 "value" : ["gtpu_ipv4", "ecn"]
3263 },
3264 {
3265 "type" : "hexstr",
3266 "value" : "0x00"
3267 }
3268 ],
3269 "source_info" : {
3270 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003271 "line" : 195,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003272 "column" : 8,
3273 "source_fragment" : "gtpu_ipv4.ecn = 0"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003274 }
3275 },
3276 {
3277 "op" : "assign",
3278 "parameters" : [
3279 {
3280 "type" : "field",
3281 "value" : ["gtpu_ipv4", "total_len"]
3282 },
3283 {
3284 "type" : "expression",
3285 "value" : {
3286 "type" : "expression",
3287 "value" : {
3288 "op" : "&",
3289 "left" : {
3290 "type" : "expression",
3291 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003292 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003293 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003294 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003295 "value" : ["ipv4", "total_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003296 },
3297 "right" : {
3298 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003299 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003300 }
3301 }
3302 },
3303 "right" : {
3304 "type" : "hexstr",
3305 "value" : "0xffff"
3306 }
3307 }
3308 }
3309 }
3310 ],
3311 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003312 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003313 "line" : 196,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003314 "column" : 8,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003315 "source_fragment" : "gtpu_ipv4.total_len = ipv4.total_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003316 }
3317 },
3318 {
3319 "op" : "assign",
3320 "parameters" : [
3321 {
3322 "type" : "field",
3323 "value" : ["gtpu_ipv4", "identification"]
3324 },
3325 {
3326 "type" : "hexstr",
3327 "value" : "0x1513"
3328 }
3329 ],
3330 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003331 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003332 "line" : 198,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003333 "column" : 8,
3334 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
3335 }
3336 },
3337 {
3338 "op" : "assign",
3339 "parameters" : [
3340 {
3341 "type" : "field",
3342 "value" : ["gtpu_ipv4", "flags"]
3343 },
3344 {
3345 "type" : "hexstr",
3346 "value" : "0x00"
3347 }
3348 ],
3349 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003350 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003351 "line" : 199,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003352 "column" : 8,
3353 "source_fragment" : "gtpu_ipv4.flags = 0"
3354 }
3355 },
3356 {
3357 "op" : "assign",
3358 "parameters" : [
3359 {
3360 "type" : "field",
3361 "value" : ["gtpu_ipv4", "frag_offset"]
3362 },
3363 {
3364 "type" : "hexstr",
3365 "value" : "0x0000"
3366 }
3367 ],
3368 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003369 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003370 "line" : 200,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003371 "column" : 8,
3372 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
3373 }
3374 },
3375 {
3376 "op" : "assign",
3377 "parameters" : [
3378 {
3379 "type" : "field",
3380 "value" : ["gtpu_ipv4", "ttl"]
3381 },
3382 {
3383 "type" : "hexstr",
3384 "value" : "0x40"
3385 }
3386 ],
3387 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003388 "filename" : "include/control/../define.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003389 "line" : 142,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003390 "column" : 32,
3391 "source_fragment" : "64; ..."
3392 }
3393 },
3394 {
3395 "op" : "assign",
3396 "parameters" : [
3397 {
3398 "type" : "field",
3399 "value" : ["gtpu_ipv4", "protocol"]
3400 },
3401 {
3402 "type" : "hexstr",
3403 "value" : "0x11"
3404 }
3405 ],
3406 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003407 "filename" : "include/control/../define.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003408 "line" : 126,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003409 "column" : 25,
3410 "source_fragment" : "17; ..."
3411 }
3412 },
3413 {
3414 "op" : "assign",
3415 "parameters" : [
3416 {
3417 "type" : "field",
3418 "value" : ["gtpu_ipv4", "dst_addr"]
3419 },
3420 {
3421 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003422 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr18"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003423 }
3424 ],
3425 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003426 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003427 "line" : 203,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003428 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003429 "source_fragment" : "gtpu_ipv4.dst_addr = fabric_meta.spgw.s1u_enb_addr; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003430 }
3431 },
3432 {
3433 "op" : "assign",
3434 "parameters" : [
3435 {
3436 "type" : "field",
3437 "value" : ["gtpu_ipv4", "src_addr"]
3438 },
3439 {
3440 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003441 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr19"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003442 }
3443 ],
3444 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003445 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003446 "line" : 204,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003447 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003448 "source_fragment" : "gtpu_ipv4.src_addr = fabric_meta.spgw.s1u_sgw_addr; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003449 }
3450 },
3451 {
3452 "op" : "assign",
3453 "parameters" : [
3454 {
3455 "type" : "field",
3456 "value" : ["gtpu_ipv4", "hdr_checksum"]
3457 },
3458 {
3459 "type" : "hexstr",
3460 "value" : "0x0000"
3461 }
3462 ],
3463 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003464 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003465 "line" : 205,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003466 "column" : 8,
3467 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
3468 }
3469 },
3470 {
3471 "op" : "add_header",
3472 "parameters" : [
3473 {
3474 "type" : "header",
3475 "value" : "gtpu_udp"
3476 }
3477 ],
3478 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003479 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003480 "line" : 207,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003481 "column" : 8,
3482 "source_fragment" : "gtpu_udp.setValid()"
3483 }
3484 },
3485 {
3486 "op" : "assign",
3487 "parameters" : [
3488 {
3489 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003490 "value" : ["gtpu_udp", "sport"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003491 },
3492 {
3493 "type" : "hexstr",
3494 "value" : "0x0868"
3495 }
3496 ],
3497 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003498 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003499 "line" : 208,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003500 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003501 "source_fragment" : "gtpu_udp.sport = 2152"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003502 }
3503 },
3504 {
3505 "op" : "assign",
3506 "parameters" : [
3507 {
3508 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003509 "value" : ["gtpu_udp", "dport"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003510 },
3511 {
3512 "type" : "hexstr",
3513 "value" : "0x0868"
3514 }
3515 ],
3516 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003517 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003518 "line" : 209,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003519 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003520 "source_fragment" : "gtpu_udp.dport = 2152"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003521 }
3522 },
3523 {
3524 "op" : "assign",
3525 "parameters" : [
3526 {
3527 "type" : "field",
3528 "value" : ["gtpu_udp", "len"]
3529 },
3530 {
3531 "type" : "expression",
3532 "value" : {
3533 "type" : "expression",
3534 "value" : {
3535 "op" : "&",
3536 "left" : {
3537 "type" : "expression",
3538 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003539 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003540 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003541 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003542 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len16"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003543 },
3544 "right" : {
3545 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003546 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003547 }
3548 }
3549 },
3550 "right" : {
3551 "type" : "hexstr",
3552 "value" : "0xffff"
3553 }
3554 }
3555 }
3556 }
3557 ],
3558 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003559 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003560 "line" : 210,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003561 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003562 "source_fragment" : "gtpu_udp.len = fabric_meta.spgw.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003563 }
3564 },
3565 {
3566 "op" : "assign",
3567 "parameters" : [
3568 {
3569 "type" : "field",
3570 "value" : ["gtpu_udp", "checksum"]
3571 },
3572 {
3573 "type" : "hexstr",
3574 "value" : "0x0000"
3575 }
3576 ],
3577 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003578 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003579 "line" : 212,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003580 "column" : 8,
3581 "source_fragment" : "gtpu_udp.checksum = 0"
3582 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08003583 },
3584 {
3585 "op" : "add_header",
3586 "parameters" : [
3587 {
3588 "type" : "header",
3589 "value" : "gtpu"
3590 }
3591 ],
3592 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003593 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003594 "line" : 214,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003595 "column" : 8,
3596 "source_fragment" : "gtpu.setValid()"
3597 }
3598 },
3599 {
3600 "op" : "assign",
3601 "parameters" : [
3602 {
3603 "type" : "field",
3604 "value" : ["gtpu", "version"]
3605 },
3606 {
3607 "type" : "hexstr",
3608 "value" : "0x01"
3609 }
3610 ],
3611 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003612 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003613 "line" : 215,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003614 "column" : 8,
3615 "source_fragment" : "gtpu.version = 0x01"
3616 }
3617 },
3618 {
3619 "op" : "assign",
3620 "parameters" : [
3621 {
3622 "type" : "field",
3623 "value" : ["gtpu", "pt"]
3624 },
3625 {
3626 "type" : "hexstr",
3627 "value" : "0x01"
3628 }
3629 ],
3630 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003631 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003632 "line" : 216,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003633 "column" : 8,
3634 "source_fragment" : "gtpu.pt = 0x01"
3635 }
3636 },
3637 {
3638 "op" : "assign",
3639 "parameters" : [
3640 {
3641 "type" : "field",
3642 "value" : ["gtpu", "spare"]
3643 },
3644 {
3645 "type" : "hexstr",
3646 "value" : "0x00"
3647 }
3648 ],
3649 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003650 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003651 "line" : 217,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003652 "column" : 8,
3653 "source_fragment" : "gtpu.spare = 0"
3654 }
3655 },
3656 {
3657 "op" : "assign",
3658 "parameters" : [
3659 {
3660 "type" : "field",
3661 "value" : ["gtpu", "ex_flag"]
3662 },
3663 {
3664 "type" : "hexstr",
3665 "value" : "0x00"
3666 }
3667 ],
3668 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003669 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003670 "line" : 218,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003671 "column" : 8,
3672 "source_fragment" : "gtpu.ex_flag = 0"
3673 }
3674 },
3675 {
3676 "op" : "assign",
3677 "parameters" : [
3678 {
3679 "type" : "field",
3680 "value" : ["gtpu", "seq_flag"]
3681 },
3682 {
3683 "type" : "hexstr",
3684 "value" : "0x00"
3685 }
3686 ],
3687 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003688 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003689 "line" : 219,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003690 "column" : 8,
3691 "source_fragment" : "gtpu.seq_flag = 0"
3692 }
3693 },
3694 {
3695 "op" : "assign",
3696 "parameters" : [
3697 {
3698 "type" : "field",
3699 "value" : ["gtpu", "npdu_flag"]
3700 },
3701 {
3702 "type" : "hexstr",
3703 "value" : "0x00"
3704 }
3705 ],
3706 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003707 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003708 "line" : 220,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003709 "column" : 8,
3710 "source_fragment" : "gtpu.npdu_flag = 0"
3711 }
3712 },
3713 {
3714 "op" : "assign",
3715 "parameters" : [
3716 {
3717 "type" : "field",
3718 "value" : ["gtpu", "msgtype"]
3719 },
3720 {
3721 "type" : "hexstr",
3722 "value" : "0xff"
3723 }
3724 ],
3725 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003726 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003727 "line" : 221,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003728 "column" : 8,
3729 "source_fragment" : "gtpu.msgtype = 0xff"
3730 }
3731 },
3732 {
3733 "op" : "assign",
3734 "parameters" : [
3735 {
3736 "type" : "field",
3737 "value" : ["gtpu", "msglen"]
3738 },
3739 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003740 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003741 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len16"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003742 }
3743 ],
3744 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003745 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003746 "line" : 222,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003747 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003748 "source_fragment" : "gtpu.msglen = fabric_meta.spgw.ipv4_len; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003749 }
3750 },
3751 {
3752 "op" : "assign",
3753 "parameters" : [
3754 {
3755 "type" : "field",
3756 "value" : ["gtpu", "teid"]
3757 },
3758 {
3759 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003760 "value" : ["scalars", "fabric_metadata_t._spgw_teid17"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003761 }
3762 ],
3763 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003764 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003765 "line" : 223,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003766 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003767 "source_fragment" : "gtpu.teid = fabric_meta.spgw.teid; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003768 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003769 }
3770 ]
3771 },
3772 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003773 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
Daniele Moro5a2de712019-09-24 14:34:07 -07003774 "id" : 53,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003775 "runtime_data" : [],
3776 "primitives" : [
3777 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003778 "op" : "remove_header",
3779 "parameters" : [
3780 {
3781 "type" : "header",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003782 "value" : "mpls"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003783 }
3784 ],
3785 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003786 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003787 "line" : 270,
Yi Tseng47eac892018-07-11 02:17:04 +08003788 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003789 "source_fragment" : "hdr.mpls.setInvalid()"
Yi Tseng47eac892018-07-11 02:17:04 +08003790 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003791 },
Yi Tseng47eac892018-07-11 02:17:04 +08003792 {
3793 "op" : "assign",
3794 "parameters" : [
3795 {
3796 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003797 "value" : ["eth_type", "value"]
Yi Tseng47eac892018-07-11 02:17:04 +08003798 },
3799 {
3800 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003801 "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003802 }
3803 ],
3804 "source_info" : {
3805 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003806 "line" : 272,
Daniele Moro5a2de712019-09-24 14:34:07 -07003807 "column" : 8,
3808 "source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003809 }
3810 }
3811 ]
3812 },
3813 {
3814 "name" : "FabricEgress.egress_next.set_mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07003815 "id" : 54,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003816 "runtime_data" : [],
3817 "primitives" : [
3818 {
3819 "op" : "add_header",
3820 "parameters" : [
3821 {
3822 "type" : "header",
3823 "value" : "mpls"
Yi Tseng47eac892018-07-11 02:17:04 +08003824 }
3825 ],
3826 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003827 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003828 "line" : 277,
Yi Tseng47eac892018-07-11 02:17:04 +08003829 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003830 "source_fragment" : "hdr.mpls.setValid()"
3831 }
3832 },
3833 {
3834 "op" : "assign",
3835 "parameters" : [
3836 {
3837 "type" : "field",
3838 "value" : ["mpls", "label"]
3839 },
3840 {
3841 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003842 "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003843 }
3844 ],
3845 "source_info" : {
3846 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003847 "line" : 278,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003848 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003849 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003850 }
3851 },
3852 {
3853 "op" : "assign",
3854 "parameters" : [
3855 {
3856 "type" : "field",
3857 "value" : ["mpls", "tc"]
3858 },
3859 {
3860 "type" : "hexstr",
3861 "value" : "0x00"
3862 }
3863 ],
3864 "source_info" : {
3865 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003866 "line" : 279,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003867 "column" : 8,
3868 "source_fragment" : "hdr.mpls.tc = 3w0"
3869 }
3870 },
3871 {
3872 "op" : "assign",
3873 "parameters" : [
3874 {
3875 "type" : "field",
3876 "value" : ["mpls", "bos"]
3877 },
3878 {
3879 "type" : "hexstr",
3880 "value" : "0x01"
3881 }
3882 ],
3883 "source_info" : {
3884 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003885 "line" : 280,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003886 "column" : 8,
3887 "source_fragment" : "hdr.mpls.bos = 1w1"
3888 }
3889 },
3890 {
3891 "op" : "assign",
3892 "parameters" : [
3893 {
3894 "type" : "field",
3895 "value" : ["mpls", "ttl"]
3896 },
3897 {
3898 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003899 "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003900 }
3901 ],
3902 "source_info" : {
3903 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003904 "line" : 281,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003905 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003906 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003907 }
3908 },
3909 {
3910 "op" : "assign",
3911 "parameters" : [
3912 {
3913 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003914 "value" : ["eth_type", "value"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003915 },
3916 {
3917 "type" : "hexstr",
3918 "value" : "0x8847"
3919 }
3920 ],
3921 "source_info" : {
3922 "filename" : "include/control/../define.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003923 "line" : 112,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003924 "column" : 31,
3925 "source_fragment" : "0x8847; ..."
3926 }
3927 }
3928 ]
3929 },
3930 {
3931 "name" : "FabricEgress.egress_next.push_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07003932 "id" : 55,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003933 "runtime_data" : [],
3934 "primitives" : [
3935 {
3936 "op" : "add_header",
3937 "parameters" : [
3938 {
3939 "type" : "header",
3940 "value" : "vlan_tag"
3941 }
3942 ],
3943 "source_info" : {
3944 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003945 "line" : 289,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003946 "column" : 8,
3947 "source_fragment" : "hdr.vlan_tag.setValid()"
3948 }
3949 },
3950 {
3951 "op" : "assign",
3952 "parameters" : [
3953 {
3954 "type" : "field",
3955 "value" : ["vlan_tag", "cfi"]
3956 },
3957 {
3958 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003959 "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003960 }
3961 ],
3962 "source_info" : {
3963 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003964 "line" : 290,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003965 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003966 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003967 }
3968 },
3969 {
3970 "op" : "assign",
3971 "parameters" : [
3972 {
3973 "type" : "field",
3974 "value" : ["vlan_tag", "pri"]
3975 },
3976 {
3977 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003978 "value" : ["scalars", "fabric_metadata_t._vlan_pri2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003979 }
3980 ],
3981 "source_info" : {
3982 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003983 "line" : 291,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003984 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003985 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003986 }
3987 },
3988 {
3989 "op" : "assign",
3990 "parameters" : [
3991 {
3992 "type" : "field",
3993 "value" : ["vlan_tag", "eth_type"]
3994 },
3995 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003996 "type" : "hexstr",
3997 "value" : "0x8100"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003998 }
3999 ],
4000 "source_info" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004001 "filename" : "include/control/../define.p4",
4002 "line" : 111,
4003 "column" : 31,
4004 "source_fragment" : "0x8100; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004005 }
4006 },
4007 {
4008 "op" : "assign",
4009 "parameters" : [
4010 {
4011 "type" : "field",
4012 "value" : ["vlan_tag", "vlan_id"]
4013 },
4014 {
4015 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004016 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004017 }
4018 ],
4019 "source_info" : {
4020 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004021 "line" : 293,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004022 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004023 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004024 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004025 }
4026 ]
4027 },
4028 {
4029 "name" : "FabricEgress.egress_next.pop_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07004030 "id" : 56,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004031 "runtime_data" : [],
4032 "primitives" : [
4033 {
Yi Tseng47eac892018-07-11 02:17:04 +08004034 "op" : "remove_header",
4035 "parameters" : [
4036 {
4037 "type" : "header",
4038 "value" : "vlan_tag"
4039 }
4040 ],
4041 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004042 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004043 "line" : 316,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004044 "column" : 8,
4045 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4046 }
4047 }
4048 ]
4049 },
4050 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004051 "name" : "act_19",
4052 "id" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004053 "runtime_data" : [],
4054 "primitives" : [
4055 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004056 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004057 "parameters" : [],
4058 "source_info" : {
4059 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004060 "line" : 41,
4061 "column" : 12,
4062 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004063 }
4064 }
4065 ]
4066 },
4067 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004068 "name" : "act_20",
4069 "id" : 58,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004070 "runtime_data" : [],
4071 "primitives" : [
4072 {
4073 "op" : "add_header",
4074 "parameters" : [
4075 {
4076 "type" : "header",
4077 "value" : "packet_in"
4078 }
4079 ],
4080 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004081 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004082 "line" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004083 "column" : 12,
4084 "source_fragment" : "hdr.packet_in.setValid()"
4085 }
4086 },
4087 {
4088 "op" : "assign",
4089 "parameters" : [
4090 {
4091 "type" : "field",
4092 "value" : ["packet_in", "ingress_port"]
4093 },
4094 {
4095 "type" : "field",
4096 "value" : ["standard_metadata", "ingress_port"]
4097 }
4098 ],
4099 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004100 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004101 "line" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004102 "column" : 12,
4103 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4104 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004105 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004106 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004107 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004108 "parameters" : [],
4109 "source_info" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004110 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004111 "line" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004112 "column" : 12,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004113 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004114 }
4115 }
4116 ]
4117 },
4118 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004119 "name" : "act_21",
4120 "id" : 59,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004121 "runtime_data" : [],
4122 "primitives" : [
4123 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004124 "op" : "mark_to_drop",
4125 "parameters" : [
4126 {
4127 "type" : "header",
4128 "value" : "standard_metadata"
4129 }
4130 ],
4131 "source_info" : {
4132 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004133 "line" : 337,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004134 "column" : 12,
4135 "source_fragment" : "mark_to_drop(standard_metadata)"
4136 }
4137 }
4138 ]
4139 },
4140 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004141 "name" : "act_22",
4142 "id" : 60,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004143 "runtime_data" : [],
4144 "primitives" : [
4145 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004146 "op" : "assign",
4147 "parameters" : [
4148 {
4149 "type" : "field",
4150 "value" : ["scalars", "egress_next_tmp"]
4151 },
4152 {
4153 "type" : "expression",
4154 "value" : {
4155 "type" : "expression",
4156 "value" : {
4157 "op" : "b2d",
4158 "left" : null,
4159 "right" : {
4160 "type" : "bool",
4161 "value" : true
4162 }
4163 }
4164 }
4165 }
4166 ]
4167 }
4168 ]
4169 },
4170 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004171 "name" : "act_23",
4172 "id" : 61,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004173 "runtime_data" : [],
4174 "primitives" : [
4175 {
4176 "op" : "assign",
4177 "parameters" : [
4178 {
4179 "type" : "field",
4180 "value" : ["scalars", "egress_next_tmp"]
4181 },
4182 {
4183 "type" : "expression",
4184 "value" : {
4185 "type" : "expression",
4186 "value" : {
4187 "op" : "b2d",
4188 "left" : null,
4189 "right" : {
4190 "type" : "bool",
4191 "value" : false
4192 }
4193 }
4194 }
4195 }
4196 ]
4197 }
4198 ]
4199 },
4200 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004201 "name" : "act_24",
4202 "id" : 62,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004203 "runtime_data" : [],
4204 "primitives" : [
4205 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004206 "op" : "mark_to_drop",
4207 "parameters" : [
4208 {
4209 "type" : "header",
4210 "value" : "standard_metadata"
4211 }
4212 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004213 "source_info" : {
4214 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004215 "line" : 370,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004216 "column" : 35,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004217 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004218 }
4219 }
4220 ]
4221 },
4222 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004223 "name" : "act_25",
4224 "id" : 63,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004225 "runtime_data" : [],
4226 "primitives" : [
4227 {
4228 "op" : "assign",
4229 "parameters" : [
4230 {
4231 "type" : "field",
4232 "value" : ["mpls", "ttl"]
4233 },
4234 {
4235 "type" : "expression",
4236 "value" : {
4237 "type" : "expression",
4238 "value" : {
4239 "op" : "&",
4240 "left" : {
4241 "type" : "expression",
4242 "value" : {
4243 "op" : "+",
4244 "left" : {
4245 "type" : "field",
4246 "value" : ["mpls", "ttl"]
4247 },
4248 "right" : {
4249 "type" : "hexstr",
4250 "value" : "0xff"
4251 }
4252 }
4253 },
4254 "right" : {
4255 "type" : "hexstr",
4256 "value" : "0xff"
4257 }
4258 }
4259 }
4260 }
4261 ],
4262 "source_info" : {
4263 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004264 "line" : 369,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004265 "column" : 12,
4266 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
4267 }
4268 }
4269 ]
4270 },
4271 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004272 "name" : "act_26",
4273 "id" : 64,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004274 "runtime_data" : [],
4275 "primitives" : [
4276 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004277 "op" : "mark_to_drop",
4278 "parameters" : [
4279 {
4280 "type" : "header",
4281 "value" : "standard_metadata"
4282 }
4283 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004284 "source_info" : {
4285 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004286 "line" : 374,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004287 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004288 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004289 }
4290 }
4291 ]
4292 },
4293 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004294 "name" : "act_27",
4295 "id" : 65,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004296 "runtime_data" : [],
4297 "primitives" : [
4298 {
4299 "op" : "assign",
4300 "parameters" : [
4301 {
4302 "type" : "field",
4303 "value" : ["ipv4", "ttl"]
4304 },
4305 {
4306 "type" : "expression",
4307 "value" : {
4308 "type" : "expression",
4309 "value" : {
4310 "op" : "&",
4311 "left" : {
4312 "type" : "expression",
4313 "value" : {
4314 "op" : "+",
4315 "left" : {
4316 "type" : "field",
4317 "value" : ["ipv4", "ttl"]
4318 },
4319 "right" : {
4320 "type" : "hexstr",
4321 "value" : "0xff"
4322 }
4323 }
4324 },
4325 "right" : {
4326 "type" : "hexstr",
4327 "value" : "0xff"
4328 }
4329 }
4330 }
4331 }
4332 ],
4333 "source_info" : {
4334 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004335 "line" : 373,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004336 "column" : 16,
4337 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
4338 }
4339 }
4340 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004341 }
4342 ],
4343 "pipelines" : [
4344 {
4345 "name" : "ingress",
4346 "id" : 0,
4347 "source_info" : {
4348 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004349 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004350 "column" : 8,
4351 "source_fragment" : "FabricIngress"
4352 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004353 "init_table" : "tbl_act",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004354 "tables" : [
4355 {
4356 "name" : "tbl_act",
4357 "id" : 0,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004358 "source_info" : {
4359 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004360 "line" : 62,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004361 "column" : 50,
4362 "source_fragment" : "hdr.gtpu_ipv4, hdr.gtpu_udp"
4363 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004364 "key" : [],
4365 "match_type" : "exact",
4366 "type" : "simple",
4367 "max_size" : 1024,
4368 "with_counters" : false,
4369 "support_timeout" : false,
4370 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004371 "action_ids" : [32],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004372 "actions" : ["act_0"],
4373 "base_default_next" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004374 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004375 "act_0" : "node_3"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004376 },
4377 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004378 "action_id" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004379 "action_const" : true,
4380 "action_data" : [],
4381 "action_entry_const" : true
4382 }
4383 },
4384 {
4385 "name" : "tbl_act_0",
4386 "id" : 1,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004387 "source_info" : {
4388 "filename" : "include/spgw.p4",
4389 "line" : 30,
4390 "column" : 32,
4391 "source_fragment" : "return"
4392 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004393 "key" : [],
4394 "match_type" : "exact",
4395 "type" : "simple",
4396 "max_size" : 1024,
4397 "with_counters" : false,
4398 "support_timeout" : false,
4399 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004400 "action_ids" : [31],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004401 "actions" : ["act"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004402 "base_default_next" : "node_5",
4403 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004404 "act" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004405 },
4406 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004407 "action_id" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004408 "action_const" : true,
4409 "action_data" : [],
4410 "action_entry_const" : true
4411 }
4412 },
4413 {
4414 "name" : "tbl_act_1",
4415 "id" : 2,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004416 "source_info" : {
4417 "filename" : "include/spgw.p4",
4418 "line" : 31,
4419 "column" : 18,
4420 "source_fragment" : "= ipv4; ..."
4421 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004422 "key" : [],
4423 "match_type" : "exact",
4424 "type" : "simple",
4425 "max_size" : 1024,
4426 "with_counters" : false,
4427 "support_timeout" : false,
4428 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004429 "action_ids" : [35],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004430 "actions" : ["act_3"],
4431 "base_default_next" : "node_7",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004432 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004433 "act_3" : "node_7"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004434 },
4435 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004436 "action_id" : 35,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004437 "action_const" : true,
4438 "action_data" : [],
4439 "action_entry_const" : true
4440 }
4441 },
4442 {
4443 "name" : "tbl_act_2",
4444 "id" : 3,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004445 "source_info" : {
4446 "filename" : "include/spgw.p4",
4447 "line" : 35,
4448 "column" : 16,
4449 "source_fragment" : "="
4450 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004451 "key" : [],
4452 "match_type" : "exact",
4453 "type" : "simple",
4454 "max_size" : 1024,
4455 "with_counters" : false,
4456 "support_timeout" : false,
4457 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004458 "action_ids" : [33],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004459 "actions" : ["act_1"],
4460 "base_default_next" : "node_10",
4461 "next_tables" : {
4462 "act_1" : "node_10"
4463 },
4464 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004465 "action_id" : 33,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004466 "action_const" : true,
4467 "action_data" : [],
4468 "action_entry_const" : true
4469 }
4470 },
4471 {
4472 "name" : "tbl_act_3",
4473 "id" : 4,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004474 "source_info" : {
4475 "filename" : "include/spgw.p4",
4476 "line" : 37,
4477 "column" : 12,
4478 "source_fragment" : "udp.setInvalid()"
4479 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004480 "key" : [],
4481 "match_type" : "exact",
4482 "type" : "simple",
4483 "max_size" : 1024,
4484 "with_counters" : false,
4485 "support_timeout" : false,
4486 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004487 "action_ids" : [34],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004488 "actions" : ["act_2"],
4489 "base_default_next" : "node_10",
4490 "next_tables" : {
4491 "act_2" : "node_10"
4492 },
4493 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004494 "action_id" : 34,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004495 "action_const" : true,
4496 "action_data" : [],
4497 "action_entry_const" : true
4498 }
4499 },
4500 {
4501 "name" : "tbl_act_4",
4502 "id" : 5,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004503 "source_info" : {
4504 "filename" : "include/control/packetio.p4",
4505 "line" : 25,
4506 "column" : 42,
4507 "source_fragment" : "= hdr.packet_out.egress_port; ..."
4508 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004509 "key" : [],
4510 "match_type" : "exact",
4511 "type" : "simple",
4512 "max_size" : 1024,
4513 "with_counters" : false,
4514 "support_timeout" : false,
4515 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004516 "action_ids" : [36],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004517 "actions" : ["act_4"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004518 "base_default_next" : "node_12",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004519 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004520 "act_4" : "node_12"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004521 },
4522 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004523 "action_id" : 36,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004524 "action_const" : true,
4525 "action_data" : [],
4526 "action_entry_const" : true
4527 }
4528 },
4529 {
4530 "name" : "tbl_act_5",
4531 "id" : 6,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004532 "source_info" : {
4533 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004534 "line" : 111,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004535 "column" : 36,
4536 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07004537 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004538 "key" : [],
4539 "match_type" : "exact",
4540 "type" : "simple",
4541 "max_size" : 1024,
4542 "with_counters" : false,
4543 "support_timeout" : false,
4544 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004545 "action_ids" : [37],
4546 "actions" : ["act_5"],
4547 "base_default_next" : "node_14",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004548 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004549 "act_5" : "node_14"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004550 },
4551 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004552 "action_id" : 37,
4553 "action_const" : true,
4554 "action_data" : [],
4555 "action_entry_const" : true
4556 }
4557 },
4558 {
4559 "name" : "tbl_act_6",
4560 "id" : 7,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004561 "source_info" : {
4562 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004563 "line" : 127,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004564 "column" : 37,
4565 "source_fragment" : "="
4566 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004567 "key" : [],
4568 "match_type" : "exact",
4569 "type" : "simple",
4570 "max_size" : 1024,
4571 "with_counters" : false,
4572 "support_timeout" : false,
4573 "direct_meters" : null,
4574 "action_ids" : [38],
4575 "actions" : ["act_6"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004576 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004577 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004578 "act_6" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004579 },
4580 "default_entry" : {
4581 "action_id" : 38,
4582 "action_const" : true,
4583 "action_data" : [],
4584 "action_entry_const" : true
4585 }
4586 },
4587 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07004588 "name" : "FabricIngress.filtering.ingress_port_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07004589 "id" : 8,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004590 "source_info" : {
4591 "filename" : "include/control/filtering.p4",
4592 "line" : 53,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004593 "column" : 10,
4594 "source_fragment" : "ingress_port_vlan"
4595 },
4596 "key" : [
4597 {
4598 "match_type" : "exact",
4599 "name" : "ig_port",
4600 "target" : ["standard_metadata", "ingress_port"],
4601 "mask" : null
4602 },
4603 {
4604 "match_type" : "exact",
4605 "name" : "vlan_is_valid",
4606 "target" : ["vlan_tag", "$valid$"],
4607 "mask" : null
4608 },
4609 {
4610 "match_type" : "ternary",
4611 "name" : "vlan_id",
4612 "target" : ["vlan_tag", "vlan_id"],
4613 "mask" : null
4614 }
4615 ],
4616 "match_type" : "ternary",
4617 "type" : "simple",
4618 "max_size" : 1024,
4619 "with_counters" : true,
4620 "support_timeout" : false,
4621 "direct_meters" : null,
4622 "action_ids" : [11, 12, 13],
4623 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
4624 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
4625 "next_tables" : {
4626 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
4627 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
4628 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
4629 },
4630 "default_entry" : {
4631 "action_id" : 11,
4632 "action_const" : true,
4633 "action_data" : [],
4634 "action_entry_const" : true
4635 }
4636 },
4637 {
4638 "name" : "FabricIngress.filtering.fwd_classifier",
Daniele Moro5a2de712019-09-24 14:34:07 -07004639 "id" : 9,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004640 "source_info" : {
4641 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004642 "line" : 92,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004643 "column" : 10,
4644 "source_fragment" : "fwd_classifier"
4645 },
4646 "key" : [
4647 {
4648 "match_type" : "exact",
4649 "name" : "ig_port",
4650 "target" : ["standard_metadata", "ingress_port"],
4651 "mask" : null
4652 },
4653 {
4654 "match_type" : "ternary",
4655 "name" : "eth_dst",
4656 "target" : ["ethernet", "dst_addr"],
4657 "mask" : null
4658 },
4659 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004660 "match_type" : "ternary",
4661 "name" : "eth_type",
4662 "target" : ["eth_type", "value"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07004663 "mask" : null
4664 },
4665 {
4666 "match_type" : "exact",
Daniele Moro5a2de712019-09-24 14:34:07 -07004667 "name" : "ip_eth_type",
4668 "target" : ["scalars", "fabric_metadata_t._ip_eth_type0"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004669 "mask" : null
4670 }
4671 ],
4672 "match_type" : "ternary",
4673 "type" : "simple",
4674 "max_size" : 1024,
4675 "with_counters" : true,
4676 "support_timeout" : false,
4677 "direct_meters" : null,
4678 "action_ids" : [14],
4679 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004680 "base_default_next" : "tbl_act_7",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004681 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004682 "FabricIngress.filtering.set_forwarding_type" : "tbl_act_7"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004683 },
4684 "default_entry" : {
4685 "action_id" : 14,
4686 "action_const" : true,
4687 "action_data" : ["0x0"],
4688 "action_entry_const" : true
4689 }
4690 },
4691 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004692 "name" : "tbl_act_7",
4693 "id" : 10,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004694 "key" : [],
4695 "match_type" : "exact",
4696 "type" : "simple",
4697 "max_size" : 1024,
4698 "with_counters" : false,
4699 "support_timeout" : false,
4700 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004701 "action_ids" : [47],
4702 "actions" : ["act_15"],
4703 "base_default_next" : "node_19",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004704 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004705 "act_15" : "node_19"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004706 },
4707 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004708 "action_id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004709 "action_const" : true,
4710 "action_data" : [],
4711 "action_entry_const" : true
4712 }
4713 },
4714 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004715 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Daniele Moro5a2de712019-09-24 14:34:07 -07004716 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004717 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004718 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004719 "line" : 83,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004720 "column" : 10,
4721 "source_fragment" : "s1u_filter_table"
4722 },
4723 "key" : [
4724 {
4725 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004726 "name" : "gtp_ipv4_dst",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004727 "target" : ["gtpu_ipv4", "dst_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004728 "mask" : null
4729 }
4730 ],
4731 "match_type" : "exact",
4732 "type" : "simple",
4733 "max_size" : 1024,
4734 "with_counters" : false,
4735 "support_timeout" : false,
4736 "direct_meters" : null,
4737 "action_ids" : [1],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004738 "actions" : ["nop"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004739 "base_default_next" : null,
4740 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004741 "__HIT__" : "tbl_act_8",
4742 "__MISS__" : "tbl_act_9"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004743 },
4744 "default_entry" : {
4745 "action_id" : 1,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004746 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004747 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004748 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004749 }
4750 },
4751 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004752 "name" : "tbl_act_8",
4753 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004754 "key" : [],
4755 "match_type" : "exact",
4756 "type" : "simple",
4757 "max_size" : 1024,
4758 "with_counters" : false,
4759 "support_timeout" : false,
4760 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004761 "action_ids" : [39],
4762 "actions" : ["act_7"],
4763 "base_default_next" : "node_23",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004764 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004765 "act_7" : "node_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004766 },
4767 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004768 "action_id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004769 "action_const" : true,
4770 "action_data" : [],
4771 "action_entry_const" : true
4772 }
4773 },
4774 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004775 "name" : "tbl_act_9",
4776 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004777 "key" : [],
4778 "match_type" : "exact",
4779 "type" : "simple",
4780 "max_size" : 1024,
4781 "with_counters" : false,
4782 "support_timeout" : false,
4783 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004784 "action_ids" : [40],
4785 "actions" : ["act_8"],
4786 "base_default_next" : "node_23",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004787 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004788 "act_8" : "node_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004789 },
4790 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004791 "action_id" : 40,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004792 "action_const" : true,
4793 "action_data" : [],
4794 "action_entry_const" : true
4795 }
4796 },
4797 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004798 "name" : "tbl_act_10",
4799 "id" : 14,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004800 "source_info" : {
4801 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004802 "line" : 149,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004803 "column" : 16,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004804 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07004805 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004806 "key" : [],
4807 "match_type" : "exact",
4808 "type" : "simple",
4809 "max_size" : 1024,
4810 "with_counters" : false,
4811 "support_timeout" : false,
4812 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004813 "action_ids" : [41],
4814 "actions" : ["act_9"],
4815 "base_default_next" : "tbl_act_11",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004816 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004817 "act_9" : "tbl_act_11"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004818 },
4819 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004820 "action_id" : 41,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004821 "action_const" : true,
4822 "action_data" : [],
4823 "action_entry_const" : true
4824 }
4825 },
4826 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004827 "name" : "tbl_act_11",
4828 "id" : 15,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004829 "source_info" : {
4830 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004831 "line" : 151,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004832 "column" : 39,
4833 "source_fragment" : "="
4834 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004835 "key" : [],
4836 "match_type" : "exact",
4837 "type" : "simple",
4838 "max_size" : 1024,
4839 "with_counters" : false,
4840 "support_timeout" : false,
4841 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004842 "action_ids" : [42],
4843 "actions" : ["act_10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004844 "base_default_next" : "tbl_spgw_ingress_gtpu_decap",
4845 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004846 "act_10" : "tbl_spgw_ingress_gtpu_decap"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004847 },
4848 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004849 "action_id" : 42,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004850 "action_const" : true,
4851 "action_data" : [],
4852 "action_entry_const" : true
4853 }
4854 },
4855 {
4856 "name" : "tbl_spgw_ingress_gtpu_decap",
Daniele Moro5a2de712019-09-24 14:34:07 -07004857 "id" : 16,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004858 "source_info" : {
4859 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004860 "line" : 152,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004861 "column" : 12,
4862 "source_fragment" : "gtpu_decap()"
4863 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004864 "key" : [],
4865 "match_type" : "exact",
4866 "type" : "simple",
4867 "max_size" : 1024,
4868 "with_counters" : false,
4869 "support_timeout" : false,
4870 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004871 "action_ids" : [9],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004872 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004873 "base_default_next" : "node_33",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004874 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004875 "FabricIngress.spgw_ingress.gtpu_decap" : "node_33"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004876 },
4877 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004878 "action_id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004879 "action_const" : true,
4880 "action_data" : [],
4881 "action_entry_const" : true
4882 }
4883 },
4884 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004885 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Daniele Moro5a2de712019-09-24 14:34:07 -07004886 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004887 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004888 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004889 "line" : 70,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004890 "column" : 10,
4891 "source_fragment" : "dl_sess_lookup"
4892 },
4893 "key" : [
4894 {
4895 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004896 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004897 "target" : ["ipv4", "dst_addr"],
4898 "mask" : null
4899 }
4900 ],
4901 "match_type" : "exact",
4902 "type" : "simple",
4903 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004904 "with_counters" : true,
4905 "support_timeout" : false,
4906 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004907 "action_ids" : [10, 0],
4908 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "nop"],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004909 "base_default_next" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004910 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004911 "__HIT__" : "tbl_act_12",
4912 "__MISS__" : "tbl_act_13"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004913 },
4914 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004915 "action_id" : 0,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004916 "action_const" : true,
4917 "action_data" : [],
4918 "action_entry_const" : true
4919 }
4920 },
4921 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004922 "name" : "tbl_act_12",
4923 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004924 "key" : [],
4925 "match_type" : "exact",
4926 "type" : "simple",
4927 "max_size" : 1024,
4928 "with_counters" : false,
4929 "support_timeout" : false,
4930 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004931 "action_ids" : [43],
4932 "actions" : ["act_11"],
4933 "base_default_next" : "node_30",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004934 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004935 "act_11" : "node_30"
Yi Tseng27b9bc02018-04-12 14:52:40 +08004936 },
4937 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004938 "action_id" : 43,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004939 "action_const" : true,
4940 "action_data" : [],
4941 "action_entry_const" : true
4942 }
4943 },
4944 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004945 "name" : "tbl_act_13",
4946 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004947 "key" : [],
4948 "match_type" : "exact",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004949 "type" : "simple",
4950 "max_size" : 1024,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004951 "with_counters" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004952 "support_timeout" : false,
4953 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004954 "action_ids" : [44],
4955 "actions" : ["act_12"],
4956 "base_default_next" : "node_30",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004957 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004958 "act_12" : "node_30"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004959 },
4960 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004961 "action_id" : 44,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004962 "action_const" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004963 "action_data" : [],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004964 "action_entry_const" : true
4965 }
4966 },
4967 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004968 "name" : "tbl_act_14",
4969 "id" : 20,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004970 "source_info" : {
4971 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004972 "line" : 154,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004973 "column" : 39,
4974 "source_fragment" : "="
4975 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004976 "key" : [],
4977 "match_type" : "exact",
4978 "type" : "simple",
4979 "max_size" : 1024,
4980 "with_counters" : false,
4981 "support_timeout" : false,
4982 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004983 "action_ids" : [45],
4984 "actions" : ["act_13"],
4985 "base_default_next" : "node_33",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004986 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004987 "act_13" : "node_33"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004988 },
4989 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004990 "action_id" : 45,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004991 "action_const" : true,
4992 "action_data" : [],
4993 "action_entry_const" : true
4994 }
4995 },
4996 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004997 "name" : "tbl_act_15",
4998 "id" : 21,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004999 "source_info" : {
5000 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005001 "line" : 156,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005002 "column" : 39,
5003 "source_fragment" : "= SPGW_DIR_UNKNOWN; ..."
5004 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005005 "key" : [],
5006 "match_type" : "exact",
5007 "type" : "simple",
5008 "max_size" : 1024,
5009 "with_counters" : false,
5010 "support_timeout" : false,
5011 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07005012 "action_ids" : [46],
5013 "actions" : ["act_14"],
5014 "base_default_next" : "node_33",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005015 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005016 "act_14" : "node_33"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005017 },
5018 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005019 "action_id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005020 "action_const" : true,
5021 "action_data" : [],
5022 "action_entry_const" : true
5023 }
5024 },
5025 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005026 "name" : "tbl_act_16",
5027 "id" : 22,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005028 "source_info" : {
5029 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005030 "line" : 175,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005031 "column" : 34,
5032 "source_fragment" : "="
5033 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005034 "key" : [],
5035 "match_type" : "exact",
5036 "type" : "simple",
5037 "max_size" : 1024,
5038 "with_counters" : false,
5039 "support_timeout" : false,
5040 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07005041 "action_ids" : [48],
5042 "actions" : ["act_16"],
5043 "base_default_next" : "node_35",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005044 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005045 "act_16" : "node_35"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005046 },
5047 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005048 "action_id" : 48,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005049 "action_const" : true,
5050 "action_data" : [],
5051 "action_entry_const" : true
5052 }
5053 },
5054 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005055 "name" : "FabricIngress.forwarding.bridging",
Daniele Moro5a2de712019-09-24 14:34:07 -07005056 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005057 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005058 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005059 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005060 "column" : 10,
5061 "source_fragment" : "bridging"
5062 },
5063 "key" : [
5064 {
5065 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005066 "name" : "vlan_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07005067 "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005068 "mask" : null
5069 },
5070 {
5071 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005072 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005073 "target" : ["ethernet", "dst_addr"],
5074 "mask" : null
5075 }
5076 ],
5077 "match_type" : "ternary",
5078 "type" : "simple",
5079 "max_size" : 1024,
5080 "with_counters" : true,
5081 "support_timeout" : false,
5082 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005083 "action_ids" : [15, 2],
5084 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
5085 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005086 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005087 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.acl.acl",
5088 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005089 },
5090 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005091 "action_id" : 2,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005092 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005093 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005094 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005095 }
5096 },
5097 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005098 "name" : "FabricIngress.forwarding.mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07005099 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005100 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005101 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005102 "line" : 71,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005103 "column" : 10,
5104 "source_fragment" : "mpls"
5105 },
5106 "key" : [
5107 {
5108 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005109 "name" : "mpls_label",
Daniele Moro5a2de712019-09-24 14:34:07 -07005110 "target" : ["scalars", "fabric_metadata_t._mpls_label4"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005111 "mask" : null
5112 }
5113 ],
5114 "match_type" : "exact",
5115 "type" : "simple",
5116 "max_size" : 1024,
5117 "with_counters" : true,
5118 "support_timeout" : false,
5119 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005120 "action_ids" : [16, 3],
5121 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
5122 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005123 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005124 "FabricIngress.forwarding.pop_mpls_and_next" : "FabricIngress.acl.acl",
5125 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005126 },
5127 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005128 "action_id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005129 "action_const" : true,
5130 "action_data" : [],
5131 "action_entry_const" : true
5132 }
5133 },
5134 {
Charles Chan384aea22018-08-23 22:08:02 -07005135 "name" : "FabricIngress.forwarding.routing_v4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005136 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005137 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005138 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005139 "line" : 108,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005140 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07005141 "source_fragment" : "routing_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005142 },
5143 "key" : [
5144 {
5145 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005146 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005147 "target" : ["ipv4", "dst_addr"],
5148 "mask" : null
5149 }
5150 ],
5151 "match_type" : "lpm",
5152 "type" : "simple",
5153 "max_size" : 1024,
Daniele Moro5a2de712019-09-24 14:34:07 -07005154 "with_counters" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005155 "support_timeout" : false,
5156 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005157 "action_ids" : [17, 18, 4],
5158 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
5159 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005160 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005161 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.acl.acl",
5162 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.acl.acl",
5163 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005164 },
5165 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005166 "action_id" : 4,
CyberHasHe9ba39c2019-10-11 05:59:12 +08005167 "action_const" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005168 "action_data" : [],
CyberHasHe9ba39c2019-10-11 05:59:12 +08005169 "action_entry_const" : false
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005170 }
5171 },
5172 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005173 "name" : "FabricIngress.acl.acl",
Daniele Moro5a2de712019-09-24 14:34:07 -07005174 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005175 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005176 "filename" : "include/control/acl.p4",
5177 "line" : 60,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005178 "column" : 10,
5179 "source_fragment" : "acl"
5180 },
5181 "key" : [
5182 {
5183 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005184 "name" : "ig_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005185 "target" : ["standard_metadata", "ingress_port"],
5186 "mask" : null
5187 },
5188 {
5189 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005190 "name" : "ip_proto",
Daniele Moro5a2de712019-09-24 14:34:07 -07005191 "target" : ["scalars", "fabric_metadata_t._ip_proto12"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005192 "mask" : null
5193 },
5194 {
5195 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005196 "name" : "l4_sport",
Daniele Moro5a2de712019-09-24 14:34:07 -07005197 "target" : ["scalars", "fabric_metadata_t._l4_sport13"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005198 "mask" : null
5199 },
5200 {
5201 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005202 "name" : "l4_dport",
Daniele Moro5a2de712019-09-24 14:34:07 -07005203 "target" : ["scalars", "fabric_metadata_t._l4_dport14"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005204 "mask" : null
5205 },
5206 {
5207 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005208 "name" : "eth_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005209 "target" : ["ethernet", "dst_addr"],
5210 "mask" : null
5211 },
5212 {
5213 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005214 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005215 "target" : ["ethernet", "src_addr"],
5216 "mask" : null
5217 },
5218 {
5219 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005220 "name" : "vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005221 "target" : ["vlan_tag", "vlan_id"],
5222 "mask" : null
5223 },
5224 {
5225 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005226 "name" : "eth_type",
Daniele Moro5a2de712019-09-24 14:34:07 -07005227 "target" : ["eth_type", "value"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08005228 "mask" : null
5229 },
5230 {
5231 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005232 "name" : "ipv4_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005233 "target" : ["ipv4", "src_addr"],
5234 "mask" : null
5235 },
5236 {
5237 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005238 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005239 "target" : ["ipv4", "dst_addr"],
5240 "mask" : null
5241 },
5242 {
5243 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005244 "name" : "icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005245 "target" : ["icmp", "icmp_type"],
5246 "mask" : null
5247 },
5248 {
5249 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005250 "name" : "icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005251 "target" : ["icmp", "icmp_code"],
5252 "mask" : null
5253 }
5254 ],
5255 "match_type" : "ternary",
5256 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005257 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005258 "with_counters" : true,
5259 "support_timeout" : false,
5260 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005261 "action_ids" : [19, 20, 21, 22, 23],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005262 "actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.set_clone_session_id", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"],
Daniele Moro5a2de712019-09-24 14:34:07 -07005263 "base_default_next" : "node_43",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005264 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005265 "FabricIngress.acl.set_next_id_acl" : "node_43",
5266 "FabricIngress.acl.punt_to_cpu" : "node_43",
5267 "FabricIngress.acl.set_clone_session_id" : "node_43",
5268 "FabricIngress.acl.drop" : "node_43",
5269 "FabricIngress.acl.nop_acl" : "node_43"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005270 },
5271 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005272 "action_id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005273 "action_const" : true,
5274 "action_data" : [],
5275 "action_entry_const" : true
5276 }
5277 },
5278 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005279 "name" : "FabricIngress.next.xconnect",
Daniele Moro5a2de712019-09-24 14:34:07 -07005280 "id" : 27,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005281 "source_info" : {
5282 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005283 "line" : 119,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005284 "column" : 10,
5285 "source_fragment" : "xconnect"
5286 },
5287 "key" : [
5288 {
5289 "match_type" : "exact",
5290 "name" : "ig_port",
5291 "target" : ["standard_metadata", "ingress_port"],
5292 "mask" : null
5293 },
5294 {
5295 "match_type" : "exact",
5296 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07005297 "target" : ["scalars", "fabric_metadata_t._next_id9"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005298 "mask" : null
5299 }
5300 ],
5301 "match_type" : "exact",
5302 "type" : "simple",
5303 "max_size" : 1024,
5304 "with_counters" : true,
5305 "support_timeout" : false,
5306 "direct_meters" : null,
5307 "action_ids" : [25, 26, 6],
5308 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
5309 "base_default_next" : "FabricIngress.next.hashed",
5310 "next_tables" : {
5311 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
5312 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
5313 "nop" : "FabricIngress.next.hashed"
5314 },
5315 "default_entry" : {
5316 "action_id" : 6,
5317 "action_const" : true,
5318 "action_data" : [],
5319 "action_entry_const" : true
5320 }
5321 },
5322 {
5323 "name" : "FabricIngress.next.hashed",
Daniele Moro5a2de712019-09-24 14:34:07 -07005324 "id" : 28,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005325 "source_info" : {
5326 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005327 "line" : 202,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005328 "column" : 10,
5329 "source_fragment" : "hashed"
5330 },
5331 "key" : [
5332 {
5333 "match_type" : "exact",
5334 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07005335 "target" : ["scalars", "fabric_metadata_t._next_id9"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005336 "mask" : null
5337 }
5338 ],
5339 "match_type" : "exact",
5340 "type" : "indirect_ws",
5341 "action_profile" : "FabricIngress.next.hashed_selector",
5342 "max_size" : 1024,
5343 "with_counters" : true,
5344 "support_timeout" : false,
5345 "direct_meters" : null,
5346 "action_ids" : [27, 28, 29, 7],
5347 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
5348 "base_default_next" : "FabricIngress.next.multicast",
5349 "next_tables" : {
5350 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
5351 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
5352 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
5353 "nop" : "FabricIngress.next.multicast"
5354 }
5355 },
5356 {
5357 "name" : "FabricIngress.next.multicast",
Daniele Moro5a2de712019-09-24 14:34:07 -07005358 "id" : 29,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005359 "source_info" : {
5360 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005361 "line" : 236,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005362 "column" : 10,
5363 "source_fragment" : "multicast"
5364 },
5365 "key" : [
5366 {
5367 "match_type" : "exact",
5368 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07005369 "target" : ["scalars", "fabric_metadata_t._next_id9"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005370 "mask" : null
5371 }
5372 ],
5373 "match_type" : "exact",
5374 "type" : "simple",
5375 "max_size" : 1024,
5376 "with_counters" : true,
5377 "support_timeout" : false,
5378 "direct_meters" : null,
5379 "action_ids" : [30, 8],
5380 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
5381 "base_default_next" : "FabricIngress.next.next_vlan",
5382 "next_tables" : {
5383 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
5384 "nop" : "FabricIngress.next.next_vlan"
5385 },
5386 "default_entry" : {
5387 "action_id" : 8,
5388 "action_const" : true,
5389 "action_data" : [],
5390 "action_entry_const" : true
5391 }
5392 },
5393 {
5394 "name" : "FabricIngress.next.next_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07005395 "id" : 30,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005396 "source_info" : {
5397 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005398 "line" : 86,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005399 "column" : 10,
5400 "source_fragment" : "next_vlan"
5401 },
5402 "key" : [
5403 {
5404 "match_type" : "exact",
5405 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07005406 "target" : ["scalars", "fabric_metadata_t._next_id9"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005407 "mask" : null
5408 }
5409 ],
5410 "match_type" : "exact",
5411 "type" : "simple",
5412 "max_size" : 1024,
5413 "with_counters" : true,
5414 "support_timeout" : false,
5415 "direct_meters" : null,
5416 "action_ids" : [24, 5],
5417 "actions" : ["FabricIngress.next.set_vlan", "nop"],
Daniele Moro5a2de712019-09-24 14:34:07 -07005418 "base_default_next" : "node_48",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005419 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005420 "FabricIngress.next.set_vlan" : "node_48",
5421 "nop" : "node_48"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005422 },
5423 "default_entry" : {
5424 "action_id" : 5,
5425 "action_const" : true,
5426 "action_data" : [],
5427 "action_entry_const" : true
5428 }
5429 },
5430 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005431 "name" : "tbl_act_17",
5432 "id" : 31,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005433 "source_info" : {
5434 "filename" : "include/control/port_counter.p4",
5435 "line" : 31,
5436 "column" : 12,
5437 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
5438 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02005439 "key" : [],
5440 "match_type" : "exact",
5441 "type" : "simple",
5442 "max_size" : 1024,
5443 "with_counters" : false,
5444 "support_timeout" : false,
5445 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07005446 "action_ids" : [49],
5447 "actions" : ["act_17"],
5448 "base_default_next" : "node_50",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005449 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005450 "act_17" : "node_50"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005451 },
5452 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005453 "action_id" : 49,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005454 "action_const" : true,
5455 "action_data" : [],
5456 "action_entry_const" : true
5457 }
5458 },
5459 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005460 "name" : "tbl_act_18",
5461 "id" : 32,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005462 "source_info" : {
5463 "filename" : "include/control/port_counter.p4",
5464 "line" : 34,
5465 "column" : 12,
5466 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
5467 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005468 "key" : [],
5469 "match_type" : "exact",
5470 "type" : "simple",
5471 "max_size" : 1024,
5472 "with_counters" : false,
5473 "support_timeout" : false,
5474 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07005475 "action_ids" : [50],
5476 "actions" : ["act_18"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005477 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005478 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005479 "act_18" : null
Carmelo Casconea5400af2018-07-17 22:11:54 +02005480 },
5481 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005482 "action_id" : 50,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005483 "action_const" : true,
5484 "action_data" : [],
5485 "action_entry_const" : true
5486 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005487 }
5488 ],
5489 "action_profiles" : [
5490 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005491 "name" : "FabricIngress.next.hashed_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005492 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005493 "source_info" : {
5494 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005495 "line" : 183,
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005496 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005497 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005498 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005499 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005500 "selector" : {
5501 "algo" : "crc16",
5502 "input" : [
5503 {
5504 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005505 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005506 },
5507 {
5508 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005509 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005510 },
5511 {
5512 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005513 "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005514 },
5515 {
5516 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005517 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005518 },
5519 {
5520 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005521 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005522 }
5523 ]
5524 }
5525 }
5526 ],
5527 "conditionals" : [
5528 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005529 "name" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005530 "id" : 0,
5531 "source_info" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005532 "filename" : "include/spgw.p4",
5533 "line" : 30,
5534 "column" : 12,
5535 "source_fragment" : "! is_gtpu_encapped"
5536 },
5537 "expression" : {
5538 "type" : "expression",
5539 "value" : {
5540 "op" : "not",
5541 "left" : null,
5542 "right" : {
5543 "type" : "expression",
5544 "value" : {
5545 "op" : "d2b",
5546 "left" : null,
5547 "right" : {
5548 "type" : "field",
5549 "value" : ["gtpu", "$valid$"]
5550 }
5551 }
5552 }
5553 }
5554 },
5555 "true_next" : "tbl_act_0",
5556 "false_next" : "node_5"
5557 },
5558 {
5559 "name" : "node_5",
5560 "id" : 1,
5561 "expression" : {
5562 "type" : "expression",
5563 "value" : {
5564 "op" : "not",
5565 "left" : null,
5566 "right" : {
5567 "type" : "expression",
5568 "value" : {
5569 "op" : "d2b",
5570 "left" : null,
5571 "right" : {
5572 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005573 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005574 }
5575 }
5576 }
5577 }
5578 },
5579 "true_next" : "tbl_act_1",
5580 "false_next" : "node_10"
5581 },
5582 {
5583 "name" : "node_7",
5584 "id" : 2,
5585 "source_info" : {
5586 "filename" : "include/spgw.p4",
5587 "line" : 34,
5588 "column" : 12,
5589 "source_fragment" : "inner_udp.isValid()"
5590 },
5591 "expression" : {
5592 "type" : "expression",
5593 "value" : {
5594 "op" : "d2b",
5595 "left" : null,
5596 "right" : {
5597 "type" : "field",
5598 "value" : ["inner_udp", "$valid$"]
5599 }
5600 }
5601 },
5602 "true_next" : "tbl_act_2",
5603 "false_next" : "tbl_act_3"
5604 },
5605 {
5606 "name" : "node_10",
5607 "id" : 3,
5608 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005609 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005610 "line" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005611 "column" : 12,
5612 "source_fragment" : "hdr.packet_out.isValid()"
5613 },
5614 "expression" : {
5615 "type" : "expression",
5616 "value" : {
5617 "op" : "d2b",
5618 "left" : null,
5619 "right" : {
5620 "type" : "field",
5621 "value" : ["packet_out", "$valid$"]
5622 }
5623 }
5624 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005625 "true_next" : "tbl_act_4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005626 "false_next" : "node_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005627 },
5628 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005629 "name" : "node_12",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005630 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005631 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005632 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005633 "line" : 110,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005634 "column" : 12,
5635 "source_fragment" : "hdr.vlan_tag.isValid()"
5636 },
5637 "expression" : {
5638 "type" : "expression",
5639 "value" : {
5640 "op" : "d2b",
5641 "left" : null,
5642 "right" : {
5643 "type" : "field",
5644 "value" : ["vlan_tag", "$valid$"]
5645 }
5646 }
5647 },
5648 "true_next" : "tbl_act_5",
5649 "false_next" : "node_14"
5650 },
5651 {
5652 "name" : "node_14",
5653 "id" : 5,
5654 "source_info" : {
5655 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005656 "line" : 122,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005657 "column" : 12,
5658 "source_fragment" : "!hdr.mpls.isValid()"
5659 },
5660 "expression" : {
5661 "type" : "expression",
5662 "value" : {
5663 "op" : "not",
5664 "left" : null,
5665 "right" : {
5666 "type" : "expression",
5667 "value" : {
5668 "op" : "d2b",
5669 "left" : null,
5670 "right" : {
5671 "type" : "field",
5672 "value" : ["mpls", "$valid$"]
5673 }
5674 }
5675 }
5676 }
5677 },
5678 "true_next" : "tbl_act_6",
Daniele Moro5a2de712019-09-24 14:34:07 -07005679 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005680 },
5681 {
5682 "name" : "node_19",
Daniele Moro5a2de712019-09-24 14:34:07 -07005683 "id" : 6,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005684 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005685 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005686 "line" : 144,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005687 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005688 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005689 },
5690 "expression" : {
5691 "type" : "expression",
5692 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005693 "op" : "d2b",
5694 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005695 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005696 "type" : "field",
5697 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005698 }
5699 }
5700 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005701 "true_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
5702 "false_next" : "FabricIngress.spgw_ingress.dl_sess_lookup"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005703 },
5704 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005705 "name" : "node_23",
5706 "id" : 7,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005707 "source_info" : {
5708 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005709 "line" : 148,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005710 "column" : 16,
5711 "source_fragment" : "!s1u_filter_table.apply().hit"
5712 },
5713 "expression" : {
5714 "type" : "expression",
5715 "value" : {
5716 "op" : "not",
5717 "left" : null,
5718 "right" : {
5719 "type" : "expression",
5720 "value" : {
5721 "op" : "d2b",
5722 "left" : null,
5723 "right" : {
5724 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005725 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005726 }
5727 }
5728 }
5729 }
5730 },
Daniele Moro5a2de712019-09-24 14:34:07 -07005731 "true_next" : "tbl_act_10",
5732 "false_next" : "tbl_act_11"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005733 },
5734 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005735 "name" : "node_30",
5736 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005737 "expression" : {
5738 "type" : "expression",
5739 "value" : {
5740 "op" : "d2b",
5741 "left" : null,
5742 "right" : {
5743 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005744 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005745 }
5746 }
5747 },
Daniele Moro5a2de712019-09-24 14:34:07 -07005748 "true_next" : "tbl_act_14",
5749 "false_next" : "tbl_act_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005750 },
5751 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005752 "name" : "node_33",
5753 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005754 "expression" : {
5755 "type" : "expression",
5756 "value" : {
5757 "op" : "not",
5758 "left" : null,
5759 "right" : {
5760 "type" : "expression",
5761 "value" : {
5762 "op" : "d2b",
5763 "left" : null,
5764 "right" : {
5765 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005766 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005767 }
5768 }
5769 }
5770 }
5771 },
Daniele Moro5a2de712019-09-24 14:34:07 -07005772 "true_next" : "tbl_act_16",
5773 "false_next" : "node_35"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005774 },
5775 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005776 "name" : "node_35",
5777 "id" : 10,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005778 "source_info" : {
5779 "filename" : "fabric.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005780 "line" : 71,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005781 "column" : 12,
5782 "source_fragment" : "fabric_metadata.skip_forwarding == false"
5783 },
5784 "expression" : {
5785 "type" : "expression",
5786 "value" : {
5787 "op" : "==",
5788 "left" : {
5789 "type" : "expression",
5790 "value" : {
5791 "op" : "d2b",
5792 "left" : null,
5793 "right" : {
5794 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005795 "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005796 }
5797 }
5798 },
5799 "right" : {
5800 "type" : "bool",
5801 "value" : false
5802 }
5803 }
5804 },
Daniele Moro5a2de712019-09-24 14:34:07 -07005805 "true_next" : "node_36",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005806 "false_next" : "FabricIngress.acl.acl"
5807 },
5808 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005809 "name" : "node_36",
5810 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005811 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005812 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005813 "line" : 150,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005814 "column" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005815 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
5816 },
5817 "expression" : {
5818 "type" : "expression",
5819 "value" : {
5820 "op" : "==",
5821 "left" : {
5822 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005823 "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005824 },
5825 "right" : {
5826 "type" : "hexstr",
5827 "value" : "0x00"
5828 }
5829 }
5830 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005831 "true_next" : "FabricIngress.forwarding.bridging",
Daniele Moro5a2de712019-09-24 14:34:07 -07005832 "false_next" : "node_38"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005833 },
5834 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005835 "name" : "node_38",
5836 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005837 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005838 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005839 "line" : 151,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005840 "column" : 17,
5841 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
5842 },
5843 "expression" : {
5844 "type" : "expression",
5845 "value" : {
5846 "op" : "==",
5847 "left" : {
5848 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005849 "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005850 },
5851 "right" : {
5852 "type" : "hexstr",
5853 "value" : "0x01"
5854 }
5855 }
5856 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005857 "true_next" : "FabricIngress.forwarding.mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07005858 "false_next" : "node_40"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005859 },
5860 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005861 "name" : "node_40",
5862 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005863 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005864 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005865 "line" : 152,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005866 "column" : 17,
5867 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
5868 },
5869 "expression" : {
5870 "type" : "expression",
5871 "value" : {
5872 "op" : "==",
5873 "left" : {
5874 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005875 "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005876 },
5877 "right" : {
5878 "type" : "hexstr",
5879 "value" : "0x02"
5880 }
5881 }
5882 },
Charles Chan384aea22018-08-23 22:08:02 -07005883 "true_next" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005884 "false_next" : "FabricIngress.acl.acl"
5885 },
5886 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005887 "name" : "node_43",
5888 "id" : 14,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005889 "source_info" : {
5890 "filename" : "fabric.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005891 "line" : 75,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005892 "column" : 12,
5893 "source_fragment" : "fabric_metadata.skip_next == false"
5894 },
5895 "expression" : {
5896 "type" : "expression",
5897 "value" : {
5898 "op" : "==",
5899 "left" : {
5900 "type" : "expression",
5901 "value" : {
5902 "op" : "d2b",
5903 "left" : null,
5904 "right" : {
5905 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005906 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005907 }
5908 }
5909 },
5910 "right" : {
5911 "type" : "bool",
5912 "value" : false
5913 }
5914 }
5915 },
5916 "false_next" : null,
5917 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005918 },
5919 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005920 "name" : "node_48",
5921 "id" : 15,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005922 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005923 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005924 "line" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005925 "column" : 12,
5926 "source_fragment" : "standard_metadata.egress_spec < 511"
5927 },
5928 "expression" : {
5929 "type" : "expression",
5930 "value" : {
5931 "op" : "<",
5932 "left" : {
5933 "type" : "field",
5934 "value" : ["standard_metadata", "egress_spec"]
5935 },
5936 "right" : {
5937 "type" : "hexstr",
5938 "value" : "0x01ff"
5939 }
5940 }
5941 },
Daniele Moro5a2de712019-09-24 14:34:07 -07005942 "true_next" : "tbl_act_17",
5943 "false_next" : "node_50"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005944 },
5945 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005946 "name" : "node_50",
5947 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005948 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005949 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005950 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005951 "column" : 12,
5952 "source_fragment" : "standard_metadata.ingress_port < 511"
5953 },
5954 "expression" : {
5955 "type" : "expression",
5956 "value" : {
5957 "op" : "<",
5958 "left" : {
5959 "type" : "field",
5960 "value" : ["standard_metadata", "ingress_port"]
5961 },
5962 "right" : {
5963 "type" : "hexstr",
5964 "value" : "0x01ff"
5965 }
5966 }
5967 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005968 "false_next" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07005969 "true_next" : "tbl_act_18"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005970 }
5971 ]
5972 },
5973 {
5974 "name" : "egress",
5975 "id" : 1,
5976 "source_info" : {
5977 "filename" : "fabric.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005978 "line" : 93,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005979 "column" : 8,
5980 "source_fragment" : "FabricEgress"
5981 },
Daniele Moro5a2de712019-09-24 14:34:07 -07005982 "init_table" : "node_54",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005983 "tables" : [
5984 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005985 "name" : "tbl_act_19",
5986 "id" : 33,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005987 "source_info" : {
5988 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005989 "line" : 41,
5990 "column" : 12,
5991 "source_fragment" : "exit"
Carmelo Cascone3032b872019-04-13 01:23:54 -07005992 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02005993 "key" : [],
5994 "match_type" : "exact",
5995 "type" : "simple",
5996 "max_size" : 1024,
5997 "with_counters" : false,
5998 "support_timeout" : false,
5999 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006000 "action_ids" : [57],
6001 "actions" : ["act_19"],
6002 "base_default_next" : "node_56",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006003 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006004 "act_19" : "node_56"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006005 },
6006 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006007 "action_id" : 57,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006008 "action_const" : true,
6009 "action_data" : [],
6010 "action_entry_const" : true
6011 }
6012 },
6013 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006014 "name" : "tbl_act_20",
6015 "id" : 34,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006016 "source_info" : {
6017 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006018 "line" : 44,
6019 "column" : 12,
6020 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07006021 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006022 "key" : [],
6023 "match_type" : "exact",
6024 "type" : "simple",
6025 "max_size" : 1024,
6026 "with_counters" : false,
6027 "support_timeout" : false,
6028 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006029 "action_ids" : [58],
6030 "actions" : ["act_20"],
6031 "base_default_next" : "node_58",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006032 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006033 "act_20" : "node_58"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006034 },
6035 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006036 "action_id" : 58,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006037 "action_const" : true,
6038 "action_data" : [],
6039 "action_entry_const" : true
6040 }
6041 },
6042 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006043 "name" : "tbl_act_21",
6044 "id" : 35,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006045 "source_info" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006046 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006047 "line" : 337,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006048 "column" : 12,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006049 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07006050 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006051 "key" : [],
6052 "match_type" : "exact",
6053 "type" : "simple",
6054 "max_size" : 1024,
6055 "with_counters" : false,
6056 "support_timeout" : false,
6057 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006058 "action_ids" : [59],
6059 "actions" : ["act_21"],
6060 "base_default_next" : "node_60",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006061 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006062 "act_21" : "node_60"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006063 },
6064 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006065 "action_id" : 59,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006066 "action_const" : true,
6067 "action_data" : [],
6068 "action_entry_const" : true
6069 }
6070 },
6071 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006072 "name" : "tbl_egress_next_pop_mpls_if_present",
Daniele Moro5a2de712019-09-24 14:34:07 -07006073 "id" : 36,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006074 "source_info" : {
6075 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006076 "line" : 341,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006077 "column" : 36,
6078 "source_fragment" : "pop_mpls_if_present()"
6079 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006080 "key" : [],
6081 "match_type" : "exact",
6082 "type" : "simple",
6083 "max_size" : 1024,
6084 "with_counters" : false,
6085 "support_timeout" : false,
6086 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006087 "action_ids" : [53],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006088 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
6089 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6090 "next_tables" : {
6091 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
6092 },
6093 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006094 "action_id" : 53,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006095 "action_const" : true,
6096 "action_data" : [],
6097 "action_entry_const" : true
6098 }
6099 },
6100 {
6101 "name" : "tbl_egress_next_set_mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07006102 "id" : 37,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006103 "source_info" : {
6104 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006105 "line" : 343,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006106 "column" : 12,
6107 "source_fragment" : "set_mpls()"
6108 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006109 "key" : [],
6110 "match_type" : "exact",
6111 "type" : "simple",
6112 "max_size" : 1024,
6113 "with_counters" : false,
6114 "support_timeout" : false,
6115 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006116 "action_ids" : [54],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006117 "actions" : ["FabricEgress.egress_next.set_mpls"],
6118 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6119 "next_tables" : {
6120 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
6121 },
6122 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006123 "action_id" : 54,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006124 "action_const" : true,
6125 "action_data" : [],
6126 "action_entry_const" : true
6127 }
6128 },
6129 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006130 "name" : "FabricEgress.egress_next.egress_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07006131 "id" : 38,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006132 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006133 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006134 "line" : 320,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006135 "column" : 10,
6136 "source_fragment" : "egress_vlan"
6137 },
6138 "key" : [
6139 {
6140 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006141 "name" : "vlan_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07006142 "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006143 "mask" : null
6144 },
6145 {
6146 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006147 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006148 "target" : ["standard_metadata", "egress_port"],
6149 "mask" : null
6150 }
6151 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006152 "match_type" : "exact",
6153 "type" : "simple",
6154 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08006155 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006156 "support_timeout" : false,
6157 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006158 "action_ids" : [56, 51],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006159 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006160 "base_default_next" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006161 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006162 "__HIT__" : "tbl_act_22",
6163 "__MISS__" : "tbl_act_23"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006164 },
6165 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006166 "action_id" : 51,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006167 "action_const" : true,
6168 "action_data" : [],
6169 "action_entry_const" : true
6170 }
6171 },
6172 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006173 "name" : "tbl_act_22",
6174 "id" : 39,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006175 "key" : [],
6176 "match_type" : "exact",
6177 "type" : "simple",
6178 "max_size" : 1024,
6179 "with_counters" : false,
6180 "support_timeout" : false,
6181 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006182 "action_ids" : [60],
6183 "actions" : ["act_22"],
6184 "base_default_next" : "node_67",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006185 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006186 "act_22" : "node_67"
Daniele Moro7c3a0022019-07-12 13:38:34 -07006187 },
6188 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006189 "action_id" : 60,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006190 "action_const" : true,
6191 "action_data" : [],
6192 "action_entry_const" : true
6193 }
6194 },
6195 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006196 "name" : "tbl_act_23",
6197 "id" : 40,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006198 "key" : [],
6199 "match_type" : "exact",
6200 "type" : "simple",
6201 "max_size" : 1024,
6202 "with_counters" : false,
6203 "support_timeout" : false,
6204 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006205 "action_ids" : [61],
6206 "actions" : ["act_23"],
6207 "base_default_next" : "node_67",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006208 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006209 "act_23" : "node_67"
Daniele Moro7c3a0022019-07-12 13:38:34 -07006210 },
6211 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006212 "action_id" : 61,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006213 "action_const" : true,
6214 "action_data" : [],
6215 "action_entry_const" : true
6216 }
6217 },
6218 {
6219 "name" : "tbl_egress_next_push_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07006220 "id" : 41,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006221 "source_info" : {
6222 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006223 "line" : 360,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006224 "column" : 20,
6225 "source_fragment" : "push_vlan()"
6226 },
6227 "key" : [],
6228 "match_type" : "exact",
6229 "type" : "simple",
6230 "max_size" : 1024,
6231 "with_counters" : false,
6232 "support_timeout" : false,
6233 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006234 "action_ids" : [55],
Daniele Moro7c3a0022019-07-12 13:38:34 -07006235 "actions" : ["FabricEgress.egress_next.push_vlan"],
Daniele Moro5a2de712019-09-24 14:34:07 -07006236 "base_default_next" : "node_70",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006237 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006238 "FabricEgress.egress_next.push_vlan" : "node_70"
Daniele Moro7c3a0022019-07-12 13:38:34 -07006239 },
6240 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006241 "action_id" : 55,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006242 "action_const" : true,
6243 "action_data" : [],
6244 "action_entry_const" : true
6245 }
6246 },
6247 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006248 "name" : "tbl_act_24",
6249 "id" : 42,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006250 "source_info" : {
6251 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006252 "line" : 369,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006253 "column" : 25,
6254 "source_fragment" : "="
6255 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006256 "key" : [],
6257 "match_type" : "exact",
6258 "type" : "simple",
6259 "max_size" : 1024,
6260 "with_counters" : false,
6261 "support_timeout" : false,
6262 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006263 "action_ids" : [63],
6264 "actions" : ["act_25"],
6265 "base_default_next" : "node_72",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006266 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006267 "act_25" : "node_72"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006268 },
6269 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006270 "action_id" : 63,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006271 "action_const" : true,
6272 "action_data" : [],
6273 "action_entry_const" : true
6274 }
6275 },
6276 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006277 "name" : "tbl_act_25",
6278 "id" : 43,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006279 "source_info" : {
6280 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006281 "line" : 370,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006282 "column" : 35,
6283 "source_fragment" : "mark_to_drop(standard_metadata)"
6284 },
6285 "key" : [],
6286 "match_type" : "exact",
6287 "type" : "simple",
6288 "max_size" : 1024,
6289 "with_counters" : false,
6290 "support_timeout" : false,
6291 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006292 "action_ids" : [62],
6293 "actions" : ["act_24"],
6294 "base_default_next" : "node_78",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006295 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006296 "act_24" : "node_78"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006297 },
6298 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006299 "action_id" : 62,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006300 "action_const" : true,
6301 "action_data" : [],
6302 "action_entry_const" : true
6303 }
6304 },
6305 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006306 "name" : "tbl_act_26",
6307 "id" : 44,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006308 "source_info" : {
6309 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006310 "line" : 373,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006311 "column" : 29,
6312 "source_fragment" : "="
6313 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006314 "key" : [],
6315 "match_type" : "exact",
6316 "type" : "simple",
6317 "max_size" : 1024,
6318 "with_counters" : false,
6319 "support_timeout" : false,
6320 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006321 "action_ids" : [65],
6322 "actions" : ["act_27"],
6323 "base_default_next" : "node_76",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006324 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006325 "act_27" : "node_76"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006326 },
6327 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006328 "action_id" : 65,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006329 "action_const" : true,
6330 "action_data" : [],
6331 "action_entry_const" : true
6332 }
6333 },
6334 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006335 "name" : "tbl_act_27",
6336 "id" : 45,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006337 "source_info" : {
6338 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006339 "line" : 374,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006340 "column" : 39,
6341 "source_fragment" : "mark_to_drop(standard_metadata)"
6342 },
6343 "key" : [],
6344 "match_type" : "exact",
6345 "type" : "simple",
6346 "max_size" : 1024,
6347 "with_counters" : false,
6348 "support_timeout" : false,
6349 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006350 "action_ids" : [64],
6351 "actions" : ["act_26"],
6352 "base_default_next" : "node_78",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006353 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006354 "act_26" : "node_78"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006355 },
6356 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006357 "action_id" : 64,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006358 "action_const" : true,
6359 "action_data" : [],
6360 "action_entry_const" : true
6361 }
6362 },
6363 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006364 "name" : "tbl_spgw_egress_gtpu_encap",
Daniele Moro5a2de712019-09-24 14:34:07 -07006365 "id" : 46,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006366 "source_info" : {
6367 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006368 "line" : 228,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006369 "column" : 12,
6370 "source_fragment" : "gtpu_encap()"
6371 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006372 "key" : [],
6373 "match_type" : "exact",
6374 "type" : "simple",
6375 "max_size" : 1024,
6376 "with_counters" : false,
6377 "support_timeout" : false,
6378 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006379 "action_ids" : [52],
Yi Tseng27b9bc02018-04-12 14:52:40 +08006380 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006381 "base_default_next" : null,
6382 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006383 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006384 },
6385 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006386 "action_id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006387 "action_const" : true,
6388 "action_data" : [],
6389 "action_entry_const" : true
6390 }
6391 }
6392 ],
6393 "action_profiles" : [],
6394 "conditionals" : [
6395 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006396 "name" : "node_54",
6397 "id" : 17,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006398 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006399 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006400 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006401 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006402 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006403 },
6404 "expression" : {
6405 "type" : "expression",
6406 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006407 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006408 "left" : {
6409 "type" : "expression",
6410 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006411 "op" : "d2b",
6412 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006413 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006414 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006415 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out11"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02006416 }
6417 }
6418 },
6419 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006420 "type" : "bool",
6421 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02006422 }
6423 }
6424 },
Daniele Moro5a2de712019-09-24 14:34:07 -07006425 "true_next" : "tbl_act_19",
6426 "false_next" : "node_56"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006427 },
6428 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006429 "name" : "node_56",
6430 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006431 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006432 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006433 "line" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006434 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08006435 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006436 },
6437 "expression" : {
6438 "type" : "expression",
6439 "value" : {
6440 "op" : "==",
6441 "left" : {
6442 "type" : "field",
6443 "value" : ["standard_metadata", "egress_port"]
6444 },
6445 "right" : {
6446 "type" : "hexstr",
6447 "value" : "0x00ff"
6448 }
6449 }
6450 },
Daniele Moro5a2de712019-09-24 14:34:07 -07006451 "true_next" : "tbl_act_20",
6452 "false_next" : "node_58"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006453 },
6454 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006455 "name" : "node_58",
6456 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006457 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006458 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006459 "line" : 335,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006460 "column" : 12,
6461 "source_fragment" : "fabric_metadata.is_multicast == true ..."
6462 },
6463 "expression" : {
6464 "type" : "expression",
6465 "value" : {
6466 "op" : "and",
6467 "left" : {
6468 "type" : "expression",
6469 "value" : {
6470 "op" : "==",
6471 "left" : {
6472 "type" : "expression",
6473 "value" : {
6474 "op" : "d2b",
6475 "left" : null,
6476 "right" : {
6477 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006478 "value" : ["scalars", "fabric_metadata_t._is_multicast10"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006479 }
6480 }
6481 },
6482 "right" : {
6483 "type" : "bool",
6484 "value" : true
6485 }
6486 }
6487 },
6488 "right" : {
6489 "type" : "expression",
6490 "value" : {
6491 "op" : "==",
6492 "left" : {
6493 "type" : "field",
6494 "value" : ["standard_metadata", "ingress_port"]
6495 },
6496 "right" : {
6497 "type" : "field",
6498 "value" : ["standard_metadata", "egress_port"]
6499 }
6500 }
6501 }
6502 }
6503 },
Daniele Moro5a2de712019-09-24 14:34:07 -07006504 "true_next" : "tbl_act_21",
6505 "false_next" : "node_60"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006506 },
6507 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006508 "name" : "node_60",
6509 "id" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006510 "source_info" : {
6511 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006512 "line" : 340,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006513 "column" : 12,
6514 "source_fragment" : "fabric_metadata.mpls_label == 0"
6515 },
6516 "expression" : {
6517 "type" : "expression",
6518 "value" : {
6519 "op" : "==",
6520 "left" : {
6521 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006522 "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006523 },
6524 "right" : {
6525 "type" : "hexstr",
6526 "value" : "0x000000"
6527 }
6528 }
6529 },
Daniele Moro5a2de712019-09-24 14:34:07 -07006530 "true_next" : "node_61",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006531 "false_next" : "tbl_egress_next_set_mpls"
6532 },
6533 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006534 "name" : "node_61",
6535 "id" : 21,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006536 "source_info" : {
6537 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006538 "line" : 341,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006539 "column" : 16,
6540 "source_fragment" : "hdr.mpls.isValid()"
6541 },
6542 "expression" : {
6543 "type" : "expression",
6544 "value" : {
6545 "op" : "d2b",
6546 "left" : null,
6547 "right" : {
6548 "type" : "field",
6549 "value" : ["mpls", "$valid$"]
6550 }
6551 }
6552 },
6553 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006554 "false_next" : "FabricEgress.egress_next.egress_vlan"
6555 },
6556 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006557 "name" : "node_67",
6558 "id" : 22,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006559 "source_info" : {
6560 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006561 "line" : 357,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006562 "column" : 16,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006563 "source_fragment" : "!egress_vlan.apply().hit"
6564 },
6565 "expression" : {
6566 "type" : "expression",
6567 "value" : {
6568 "op" : "not",
6569 "left" : null,
6570 "right" : {
6571 "type" : "expression",
6572 "value" : {
6573 "op" : "d2b",
6574 "left" : null,
6575 "right" : {
6576 "type" : "field",
6577 "value" : ["scalars", "egress_next_tmp"]
6578 }
6579 }
6580 }
6581 }
6582 },
Daniele Moro5a2de712019-09-24 14:34:07 -07006583 "true_next" : "node_68",
6584 "false_next" : "node_70"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006585 },
6586 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006587 "name" : "node_68",
6588 "id" : 23,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006589 "source_info" : {
6590 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006591 "line" : 359,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006592 "column" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006593 "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
6594 },
6595 "expression" : {
6596 "type" : "expression",
6597 "value" : {
6598 "op" : "!=",
6599 "left" : {
6600 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006601 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006602 },
6603 "right" : {
6604 "type" : "hexstr",
6605 "value" : "0x0ffe"
6606 }
6607 }
6608 },
6609 "true_next" : "tbl_egress_next_push_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07006610 "false_next" : "node_70"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006611 },
6612 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006613 "name" : "node_70",
6614 "id" : 24,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006615 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006616 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006617 "line" : 368,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006618 "column" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006619 "source_fragment" : "hdr.mpls.isValid()"
6620 },
6621 "expression" : {
6622 "type" : "expression",
6623 "value" : {
6624 "op" : "d2b",
6625 "left" : null,
6626 "right" : {
6627 "type" : "field",
6628 "value" : ["mpls", "$valid$"]
6629 }
6630 }
6631 },
Daniele Moro5a2de712019-09-24 14:34:07 -07006632 "true_next" : "tbl_act_24",
6633 "false_next" : "node_74"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006634 },
6635 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006636 "name" : "node_72",
6637 "id" : 25,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006638 "source_info" : {
6639 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006640 "line" : 370,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006641 "column" : 16,
6642 "source_fragment" : "hdr.mpls.ttl == 0"
6643 },
6644 "expression" : {
6645 "type" : "expression",
6646 "value" : {
6647 "op" : "==",
6648 "left" : {
6649 "type" : "field",
6650 "value" : ["mpls", "ttl"]
6651 },
6652 "right" : {
6653 "type" : "hexstr",
6654 "value" : "0x00"
6655 }
6656 }
6657 },
Daniele Moro5a2de712019-09-24 14:34:07 -07006658 "true_next" : "tbl_act_25",
6659 "false_next" : "node_78"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006660 },
6661 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006662 "name" : "node_74",
6663 "id" : 26,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006664 "source_info" : {
6665 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006666 "line" : 372,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006667 "column" : 15,
6668 "source_fragment" : "hdr.ipv4.isValid()"
6669 },
6670 "expression" : {
6671 "type" : "expression",
6672 "value" : {
6673 "op" : "d2b",
6674 "left" : null,
6675 "right" : {
6676 "type" : "field",
6677 "value" : ["ipv4", "$valid$"]
6678 }
6679 }
6680 },
Daniele Moro5a2de712019-09-24 14:34:07 -07006681 "true_next" : "tbl_act_26",
6682 "false_next" : "node_78"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006683 },
6684 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006685 "name" : "node_76",
6686 "id" : 27,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006687 "source_info" : {
6688 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07006689 "line" : 374,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006690 "column" : 20,
6691 "source_fragment" : "hdr.ipv4.ttl == 0"
6692 },
6693 "expression" : {
6694 "type" : "expression",
6695 "value" : {
6696 "op" : "==",
6697 "left" : {
6698 "type" : "field",
6699 "value" : ["ipv4", "ttl"]
6700 },
6701 "right" : {
6702 "type" : "hexstr",
6703 "value" : "0x00"
6704 }
6705 }
6706 },
Daniele Moro5a2de712019-09-24 14:34:07 -07006707 "true_next" : "tbl_act_27",
6708 "false_next" : "node_78"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006709 },
6710 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006711 "name" : "node_78",
6712 "id" : 28,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006713 "source_info" : {
6714 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006715 "line" : 227,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006716 "column" : 12,
6717 "source_fragment" : "fabric_meta.spgw.direction == SPGW_DIR_DOWNLINK"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006718 },
6719 "expression" : {
6720 "type" : "expression",
6721 "value" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006722 "op" : "==",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006723 "left" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006724 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006725 "value" : ["scalars", "fabric_metadata_t._spgw_direction15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006726 },
6727 "right" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006728 "type" : "hexstr",
6729 "value" : "0x02"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006730 }
6731 }
6732 },
6733 "false_next" : null,
6734 "true_next" : "tbl_spgw_egress_gtpu_encap"
6735 }
6736 ]
6737 }
6738 ],
6739 "checksums" : [
6740 {
6741 "name" : "cksum",
6742 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006743 "source_info" : {
6744 "filename" : "include/checksum.p4",
6745 "line" : 28,
6746 "column" : 8,
6747 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
6748 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006749 "target" : ["ipv4", "hdr_checksum"],
6750 "type" : "generic",
6751 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006752 "verify" : false,
6753 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006754 "if_cond" : {
6755 "type" : "expression",
6756 "value" : {
6757 "op" : "d2b",
6758 "left" : null,
6759 "right" : {
6760 "type" : "field",
6761 "value" : ["ipv4", "$valid$"]
6762 }
6763 }
6764 }
6765 },
6766 {
6767 "name" : "cksum_0",
6768 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006769 "source_info" : {
6770 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006771 "line" : 243,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006772 "column" : 8,
6773 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
6774 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006775 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006776 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006777 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006778 "verify" : false,
6779 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006780 "if_cond" : {
6781 "type" : "expression",
6782 "value" : {
6783 "op" : "d2b",
6784 "left" : null,
6785 "right" : {
6786 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006787 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006788 }
6789 }
6790 }
6791 },
6792 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006793 "name" : "cksum_1",
6794 "id" : 2,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006795 "source_info" : {
6796 "filename" : "include/checksum.p4",
6797 "line" : 57,
6798 "column" : 8,
6799 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
6800 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006801 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006802 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006803 "calculation" : "calc_1",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006804 "verify" : true,
6805 "update" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006806 "if_cond" : {
6807 "type" : "expression",
6808 "value" : {
6809 "op" : "d2b",
6810 "left" : null,
6811 "right" : {
6812 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006813 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006814 }
6815 }
6816 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006817 }
6818 ],
6819 "force_arith" : [],
6820 "extern_instances" : [],
6821 "field_aliases" : [
6822 [
6823 "queueing_metadata.enq_timestamp",
6824 ["standard_metadata", "enq_timestamp"]
6825 ],
6826 [
6827 "queueing_metadata.enq_qdepth",
6828 ["standard_metadata", "enq_qdepth"]
6829 ],
6830 [
6831 "queueing_metadata.deq_timedelta",
6832 ["standard_metadata", "deq_timedelta"]
6833 ],
6834 [
6835 "queueing_metadata.deq_qdepth",
6836 ["standard_metadata", "deq_qdepth"]
6837 ],
6838 [
6839 "intrinsic_metadata.ingress_global_timestamp",
6840 ["standard_metadata", "ingress_global_timestamp"]
6841 ],
6842 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08006843 "intrinsic_metadata.egress_global_timestamp",
6844 ["standard_metadata", "egress_global_timestamp"]
6845 ],
6846 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006847 "intrinsic_metadata.lf_field_list",
6848 ["standard_metadata", "lf_field_list"]
6849 ],
6850 [
6851 "intrinsic_metadata.mcast_grp",
6852 ["standard_metadata", "mcast_grp"]
6853 ],
6854 [
6855 "intrinsic_metadata.resubmit_flag",
6856 ["standard_metadata", "resubmit_flag"]
6857 ],
6858 [
6859 "intrinsic_metadata.egress_rid",
6860 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08006861 ],
6862 [
6863 "intrinsic_metadata.recirculate_flag",
6864 ["standard_metadata", "recirculate_flag"]
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006865 ],
6866 [
6867 "intrinsic_metadata.priority",
6868 ["standard_metadata", "priority"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006869 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006870 ],
6871 "program" : "fabric.p4",
6872 "__meta__" : {
6873 "version" : [2, 18],
6874 "compiler" : "https://github.com/p4lang/p4c"
6875 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08006876}