blob: 70412dea432659583cf4f33f719846f823cf6cc2 [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 Moro5a2de712019-09-24 14:34:07 -07001052 "line" : 259,
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 Moro7c3a0022019-07-12 13:38:34 -07001092 "line" : 83,
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 Moro7c3a0022019-07-12 13:38:34 -07001152 "line" : 103,
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 Moro5a2de712019-09-24 14:34:07 -07001164 "line" : 180,
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 Moro5a2de712019-09-24 14:34:07 -07001176 "line" : 224,
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 Moro5a2de712019-09-24 14:34:07 -07001212 "line" : 309,
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 Moro7c3a0022019-07-12 13:38:34 -07001715 "line" : 86,
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 Moro5a2de712019-09-24 14:34:07 -07002100 "line" : 111,
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 Moro5a2de712019-09-24 14:34:07 -07002339 "line" : 227,
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 Moro5a2de712019-09-24 14:34:07 -07002368 "line" : 228,
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 Moro5a2de712019-09-24 14:34:07 -07002682 "line" : 109,
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 Moro5a2de712019-09-24 14:34:07 -07002701 "line" : 110,
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 Moro5a2de712019-09-24 14:34:07 -07002720 "line" : 111,
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 Moro5a2de712019-09-24 14:34:07 -07002746 "line" : 125,
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 Moro5a2de712019-09-24 14:34:07 -07003787 "line" : 266,
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 Moro5a2de712019-09-24 14:34:07 -07003806 "line" : 268,
3807 "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 Moro5a2de712019-09-24 14:34:07 -07003828 "line" : 273,
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 Moro5a2de712019-09-24 14:34:07 -07003847 "line" : 274,
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 Moro5a2de712019-09-24 14:34:07 -07003866 "line" : 275,
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 Moro5a2de712019-09-24 14:34:07 -07003885 "line" : 276,
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 Moro5a2de712019-09-24 14:34:07 -07003904 "line" : 277,
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 Moro5a2de712019-09-24 14:34:07 -07003945 "line" : 285,
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 Moro5a2de712019-09-24 14:34:07 -07003964 "line" : 286,
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 Moro5a2de712019-09-24 14:34:07 -07003983 "line" : 287,
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 Moro5a2de712019-09-24 14:34:07 -07004021 "line" : 289,
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 Moro5a2de712019-09-24 14:34:07 -07004043 "line" : 312,
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 Moro5a2de712019-09-24 14:34:07 -07004133 "line" : 333,
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 Moro5a2de712019-09-24 14:34:07 -07004215 "line" : 366,
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 Moro5a2de712019-09-24 14:34:07 -07004264 "line" : 365,
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 Moro5a2de712019-09-24 14:34:07 -07004286 "line" : 370,
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 Moro5a2de712019-09-24 14:34:07 -07004335 "line" : 369,
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 Moro5a2de712019-09-24 14:34:07 -07004534 "line" : 109,
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 Moro5a2de712019-09-24 14:34:07 -07004563 "line" : 125,
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
Daniele Moro7c3a0022019-07-12 13:38:34 -07004614 },
4615 {
4616 "match_type" : "ternary",
4617 "name" : "inner_vlan_id",
4618 "target" : ["inner_vlan_tag", "vlan_id"],
4619 "mask" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004620 }
4621 ],
4622 "match_type" : "ternary",
4623 "type" : "simple",
4624 "max_size" : 1024,
4625 "with_counters" : true,
4626 "support_timeout" : false,
4627 "direct_meters" : null,
4628 "action_ids" : [11, 12, 13],
4629 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
4630 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
4631 "next_tables" : {
4632 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
4633 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
4634 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
4635 },
4636 "default_entry" : {
4637 "action_id" : 11,
4638 "action_const" : true,
4639 "action_data" : [],
4640 "action_entry_const" : true
4641 }
4642 },
4643 {
4644 "name" : "FabricIngress.filtering.fwd_classifier",
Daniele Moro5a2de712019-09-24 14:34:07 -07004645 "id" : 9,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004646 "source_info" : {
4647 "filename" : "include/control/filtering.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004648 "line" : 90,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004649 "column" : 10,
4650 "source_fragment" : "fwd_classifier"
4651 },
4652 "key" : [
4653 {
4654 "match_type" : "exact",
4655 "name" : "ig_port",
4656 "target" : ["standard_metadata", "ingress_port"],
4657 "mask" : null
4658 },
4659 {
4660 "match_type" : "ternary",
4661 "name" : "eth_dst",
4662 "target" : ["ethernet", "dst_addr"],
4663 "mask" : null
4664 },
4665 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004666 "match_type" : "ternary",
4667 "name" : "eth_type",
4668 "target" : ["eth_type", "value"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07004669 "mask" : null
4670 },
4671 {
4672 "match_type" : "exact",
Daniele Moro5a2de712019-09-24 14:34:07 -07004673 "name" : "ip_eth_type",
4674 "target" : ["scalars", "fabric_metadata_t._ip_eth_type0"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004675 "mask" : null
4676 }
4677 ],
4678 "match_type" : "ternary",
4679 "type" : "simple",
4680 "max_size" : 1024,
4681 "with_counters" : true,
4682 "support_timeout" : false,
4683 "direct_meters" : null,
4684 "action_ids" : [14],
4685 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004686 "base_default_next" : "tbl_act_7",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004687 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004688 "FabricIngress.filtering.set_forwarding_type" : "tbl_act_7"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004689 },
4690 "default_entry" : {
4691 "action_id" : 14,
4692 "action_const" : true,
4693 "action_data" : ["0x0"],
4694 "action_entry_const" : true
4695 }
4696 },
4697 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004698 "name" : "tbl_act_7",
4699 "id" : 10,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004700 "key" : [],
4701 "match_type" : "exact",
4702 "type" : "simple",
4703 "max_size" : 1024,
4704 "with_counters" : false,
4705 "support_timeout" : false,
4706 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004707 "action_ids" : [47],
4708 "actions" : ["act_15"],
4709 "base_default_next" : "node_19",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004710 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004711 "act_15" : "node_19"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004712 },
4713 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004714 "action_id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004715 "action_const" : true,
4716 "action_data" : [],
4717 "action_entry_const" : true
4718 }
4719 },
4720 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004721 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Daniele Moro5a2de712019-09-24 14:34:07 -07004722 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004723 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004724 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004725 "line" : 83,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004726 "column" : 10,
4727 "source_fragment" : "s1u_filter_table"
4728 },
4729 "key" : [
4730 {
4731 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004732 "name" : "gtp_ipv4_dst",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004733 "target" : ["gtpu_ipv4", "dst_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004734 "mask" : null
4735 }
4736 ],
4737 "match_type" : "exact",
4738 "type" : "simple",
4739 "max_size" : 1024,
4740 "with_counters" : false,
4741 "support_timeout" : false,
4742 "direct_meters" : null,
4743 "action_ids" : [1],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004744 "actions" : ["nop"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004745 "base_default_next" : null,
4746 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004747 "__HIT__" : "tbl_act_8",
4748 "__MISS__" : "tbl_act_9"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004749 },
4750 "default_entry" : {
4751 "action_id" : 1,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004752 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004753 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004754 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004755 }
4756 },
4757 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004758 "name" : "tbl_act_8",
4759 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004760 "key" : [],
4761 "match_type" : "exact",
4762 "type" : "simple",
4763 "max_size" : 1024,
4764 "with_counters" : false,
4765 "support_timeout" : false,
4766 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004767 "action_ids" : [39],
4768 "actions" : ["act_7"],
4769 "base_default_next" : "node_23",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004770 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004771 "act_7" : "node_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004772 },
4773 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004774 "action_id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004775 "action_const" : true,
4776 "action_data" : [],
4777 "action_entry_const" : true
4778 }
4779 },
4780 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004781 "name" : "tbl_act_9",
4782 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004783 "key" : [],
4784 "match_type" : "exact",
4785 "type" : "simple",
4786 "max_size" : 1024,
4787 "with_counters" : false,
4788 "support_timeout" : false,
4789 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004790 "action_ids" : [40],
4791 "actions" : ["act_8"],
4792 "base_default_next" : "node_23",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004793 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004794 "act_8" : "node_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004795 },
4796 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004797 "action_id" : 40,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004798 "action_const" : true,
4799 "action_data" : [],
4800 "action_entry_const" : true
4801 }
4802 },
4803 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004804 "name" : "tbl_act_10",
4805 "id" : 14,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004806 "source_info" : {
4807 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004808 "line" : 149,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004809 "column" : 16,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004810 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07004811 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004812 "key" : [],
4813 "match_type" : "exact",
4814 "type" : "simple",
4815 "max_size" : 1024,
4816 "with_counters" : false,
4817 "support_timeout" : false,
4818 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004819 "action_ids" : [41],
4820 "actions" : ["act_9"],
4821 "base_default_next" : "tbl_act_11",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004822 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004823 "act_9" : "tbl_act_11"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004824 },
4825 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004826 "action_id" : 41,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004827 "action_const" : true,
4828 "action_data" : [],
4829 "action_entry_const" : true
4830 }
4831 },
4832 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004833 "name" : "tbl_act_11",
4834 "id" : 15,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004835 "source_info" : {
4836 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004837 "line" : 151,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004838 "column" : 39,
4839 "source_fragment" : "="
4840 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004841 "key" : [],
4842 "match_type" : "exact",
4843 "type" : "simple",
4844 "max_size" : 1024,
4845 "with_counters" : false,
4846 "support_timeout" : false,
4847 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004848 "action_ids" : [42],
4849 "actions" : ["act_10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004850 "base_default_next" : "tbl_spgw_ingress_gtpu_decap",
4851 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004852 "act_10" : "tbl_spgw_ingress_gtpu_decap"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004853 },
4854 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004855 "action_id" : 42,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004856 "action_const" : true,
4857 "action_data" : [],
4858 "action_entry_const" : true
4859 }
4860 },
4861 {
4862 "name" : "tbl_spgw_ingress_gtpu_decap",
Daniele Moro5a2de712019-09-24 14:34:07 -07004863 "id" : 16,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004864 "source_info" : {
4865 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004866 "line" : 152,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004867 "column" : 12,
4868 "source_fragment" : "gtpu_decap()"
4869 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004870 "key" : [],
4871 "match_type" : "exact",
4872 "type" : "simple",
4873 "max_size" : 1024,
4874 "with_counters" : false,
4875 "support_timeout" : false,
4876 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004877 "action_ids" : [9],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004878 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004879 "base_default_next" : "node_33",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004880 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004881 "FabricIngress.spgw_ingress.gtpu_decap" : "node_33"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004882 },
4883 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004884 "action_id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004885 "action_const" : true,
4886 "action_data" : [],
4887 "action_entry_const" : true
4888 }
4889 },
4890 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004891 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Daniele Moro5a2de712019-09-24 14:34:07 -07004892 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004893 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004894 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004895 "line" : 70,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004896 "column" : 10,
4897 "source_fragment" : "dl_sess_lookup"
4898 },
4899 "key" : [
4900 {
4901 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004902 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004903 "target" : ["ipv4", "dst_addr"],
4904 "mask" : null
4905 }
4906 ],
4907 "match_type" : "exact",
4908 "type" : "simple",
4909 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004910 "with_counters" : true,
4911 "support_timeout" : false,
4912 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004913 "action_ids" : [10, 0],
4914 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "nop"],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004915 "base_default_next" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004916 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004917 "__HIT__" : "tbl_act_12",
4918 "__MISS__" : "tbl_act_13"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004919 },
4920 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004921 "action_id" : 0,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004922 "action_const" : true,
4923 "action_data" : [],
4924 "action_entry_const" : true
4925 }
4926 },
4927 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004928 "name" : "tbl_act_12",
4929 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004930 "key" : [],
4931 "match_type" : "exact",
4932 "type" : "simple",
4933 "max_size" : 1024,
4934 "with_counters" : false,
4935 "support_timeout" : false,
4936 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004937 "action_ids" : [43],
4938 "actions" : ["act_11"],
4939 "base_default_next" : "node_30",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004940 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004941 "act_11" : "node_30"
Yi Tseng27b9bc02018-04-12 14:52:40 +08004942 },
4943 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004944 "action_id" : 43,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004945 "action_const" : true,
4946 "action_data" : [],
4947 "action_entry_const" : true
4948 }
4949 },
4950 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004951 "name" : "tbl_act_13",
4952 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004953 "key" : [],
4954 "match_type" : "exact",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004955 "type" : "simple",
4956 "max_size" : 1024,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004957 "with_counters" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004958 "support_timeout" : false,
4959 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004960 "action_ids" : [44],
4961 "actions" : ["act_12"],
4962 "base_default_next" : "node_30",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004963 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004964 "act_12" : "node_30"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004965 },
4966 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004967 "action_id" : 44,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004968 "action_const" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004969 "action_data" : [],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004970 "action_entry_const" : true
4971 }
4972 },
4973 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004974 "name" : "tbl_act_14",
4975 "id" : 20,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004976 "source_info" : {
4977 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004978 "line" : 154,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004979 "column" : 39,
4980 "source_fragment" : "="
4981 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004982 "key" : [],
4983 "match_type" : "exact",
4984 "type" : "simple",
4985 "max_size" : 1024,
4986 "with_counters" : false,
4987 "support_timeout" : false,
4988 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004989 "action_ids" : [45],
4990 "actions" : ["act_13"],
4991 "base_default_next" : "node_33",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004992 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004993 "act_13" : "node_33"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004994 },
4995 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004996 "action_id" : 45,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004997 "action_const" : true,
4998 "action_data" : [],
4999 "action_entry_const" : true
5000 }
5001 },
5002 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005003 "name" : "tbl_act_15",
5004 "id" : 21,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005005 "source_info" : {
5006 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005007 "line" : 156,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005008 "column" : 39,
5009 "source_fragment" : "= SPGW_DIR_UNKNOWN; ..."
5010 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005011 "key" : [],
5012 "match_type" : "exact",
5013 "type" : "simple",
5014 "max_size" : 1024,
5015 "with_counters" : false,
5016 "support_timeout" : false,
5017 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07005018 "action_ids" : [46],
5019 "actions" : ["act_14"],
5020 "base_default_next" : "node_33",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005021 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005022 "act_14" : "node_33"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005023 },
5024 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005025 "action_id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005026 "action_const" : true,
5027 "action_data" : [],
5028 "action_entry_const" : true
5029 }
5030 },
5031 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005032 "name" : "tbl_act_16",
5033 "id" : 22,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005034 "source_info" : {
5035 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005036 "line" : 175,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005037 "column" : 34,
5038 "source_fragment" : "="
5039 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005040 "key" : [],
5041 "match_type" : "exact",
5042 "type" : "simple",
5043 "max_size" : 1024,
5044 "with_counters" : false,
5045 "support_timeout" : false,
5046 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07005047 "action_ids" : [48],
5048 "actions" : ["act_16"],
5049 "base_default_next" : "node_35",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005050 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005051 "act_16" : "node_35"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005052 },
5053 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005054 "action_id" : 48,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005055 "action_const" : true,
5056 "action_data" : [],
5057 "action_entry_const" : true
5058 }
5059 },
5060 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005061 "name" : "FabricIngress.forwarding.bridging",
Daniele Moro5a2de712019-09-24 14:34:07 -07005062 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005063 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005064 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005065 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005066 "column" : 10,
5067 "source_fragment" : "bridging"
5068 },
5069 "key" : [
5070 {
5071 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005072 "name" : "vlan_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07005073 "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005074 "mask" : null
5075 },
5076 {
5077 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005078 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005079 "target" : ["ethernet", "dst_addr"],
5080 "mask" : null
5081 }
5082 ],
5083 "match_type" : "ternary",
5084 "type" : "simple",
5085 "max_size" : 1024,
5086 "with_counters" : true,
5087 "support_timeout" : false,
5088 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005089 "action_ids" : [15, 2],
5090 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
5091 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005092 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005093 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.acl.acl",
5094 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005095 },
5096 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005097 "action_id" : 2,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005098 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005099 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005100 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005101 }
5102 },
5103 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005104 "name" : "FabricIngress.forwarding.mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07005105 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005106 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005107 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005108 "line" : 71,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005109 "column" : 10,
5110 "source_fragment" : "mpls"
5111 },
5112 "key" : [
5113 {
5114 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005115 "name" : "mpls_label",
Daniele Moro5a2de712019-09-24 14:34:07 -07005116 "target" : ["scalars", "fabric_metadata_t._mpls_label4"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005117 "mask" : null
5118 }
5119 ],
5120 "match_type" : "exact",
5121 "type" : "simple",
5122 "max_size" : 1024,
5123 "with_counters" : true,
5124 "support_timeout" : false,
5125 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005126 "action_ids" : [16, 3],
5127 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
5128 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005129 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005130 "FabricIngress.forwarding.pop_mpls_and_next" : "FabricIngress.acl.acl",
5131 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005132 },
5133 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005134 "action_id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005135 "action_const" : true,
5136 "action_data" : [],
5137 "action_entry_const" : true
5138 }
5139 },
5140 {
Charles Chan384aea22018-08-23 22:08:02 -07005141 "name" : "FabricIngress.forwarding.routing_v4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005142 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005143 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005144 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005145 "line" : 108,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005146 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07005147 "source_fragment" : "routing_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005148 },
5149 "key" : [
5150 {
5151 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005152 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005153 "target" : ["ipv4", "dst_addr"],
5154 "mask" : null
5155 }
5156 ],
5157 "match_type" : "lpm",
5158 "type" : "simple",
5159 "max_size" : 1024,
Daniele Moro5a2de712019-09-24 14:34:07 -07005160 "with_counters" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005161 "support_timeout" : false,
5162 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005163 "action_ids" : [17, 18, 4],
5164 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
5165 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005166 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005167 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.acl.acl",
5168 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.acl.acl",
5169 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005170 },
5171 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005172 "action_id" : 4,
CyberHasHe9ba39c2019-10-11 05:59:12 +08005173 "action_const" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005174 "action_data" : [],
CyberHasHe9ba39c2019-10-11 05:59:12 +08005175 "action_entry_const" : false
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005176 }
5177 },
5178 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005179 "name" : "FabricIngress.acl.acl",
Daniele Moro5a2de712019-09-24 14:34:07 -07005180 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005181 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005182 "filename" : "include/control/acl.p4",
5183 "line" : 60,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005184 "column" : 10,
5185 "source_fragment" : "acl"
5186 },
5187 "key" : [
5188 {
5189 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005190 "name" : "ig_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005191 "target" : ["standard_metadata", "ingress_port"],
5192 "mask" : null
5193 },
5194 {
5195 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005196 "name" : "ip_proto",
Daniele Moro5a2de712019-09-24 14:34:07 -07005197 "target" : ["scalars", "fabric_metadata_t._ip_proto12"],
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_sport",
Daniele Moro5a2de712019-09-24 14:34:07 -07005203 "target" : ["scalars", "fabric_metadata_t._l4_sport13"],
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" : "l4_dport",
Daniele Moro5a2de712019-09-24 14:34:07 -07005209 "target" : ["scalars", "fabric_metadata_t._l4_dport14"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005210 "mask" : null
5211 },
5212 {
5213 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005214 "name" : "eth_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005215 "target" : ["ethernet", "dst_addr"],
5216 "mask" : null
5217 },
5218 {
5219 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005220 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005221 "target" : ["ethernet", "src_addr"],
5222 "mask" : null
5223 },
5224 {
5225 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005226 "name" : "vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005227 "target" : ["vlan_tag", "vlan_id"],
5228 "mask" : null
5229 },
5230 {
5231 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005232 "name" : "eth_type",
Daniele Moro5a2de712019-09-24 14:34:07 -07005233 "target" : ["eth_type", "value"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08005234 "mask" : null
5235 },
5236 {
5237 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005238 "name" : "ipv4_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005239 "target" : ["ipv4", "src_addr"],
5240 "mask" : null
5241 },
5242 {
5243 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005244 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005245 "target" : ["ipv4", "dst_addr"],
5246 "mask" : null
5247 },
5248 {
5249 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005250 "name" : "icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005251 "target" : ["icmp", "icmp_type"],
5252 "mask" : null
5253 },
5254 {
5255 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005256 "name" : "icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005257 "target" : ["icmp", "icmp_code"],
5258 "mask" : null
5259 }
5260 ],
5261 "match_type" : "ternary",
5262 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005263 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005264 "with_counters" : true,
5265 "support_timeout" : false,
5266 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005267 "action_ids" : [19, 20, 21, 22, 23],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005268 "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 -07005269 "base_default_next" : "node_43",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005270 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005271 "FabricIngress.acl.set_next_id_acl" : "node_43",
5272 "FabricIngress.acl.punt_to_cpu" : "node_43",
5273 "FabricIngress.acl.set_clone_session_id" : "node_43",
5274 "FabricIngress.acl.drop" : "node_43",
5275 "FabricIngress.acl.nop_acl" : "node_43"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005276 },
5277 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005278 "action_id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005279 "action_const" : true,
5280 "action_data" : [],
5281 "action_entry_const" : true
5282 }
5283 },
5284 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005285 "name" : "FabricIngress.next.xconnect",
Daniele Moro5a2de712019-09-24 14:34:07 -07005286 "id" : 27,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005287 "source_info" : {
5288 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005289 "line" : 115,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005290 "column" : 10,
5291 "source_fragment" : "xconnect"
5292 },
5293 "key" : [
5294 {
5295 "match_type" : "exact",
5296 "name" : "ig_port",
5297 "target" : ["standard_metadata", "ingress_port"],
5298 "mask" : null
5299 },
5300 {
5301 "match_type" : "exact",
5302 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07005303 "target" : ["scalars", "fabric_metadata_t._next_id9"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005304 "mask" : null
5305 }
5306 ],
5307 "match_type" : "exact",
5308 "type" : "simple",
5309 "max_size" : 1024,
5310 "with_counters" : true,
5311 "support_timeout" : false,
5312 "direct_meters" : null,
5313 "action_ids" : [25, 26, 6],
5314 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
5315 "base_default_next" : "FabricIngress.next.hashed",
5316 "next_tables" : {
5317 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
5318 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
5319 "nop" : "FabricIngress.next.hashed"
5320 },
5321 "default_entry" : {
5322 "action_id" : 6,
5323 "action_const" : true,
5324 "action_data" : [],
5325 "action_entry_const" : true
5326 }
5327 },
5328 {
5329 "name" : "FabricIngress.next.hashed",
Daniele Moro5a2de712019-09-24 14:34:07 -07005330 "id" : 28,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005331 "source_info" : {
5332 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005333 "line" : 198,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005334 "column" : 10,
5335 "source_fragment" : "hashed"
5336 },
5337 "key" : [
5338 {
5339 "match_type" : "exact",
5340 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07005341 "target" : ["scalars", "fabric_metadata_t._next_id9"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005342 "mask" : null
5343 }
5344 ],
5345 "match_type" : "exact",
5346 "type" : "indirect_ws",
5347 "action_profile" : "FabricIngress.next.hashed_selector",
5348 "max_size" : 1024,
5349 "with_counters" : true,
5350 "support_timeout" : false,
5351 "direct_meters" : null,
5352 "action_ids" : [27, 28, 29, 7],
5353 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
5354 "base_default_next" : "FabricIngress.next.multicast",
5355 "next_tables" : {
5356 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
5357 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
5358 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
5359 "nop" : "FabricIngress.next.multicast"
5360 }
5361 },
5362 {
5363 "name" : "FabricIngress.next.multicast",
Daniele Moro5a2de712019-09-24 14:34:07 -07005364 "id" : 29,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005365 "source_info" : {
5366 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005367 "line" : 232,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005368 "column" : 10,
5369 "source_fragment" : "multicast"
5370 },
5371 "key" : [
5372 {
5373 "match_type" : "exact",
5374 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07005375 "target" : ["scalars", "fabric_metadata_t._next_id9"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005376 "mask" : null
5377 }
5378 ],
5379 "match_type" : "exact",
5380 "type" : "simple",
5381 "max_size" : 1024,
5382 "with_counters" : true,
5383 "support_timeout" : false,
5384 "direct_meters" : null,
5385 "action_ids" : [30, 8],
5386 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
5387 "base_default_next" : "FabricIngress.next.next_vlan",
5388 "next_tables" : {
5389 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
5390 "nop" : "FabricIngress.next.next_vlan"
5391 },
5392 "default_entry" : {
5393 "action_id" : 8,
5394 "action_const" : true,
5395 "action_data" : [],
5396 "action_entry_const" : true
5397 }
5398 },
5399 {
5400 "name" : "FabricIngress.next.next_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07005401 "id" : 30,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005402 "source_info" : {
5403 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005404 "line" : 82,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005405 "column" : 10,
5406 "source_fragment" : "next_vlan"
5407 },
5408 "key" : [
5409 {
5410 "match_type" : "exact",
5411 "name" : "next_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07005412 "target" : ["scalars", "fabric_metadata_t._next_id9"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005413 "mask" : null
5414 }
5415 ],
5416 "match_type" : "exact",
5417 "type" : "simple",
5418 "max_size" : 1024,
5419 "with_counters" : true,
5420 "support_timeout" : false,
5421 "direct_meters" : null,
5422 "action_ids" : [24, 5],
5423 "actions" : ["FabricIngress.next.set_vlan", "nop"],
Daniele Moro5a2de712019-09-24 14:34:07 -07005424 "base_default_next" : "node_48",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005425 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005426 "FabricIngress.next.set_vlan" : "node_48",
5427 "nop" : "node_48"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005428 },
5429 "default_entry" : {
5430 "action_id" : 5,
5431 "action_const" : true,
5432 "action_data" : [],
5433 "action_entry_const" : true
5434 }
5435 },
5436 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005437 "name" : "tbl_act_17",
5438 "id" : 31,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005439 "source_info" : {
5440 "filename" : "include/control/port_counter.p4",
5441 "line" : 31,
5442 "column" : 12,
5443 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
5444 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02005445 "key" : [],
5446 "match_type" : "exact",
5447 "type" : "simple",
5448 "max_size" : 1024,
5449 "with_counters" : false,
5450 "support_timeout" : false,
5451 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07005452 "action_ids" : [49],
5453 "actions" : ["act_17"],
5454 "base_default_next" : "node_50",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005455 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005456 "act_17" : "node_50"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005457 },
5458 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005459 "action_id" : 49,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005460 "action_const" : true,
5461 "action_data" : [],
5462 "action_entry_const" : true
5463 }
5464 },
5465 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005466 "name" : "tbl_act_18",
5467 "id" : 32,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005468 "source_info" : {
5469 "filename" : "include/control/port_counter.p4",
5470 "line" : 34,
5471 "column" : 12,
5472 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
5473 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005474 "key" : [],
5475 "match_type" : "exact",
5476 "type" : "simple",
5477 "max_size" : 1024,
5478 "with_counters" : false,
5479 "support_timeout" : false,
5480 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07005481 "action_ids" : [50],
5482 "actions" : ["act_18"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005483 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005484 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005485 "act_18" : null
Carmelo Casconea5400af2018-07-17 22:11:54 +02005486 },
5487 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07005488 "action_id" : 50,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005489 "action_const" : true,
5490 "action_data" : [],
5491 "action_entry_const" : true
5492 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005493 }
5494 ],
5495 "action_profiles" : [
5496 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005497 "name" : "FabricIngress.next.hashed_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005498 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005499 "source_info" : {
5500 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005501 "line" : 179,
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005502 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005503 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005504 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005505 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005506 "selector" : {
5507 "algo" : "crc16",
5508 "input" : [
5509 {
5510 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005511 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005512 },
5513 {
5514 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005515 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005516 },
5517 {
5518 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005519 "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005520 },
5521 {
5522 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005523 "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005524 },
5525 {
5526 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005527 "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005528 }
5529 ]
5530 }
5531 }
5532 ],
5533 "conditionals" : [
5534 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005535 "name" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005536 "id" : 0,
5537 "source_info" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005538 "filename" : "include/spgw.p4",
5539 "line" : 30,
5540 "column" : 12,
5541 "source_fragment" : "! is_gtpu_encapped"
5542 },
5543 "expression" : {
5544 "type" : "expression",
5545 "value" : {
5546 "op" : "not",
5547 "left" : null,
5548 "right" : {
5549 "type" : "expression",
5550 "value" : {
5551 "op" : "d2b",
5552 "left" : null,
5553 "right" : {
5554 "type" : "field",
5555 "value" : ["gtpu", "$valid$"]
5556 }
5557 }
5558 }
5559 }
5560 },
5561 "true_next" : "tbl_act_0",
5562 "false_next" : "node_5"
5563 },
5564 {
5565 "name" : "node_5",
5566 "id" : 1,
5567 "expression" : {
5568 "type" : "expression",
5569 "value" : {
5570 "op" : "not",
5571 "left" : null,
5572 "right" : {
5573 "type" : "expression",
5574 "value" : {
5575 "op" : "d2b",
5576 "left" : null,
5577 "right" : {
5578 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005579 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005580 }
5581 }
5582 }
5583 }
5584 },
5585 "true_next" : "tbl_act_1",
5586 "false_next" : "node_10"
5587 },
5588 {
5589 "name" : "node_7",
5590 "id" : 2,
5591 "source_info" : {
5592 "filename" : "include/spgw.p4",
5593 "line" : 34,
5594 "column" : 12,
5595 "source_fragment" : "inner_udp.isValid()"
5596 },
5597 "expression" : {
5598 "type" : "expression",
5599 "value" : {
5600 "op" : "d2b",
5601 "left" : null,
5602 "right" : {
5603 "type" : "field",
5604 "value" : ["inner_udp", "$valid$"]
5605 }
5606 }
5607 },
5608 "true_next" : "tbl_act_2",
5609 "false_next" : "tbl_act_3"
5610 },
5611 {
5612 "name" : "node_10",
5613 "id" : 3,
5614 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005615 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005616 "line" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005617 "column" : 12,
5618 "source_fragment" : "hdr.packet_out.isValid()"
5619 },
5620 "expression" : {
5621 "type" : "expression",
5622 "value" : {
5623 "op" : "d2b",
5624 "left" : null,
5625 "right" : {
5626 "type" : "field",
5627 "value" : ["packet_out", "$valid$"]
5628 }
5629 }
5630 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005631 "true_next" : "tbl_act_4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005632 "false_next" : "node_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005633 },
5634 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005635 "name" : "node_12",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005636 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005637 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005638 "filename" : "include/control/filtering.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005639 "line" : 108,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005640 "column" : 12,
5641 "source_fragment" : "hdr.vlan_tag.isValid()"
5642 },
5643 "expression" : {
5644 "type" : "expression",
5645 "value" : {
5646 "op" : "d2b",
5647 "left" : null,
5648 "right" : {
5649 "type" : "field",
5650 "value" : ["vlan_tag", "$valid$"]
5651 }
5652 }
5653 },
5654 "true_next" : "tbl_act_5",
5655 "false_next" : "node_14"
5656 },
5657 {
5658 "name" : "node_14",
5659 "id" : 5,
5660 "source_info" : {
5661 "filename" : "include/control/filtering.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005662 "line" : 120,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005663 "column" : 12,
5664 "source_fragment" : "!hdr.mpls.isValid()"
5665 },
5666 "expression" : {
5667 "type" : "expression",
5668 "value" : {
5669 "op" : "not",
5670 "left" : null,
5671 "right" : {
5672 "type" : "expression",
5673 "value" : {
5674 "op" : "d2b",
5675 "left" : null,
5676 "right" : {
5677 "type" : "field",
5678 "value" : ["mpls", "$valid$"]
5679 }
5680 }
5681 }
5682 }
5683 },
5684 "true_next" : "tbl_act_6",
Daniele Moro5a2de712019-09-24 14:34:07 -07005685 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005686 },
5687 {
5688 "name" : "node_19",
Daniele Moro5a2de712019-09-24 14:34:07 -07005689 "id" : 6,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005690 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005691 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005692 "line" : 144,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005693 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005694 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005695 },
5696 "expression" : {
5697 "type" : "expression",
5698 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005699 "op" : "d2b",
5700 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005701 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005702 "type" : "field",
5703 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005704 }
5705 }
5706 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005707 "true_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
5708 "false_next" : "FabricIngress.spgw_ingress.dl_sess_lookup"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005709 },
5710 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005711 "name" : "node_23",
5712 "id" : 7,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005713 "source_info" : {
5714 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005715 "line" : 148,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005716 "column" : 16,
5717 "source_fragment" : "!s1u_filter_table.apply().hit"
5718 },
5719 "expression" : {
5720 "type" : "expression",
5721 "value" : {
5722 "op" : "not",
5723 "left" : null,
5724 "right" : {
5725 "type" : "expression",
5726 "value" : {
5727 "op" : "d2b",
5728 "left" : null,
5729 "right" : {
5730 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005731 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005732 }
5733 }
5734 }
5735 }
5736 },
Daniele Moro5a2de712019-09-24 14:34:07 -07005737 "true_next" : "tbl_act_10",
5738 "false_next" : "tbl_act_11"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005739 },
5740 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005741 "name" : "node_30",
5742 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005743 "expression" : {
5744 "type" : "expression",
5745 "value" : {
5746 "op" : "d2b",
5747 "left" : null,
5748 "right" : {
5749 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005750 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005751 }
5752 }
5753 },
Daniele Moro5a2de712019-09-24 14:34:07 -07005754 "true_next" : "tbl_act_14",
5755 "false_next" : "tbl_act_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005756 },
5757 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005758 "name" : "node_33",
5759 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005760 "expression" : {
5761 "type" : "expression",
5762 "value" : {
5763 "op" : "not",
5764 "left" : null,
5765 "right" : {
5766 "type" : "expression",
5767 "value" : {
5768 "op" : "d2b",
5769 "left" : null,
5770 "right" : {
5771 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005772 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005773 }
5774 }
5775 }
5776 }
5777 },
Daniele Moro5a2de712019-09-24 14:34:07 -07005778 "true_next" : "tbl_act_16",
5779 "false_next" : "node_35"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005780 },
5781 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005782 "name" : "node_35",
5783 "id" : 10,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005784 "source_info" : {
5785 "filename" : "fabric.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005786 "line" : 71,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005787 "column" : 12,
5788 "source_fragment" : "fabric_metadata.skip_forwarding == false"
5789 },
5790 "expression" : {
5791 "type" : "expression",
5792 "value" : {
5793 "op" : "==",
5794 "left" : {
5795 "type" : "expression",
5796 "value" : {
5797 "op" : "d2b",
5798 "left" : null,
5799 "right" : {
5800 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005801 "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005802 }
5803 }
5804 },
5805 "right" : {
5806 "type" : "bool",
5807 "value" : false
5808 }
5809 }
5810 },
Daniele Moro5a2de712019-09-24 14:34:07 -07005811 "true_next" : "node_36",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005812 "false_next" : "FabricIngress.acl.acl"
5813 },
5814 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005815 "name" : "node_36",
5816 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005817 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005818 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005819 "line" : 150,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005820 "column" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005821 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
5822 },
5823 "expression" : {
5824 "type" : "expression",
5825 "value" : {
5826 "op" : "==",
5827 "left" : {
5828 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005829 "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005830 },
5831 "right" : {
5832 "type" : "hexstr",
5833 "value" : "0x00"
5834 }
5835 }
5836 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005837 "true_next" : "FabricIngress.forwarding.bridging",
Daniele Moro5a2de712019-09-24 14:34:07 -07005838 "false_next" : "node_38"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005839 },
5840 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005841 "name" : "node_38",
5842 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005843 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005844 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005845 "line" : 151,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005846 "column" : 17,
5847 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
5848 },
5849 "expression" : {
5850 "type" : "expression",
5851 "value" : {
5852 "op" : "==",
5853 "left" : {
5854 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005855 "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005856 },
5857 "right" : {
5858 "type" : "hexstr",
5859 "value" : "0x01"
5860 }
5861 }
5862 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005863 "true_next" : "FabricIngress.forwarding.mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07005864 "false_next" : "node_40"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005865 },
5866 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005867 "name" : "node_40",
5868 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005869 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005870 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005871 "line" : 152,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005872 "column" : 17,
5873 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
5874 },
5875 "expression" : {
5876 "type" : "expression",
5877 "value" : {
5878 "op" : "==",
5879 "left" : {
5880 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005881 "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005882 },
5883 "right" : {
5884 "type" : "hexstr",
5885 "value" : "0x02"
5886 }
5887 }
5888 },
Charles Chan384aea22018-08-23 22:08:02 -07005889 "true_next" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005890 "false_next" : "FabricIngress.acl.acl"
5891 },
5892 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005893 "name" : "node_43",
5894 "id" : 14,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005895 "source_info" : {
5896 "filename" : "fabric.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005897 "line" : 75,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005898 "column" : 12,
5899 "source_fragment" : "fabric_metadata.skip_next == false"
5900 },
5901 "expression" : {
5902 "type" : "expression",
5903 "value" : {
5904 "op" : "==",
5905 "left" : {
5906 "type" : "expression",
5907 "value" : {
5908 "op" : "d2b",
5909 "left" : null,
5910 "right" : {
5911 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07005912 "value" : ["scalars", "fabric_metadata_t._skip_next7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005913 }
5914 }
5915 },
5916 "right" : {
5917 "type" : "bool",
5918 "value" : false
5919 }
5920 }
5921 },
5922 "false_next" : null,
5923 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005924 },
5925 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005926 "name" : "node_48",
5927 "id" : 15,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005928 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005929 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005930 "line" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005931 "column" : 12,
5932 "source_fragment" : "standard_metadata.egress_spec < 511"
5933 },
5934 "expression" : {
5935 "type" : "expression",
5936 "value" : {
5937 "op" : "<",
5938 "left" : {
5939 "type" : "field",
5940 "value" : ["standard_metadata", "egress_spec"]
5941 },
5942 "right" : {
5943 "type" : "hexstr",
5944 "value" : "0x01ff"
5945 }
5946 }
5947 },
Daniele Moro5a2de712019-09-24 14:34:07 -07005948 "true_next" : "tbl_act_17",
5949 "false_next" : "node_50"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005950 },
5951 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005952 "name" : "node_50",
5953 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005954 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005955 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005956 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005957 "column" : 12,
5958 "source_fragment" : "standard_metadata.ingress_port < 511"
5959 },
5960 "expression" : {
5961 "type" : "expression",
5962 "value" : {
5963 "op" : "<",
5964 "left" : {
5965 "type" : "field",
5966 "value" : ["standard_metadata", "ingress_port"]
5967 },
5968 "right" : {
5969 "type" : "hexstr",
5970 "value" : "0x01ff"
5971 }
5972 }
5973 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005974 "false_next" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07005975 "true_next" : "tbl_act_18"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005976 }
5977 ]
5978 },
5979 {
5980 "name" : "egress",
5981 "id" : 1,
5982 "source_info" : {
5983 "filename" : "fabric.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005984 "line" : 93,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005985 "column" : 8,
5986 "source_fragment" : "FabricEgress"
5987 },
Daniele Moro5a2de712019-09-24 14:34:07 -07005988 "init_table" : "node_54",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005989 "tables" : [
5990 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005991 "name" : "tbl_act_19",
5992 "id" : 33,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005993 "source_info" : {
5994 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005995 "line" : 41,
5996 "column" : 12,
5997 "source_fragment" : "exit"
Carmelo Cascone3032b872019-04-13 01:23:54 -07005998 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02005999 "key" : [],
6000 "match_type" : "exact",
6001 "type" : "simple",
6002 "max_size" : 1024,
6003 "with_counters" : false,
6004 "support_timeout" : false,
6005 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006006 "action_ids" : [57],
6007 "actions" : ["act_19"],
6008 "base_default_next" : "node_56",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006009 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006010 "act_19" : "node_56"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006011 },
6012 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006013 "action_id" : 57,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006014 "action_const" : true,
6015 "action_data" : [],
6016 "action_entry_const" : true
6017 }
6018 },
6019 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006020 "name" : "tbl_act_20",
6021 "id" : 34,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006022 "source_info" : {
6023 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006024 "line" : 44,
6025 "column" : 12,
6026 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07006027 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006028 "key" : [],
6029 "match_type" : "exact",
6030 "type" : "simple",
6031 "max_size" : 1024,
6032 "with_counters" : false,
6033 "support_timeout" : false,
6034 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006035 "action_ids" : [58],
6036 "actions" : ["act_20"],
6037 "base_default_next" : "node_58",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006038 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006039 "act_20" : "node_58"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006040 },
6041 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006042 "action_id" : 58,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006043 "action_const" : true,
6044 "action_data" : [],
6045 "action_entry_const" : true
6046 }
6047 },
6048 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006049 "name" : "tbl_act_21",
6050 "id" : 35,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006051 "source_info" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006052 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006053 "line" : 333,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006054 "column" : 12,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006055 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07006056 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006057 "key" : [],
6058 "match_type" : "exact",
6059 "type" : "simple",
6060 "max_size" : 1024,
6061 "with_counters" : false,
6062 "support_timeout" : false,
6063 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006064 "action_ids" : [59],
6065 "actions" : ["act_21"],
6066 "base_default_next" : "node_60",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006067 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006068 "act_21" : "node_60"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006069 },
6070 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006071 "action_id" : 59,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006072 "action_const" : true,
6073 "action_data" : [],
6074 "action_entry_const" : true
6075 }
6076 },
6077 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006078 "name" : "tbl_egress_next_pop_mpls_if_present",
Daniele Moro5a2de712019-09-24 14:34:07 -07006079 "id" : 36,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006080 "source_info" : {
6081 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006082 "line" : 337,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006083 "column" : 36,
6084 "source_fragment" : "pop_mpls_if_present()"
6085 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006086 "key" : [],
6087 "match_type" : "exact",
6088 "type" : "simple",
6089 "max_size" : 1024,
6090 "with_counters" : false,
6091 "support_timeout" : false,
6092 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006093 "action_ids" : [53],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006094 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
6095 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6096 "next_tables" : {
6097 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
6098 },
6099 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006100 "action_id" : 53,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006101 "action_const" : true,
6102 "action_data" : [],
6103 "action_entry_const" : true
6104 }
6105 },
6106 {
6107 "name" : "tbl_egress_next_set_mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07006108 "id" : 37,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006109 "source_info" : {
6110 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006111 "line" : 339,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006112 "column" : 12,
6113 "source_fragment" : "set_mpls()"
6114 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006115 "key" : [],
6116 "match_type" : "exact",
6117 "type" : "simple",
6118 "max_size" : 1024,
6119 "with_counters" : false,
6120 "support_timeout" : false,
6121 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006122 "action_ids" : [54],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006123 "actions" : ["FabricEgress.egress_next.set_mpls"],
6124 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6125 "next_tables" : {
6126 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
6127 },
6128 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006129 "action_id" : 54,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006130 "action_const" : true,
6131 "action_data" : [],
6132 "action_entry_const" : true
6133 }
6134 },
6135 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006136 "name" : "FabricEgress.egress_next.egress_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07006137 "id" : 38,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006138 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006139 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006140 "line" : 316,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006141 "column" : 10,
6142 "source_fragment" : "egress_vlan"
6143 },
6144 "key" : [
6145 {
6146 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006147 "name" : "vlan_id",
Daniele Moro5a2de712019-09-24 14:34:07 -07006148 "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006149 "mask" : null
6150 },
6151 {
6152 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006153 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006154 "target" : ["standard_metadata", "egress_port"],
6155 "mask" : null
6156 }
6157 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006158 "match_type" : "exact",
6159 "type" : "simple",
6160 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08006161 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006162 "support_timeout" : false,
6163 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006164 "action_ids" : [56, 51],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006165 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006166 "base_default_next" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006167 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006168 "__HIT__" : "tbl_act_22",
6169 "__MISS__" : "tbl_act_23"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006170 },
6171 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006172 "action_id" : 51,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006173 "action_const" : true,
6174 "action_data" : [],
6175 "action_entry_const" : true
6176 }
6177 },
6178 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006179 "name" : "tbl_act_22",
6180 "id" : 39,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006181 "key" : [],
6182 "match_type" : "exact",
6183 "type" : "simple",
6184 "max_size" : 1024,
6185 "with_counters" : false,
6186 "support_timeout" : false,
6187 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006188 "action_ids" : [60],
6189 "actions" : ["act_22"],
6190 "base_default_next" : "node_67",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006191 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006192 "act_22" : "node_67"
Daniele Moro7c3a0022019-07-12 13:38:34 -07006193 },
6194 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006195 "action_id" : 60,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006196 "action_const" : true,
6197 "action_data" : [],
6198 "action_entry_const" : true
6199 }
6200 },
6201 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006202 "name" : "tbl_act_23",
6203 "id" : 40,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006204 "key" : [],
6205 "match_type" : "exact",
6206 "type" : "simple",
6207 "max_size" : 1024,
6208 "with_counters" : false,
6209 "support_timeout" : false,
6210 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006211 "action_ids" : [61],
6212 "actions" : ["act_23"],
6213 "base_default_next" : "node_67",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006214 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006215 "act_23" : "node_67"
Daniele Moro7c3a0022019-07-12 13:38:34 -07006216 },
6217 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006218 "action_id" : 61,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006219 "action_const" : true,
6220 "action_data" : [],
6221 "action_entry_const" : true
6222 }
6223 },
6224 {
6225 "name" : "tbl_egress_next_push_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07006226 "id" : 41,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006227 "source_info" : {
6228 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006229 "line" : 356,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006230 "column" : 20,
6231 "source_fragment" : "push_vlan()"
6232 },
6233 "key" : [],
6234 "match_type" : "exact",
6235 "type" : "simple",
6236 "max_size" : 1024,
6237 "with_counters" : false,
6238 "support_timeout" : false,
6239 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006240 "action_ids" : [55],
Daniele Moro7c3a0022019-07-12 13:38:34 -07006241 "actions" : ["FabricEgress.egress_next.push_vlan"],
Daniele Moro5a2de712019-09-24 14:34:07 -07006242 "base_default_next" : "node_70",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006243 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006244 "FabricEgress.egress_next.push_vlan" : "node_70"
Daniele Moro7c3a0022019-07-12 13:38:34 -07006245 },
6246 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006247 "action_id" : 55,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006248 "action_const" : true,
6249 "action_data" : [],
6250 "action_entry_const" : true
6251 }
6252 },
6253 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006254 "name" : "tbl_act_24",
6255 "id" : 42,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006256 "source_info" : {
6257 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006258 "line" : 365,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006259 "column" : 25,
6260 "source_fragment" : "="
6261 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006262 "key" : [],
6263 "match_type" : "exact",
6264 "type" : "simple",
6265 "max_size" : 1024,
6266 "with_counters" : false,
6267 "support_timeout" : false,
6268 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006269 "action_ids" : [63],
6270 "actions" : ["act_25"],
6271 "base_default_next" : "node_72",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006272 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006273 "act_25" : "node_72"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006274 },
6275 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006276 "action_id" : 63,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006277 "action_const" : true,
6278 "action_data" : [],
6279 "action_entry_const" : true
6280 }
6281 },
6282 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006283 "name" : "tbl_act_25",
6284 "id" : 43,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006285 "source_info" : {
6286 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006287 "line" : 366,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006288 "column" : 35,
6289 "source_fragment" : "mark_to_drop(standard_metadata)"
6290 },
6291 "key" : [],
6292 "match_type" : "exact",
6293 "type" : "simple",
6294 "max_size" : 1024,
6295 "with_counters" : false,
6296 "support_timeout" : false,
6297 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006298 "action_ids" : [62],
6299 "actions" : ["act_24"],
6300 "base_default_next" : "node_78",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006301 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006302 "act_24" : "node_78"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006303 },
6304 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006305 "action_id" : 62,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006306 "action_const" : true,
6307 "action_data" : [],
6308 "action_entry_const" : true
6309 }
6310 },
6311 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006312 "name" : "tbl_act_26",
6313 "id" : 44,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006314 "source_info" : {
6315 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006316 "line" : 369,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006317 "column" : 29,
6318 "source_fragment" : "="
6319 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006320 "key" : [],
6321 "match_type" : "exact",
6322 "type" : "simple",
6323 "max_size" : 1024,
6324 "with_counters" : false,
6325 "support_timeout" : false,
6326 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006327 "action_ids" : [65],
6328 "actions" : ["act_27"],
6329 "base_default_next" : "node_76",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006330 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006331 "act_27" : "node_76"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006332 },
6333 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006334 "action_id" : 65,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006335 "action_const" : true,
6336 "action_data" : [],
6337 "action_entry_const" : true
6338 }
6339 },
6340 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006341 "name" : "tbl_act_27",
6342 "id" : 45,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006343 "source_info" : {
6344 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006345 "line" : 370,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006346 "column" : 39,
6347 "source_fragment" : "mark_to_drop(standard_metadata)"
6348 },
6349 "key" : [],
6350 "match_type" : "exact",
6351 "type" : "simple",
6352 "max_size" : 1024,
6353 "with_counters" : false,
6354 "support_timeout" : false,
6355 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006356 "action_ids" : [64],
6357 "actions" : ["act_26"],
6358 "base_default_next" : "node_78",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006359 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006360 "act_26" : "node_78"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006361 },
6362 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006363 "action_id" : 64,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006364 "action_const" : true,
6365 "action_data" : [],
6366 "action_entry_const" : true
6367 }
6368 },
6369 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006370 "name" : "tbl_spgw_egress_gtpu_encap",
Daniele Moro5a2de712019-09-24 14:34:07 -07006371 "id" : 46,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006372 "source_info" : {
6373 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006374 "line" : 228,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006375 "column" : 12,
6376 "source_fragment" : "gtpu_encap()"
6377 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006378 "key" : [],
6379 "match_type" : "exact",
6380 "type" : "simple",
6381 "max_size" : 1024,
6382 "with_counters" : false,
6383 "support_timeout" : false,
6384 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07006385 "action_ids" : [52],
Yi Tseng27b9bc02018-04-12 14:52:40 +08006386 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006387 "base_default_next" : null,
6388 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006389 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006390 },
6391 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07006392 "action_id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006393 "action_const" : true,
6394 "action_data" : [],
6395 "action_entry_const" : true
6396 }
6397 }
6398 ],
6399 "action_profiles" : [],
6400 "conditionals" : [
6401 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006402 "name" : "node_54",
6403 "id" : 17,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006404 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006405 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006406 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006407 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006408 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006409 },
6410 "expression" : {
6411 "type" : "expression",
6412 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006413 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006414 "left" : {
6415 "type" : "expression",
6416 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006417 "op" : "d2b",
6418 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006419 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006420 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006421 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out11"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02006422 }
6423 }
6424 },
6425 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006426 "type" : "bool",
6427 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02006428 }
6429 }
6430 },
Daniele Moro5a2de712019-09-24 14:34:07 -07006431 "true_next" : "tbl_act_19",
6432 "false_next" : "node_56"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006433 },
6434 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006435 "name" : "node_56",
6436 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006437 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006438 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006439 "line" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006440 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08006441 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006442 },
6443 "expression" : {
6444 "type" : "expression",
6445 "value" : {
6446 "op" : "==",
6447 "left" : {
6448 "type" : "field",
6449 "value" : ["standard_metadata", "egress_port"]
6450 },
6451 "right" : {
6452 "type" : "hexstr",
6453 "value" : "0x00ff"
6454 }
6455 }
6456 },
Daniele Moro5a2de712019-09-24 14:34:07 -07006457 "true_next" : "tbl_act_20",
6458 "false_next" : "node_58"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006459 },
6460 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006461 "name" : "node_58",
6462 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006463 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006464 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006465 "line" : 331,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006466 "column" : 12,
6467 "source_fragment" : "fabric_metadata.is_multicast == true ..."
6468 },
6469 "expression" : {
6470 "type" : "expression",
6471 "value" : {
6472 "op" : "and",
6473 "left" : {
6474 "type" : "expression",
6475 "value" : {
6476 "op" : "==",
6477 "left" : {
6478 "type" : "expression",
6479 "value" : {
6480 "op" : "d2b",
6481 "left" : null,
6482 "right" : {
6483 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006484 "value" : ["scalars", "fabric_metadata_t._is_multicast10"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006485 }
6486 }
6487 },
6488 "right" : {
6489 "type" : "bool",
6490 "value" : true
6491 }
6492 }
6493 },
6494 "right" : {
6495 "type" : "expression",
6496 "value" : {
6497 "op" : "==",
6498 "left" : {
6499 "type" : "field",
6500 "value" : ["standard_metadata", "ingress_port"]
6501 },
6502 "right" : {
6503 "type" : "field",
6504 "value" : ["standard_metadata", "egress_port"]
6505 }
6506 }
6507 }
6508 }
6509 },
Daniele Moro5a2de712019-09-24 14:34:07 -07006510 "true_next" : "tbl_act_21",
6511 "false_next" : "node_60"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006512 },
6513 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006514 "name" : "node_60",
6515 "id" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006516 "source_info" : {
6517 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006518 "line" : 336,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006519 "column" : 12,
6520 "source_fragment" : "fabric_metadata.mpls_label == 0"
6521 },
6522 "expression" : {
6523 "type" : "expression",
6524 "value" : {
6525 "op" : "==",
6526 "left" : {
6527 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006528 "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006529 },
6530 "right" : {
6531 "type" : "hexstr",
6532 "value" : "0x000000"
6533 }
6534 }
6535 },
Daniele Moro5a2de712019-09-24 14:34:07 -07006536 "true_next" : "node_61",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006537 "false_next" : "tbl_egress_next_set_mpls"
6538 },
6539 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006540 "name" : "node_61",
6541 "id" : 21,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006542 "source_info" : {
6543 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006544 "line" : 337,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006545 "column" : 16,
6546 "source_fragment" : "hdr.mpls.isValid()"
6547 },
6548 "expression" : {
6549 "type" : "expression",
6550 "value" : {
6551 "op" : "d2b",
6552 "left" : null,
6553 "right" : {
6554 "type" : "field",
6555 "value" : ["mpls", "$valid$"]
6556 }
6557 }
6558 },
6559 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006560 "false_next" : "FabricEgress.egress_next.egress_vlan"
6561 },
6562 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006563 "name" : "node_67",
6564 "id" : 22,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006565 "source_info" : {
6566 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006567 "line" : 353,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006568 "column" : 16,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006569 "source_fragment" : "!egress_vlan.apply().hit"
6570 },
6571 "expression" : {
6572 "type" : "expression",
6573 "value" : {
6574 "op" : "not",
6575 "left" : null,
6576 "right" : {
6577 "type" : "expression",
6578 "value" : {
6579 "op" : "d2b",
6580 "left" : null,
6581 "right" : {
6582 "type" : "field",
6583 "value" : ["scalars", "egress_next_tmp"]
6584 }
6585 }
6586 }
6587 }
6588 },
Daniele Moro5a2de712019-09-24 14:34:07 -07006589 "true_next" : "node_68",
6590 "false_next" : "node_70"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006591 },
6592 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006593 "name" : "node_68",
6594 "id" : 23,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006595 "source_info" : {
6596 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006597 "line" : 355,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006598 "column" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006599 "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
6600 },
6601 "expression" : {
6602 "type" : "expression",
6603 "value" : {
6604 "op" : "!=",
6605 "left" : {
6606 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006607 "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006608 },
6609 "right" : {
6610 "type" : "hexstr",
6611 "value" : "0x0ffe"
6612 }
6613 }
6614 },
6615 "true_next" : "tbl_egress_next_push_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07006616 "false_next" : "node_70"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006617 },
6618 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006619 "name" : "node_70",
6620 "id" : 24,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006621 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006622 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006623 "line" : 364,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006624 "column" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006625 "source_fragment" : "hdr.mpls.isValid()"
6626 },
6627 "expression" : {
6628 "type" : "expression",
6629 "value" : {
6630 "op" : "d2b",
6631 "left" : null,
6632 "right" : {
6633 "type" : "field",
6634 "value" : ["mpls", "$valid$"]
6635 }
6636 }
6637 },
Daniele Moro5a2de712019-09-24 14:34:07 -07006638 "true_next" : "tbl_act_24",
6639 "false_next" : "node_74"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006640 },
6641 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006642 "name" : "node_72",
6643 "id" : 25,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006644 "source_info" : {
6645 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006646 "line" : 366,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006647 "column" : 16,
6648 "source_fragment" : "hdr.mpls.ttl == 0"
6649 },
6650 "expression" : {
6651 "type" : "expression",
6652 "value" : {
6653 "op" : "==",
6654 "left" : {
6655 "type" : "field",
6656 "value" : ["mpls", "ttl"]
6657 },
6658 "right" : {
6659 "type" : "hexstr",
6660 "value" : "0x00"
6661 }
6662 }
6663 },
Daniele Moro5a2de712019-09-24 14:34:07 -07006664 "true_next" : "tbl_act_25",
6665 "false_next" : "node_78"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006666 },
6667 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006668 "name" : "node_74",
6669 "id" : 26,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006670 "source_info" : {
6671 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006672 "line" : 368,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006673 "column" : 15,
6674 "source_fragment" : "hdr.ipv4.isValid()"
6675 },
6676 "expression" : {
6677 "type" : "expression",
6678 "value" : {
6679 "op" : "d2b",
6680 "left" : null,
6681 "right" : {
6682 "type" : "field",
6683 "value" : ["ipv4", "$valid$"]
6684 }
6685 }
6686 },
Daniele Moro5a2de712019-09-24 14:34:07 -07006687 "true_next" : "tbl_act_26",
6688 "false_next" : "node_78"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006689 },
6690 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006691 "name" : "node_76",
6692 "id" : 27,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006693 "source_info" : {
6694 "filename" : "include/control/next.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006695 "line" : 370,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006696 "column" : 20,
6697 "source_fragment" : "hdr.ipv4.ttl == 0"
6698 },
6699 "expression" : {
6700 "type" : "expression",
6701 "value" : {
6702 "op" : "==",
6703 "left" : {
6704 "type" : "field",
6705 "value" : ["ipv4", "ttl"]
6706 },
6707 "right" : {
6708 "type" : "hexstr",
6709 "value" : "0x00"
6710 }
6711 }
6712 },
Daniele Moro5a2de712019-09-24 14:34:07 -07006713 "true_next" : "tbl_act_27",
6714 "false_next" : "node_78"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006715 },
6716 {
Daniele Moro5a2de712019-09-24 14:34:07 -07006717 "name" : "node_78",
6718 "id" : 28,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006719 "source_info" : {
6720 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006721 "line" : 227,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006722 "column" : 12,
6723 "source_fragment" : "fabric_meta.spgw.direction == SPGW_DIR_DOWNLINK"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006724 },
6725 "expression" : {
6726 "type" : "expression",
6727 "value" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006728 "op" : "==",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006729 "left" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006730 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07006731 "value" : ["scalars", "fabric_metadata_t._spgw_direction15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006732 },
6733 "right" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006734 "type" : "hexstr",
6735 "value" : "0x02"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006736 }
6737 }
6738 },
6739 "false_next" : null,
6740 "true_next" : "tbl_spgw_egress_gtpu_encap"
6741 }
6742 ]
6743 }
6744 ],
6745 "checksums" : [
6746 {
6747 "name" : "cksum",
6748 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006749 "source_info" : {
6750 "filename" : "include/checksum.p4",
6751 "line" : 28,
6752 "column" : 8,
6753 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
6754 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006755 "target" : ["ipv4", "hdr_checksum"],
6756 "type" : "generic",
6757 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006758 "verify" : false,
6759 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006760 "if_cond" : {
6761 "type" : "expression",
6762 "value" : {
6763 "op" : "d2b",
6764 "left" : null,
6765 "right" : {
6766 "type" : "field",
6767 "value" : ["ipv4", "$valid$"]
6768 }
6769 }
6770 }
6771 },
6772 {
6773 "name" : "cksum_0",
6774 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006775 "source_info" : {
6776 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006777 "line" : 243,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006778 "column" : 8,
6779 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
6780 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006781 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006782 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006783 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006784 "verify" : false,
6785 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006786 "if_cond" : {
6787 "type" : "expression",
6788 "value" : {
6789 "op" : "d2b",
6790 "left" : null,
6791 "right" : {
6792 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006793 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006794 }
6795 }
6796 }
6797 },
6798 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006799 "name" : "cksum_1",
6800 "id" : 2,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006801 "source_info" : {
6802 "filename" : "include/checksum.p4",
6803 "line" : 57,
6804 "column" : 8,
6805 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
6806 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006807 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006808 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006809 "calculation" : "calc_1",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006810 "verify" : true,
6811 "update" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006812 "if_cond" : {
6813 "type" : "expression",
6814 "value" : {
6815 "op" : "d2b",
6816 "left" : null,
6817 "right" : {
6818 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006819 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006820 }
6821 }
6822 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006823 }
6824 ],
6825 "force_arith" : [],
6826 "extern_instances" : [],
6827 "field_aliases" : [
6828 [
6829 "queueing_metadata.enq_timestamp",
6830 ["standard_metadata", "enq_timestamp"]
6831 ],
6832 [
6833 "queueing_metadata.enq_qdepth",
6834 ["standard_metadata", "enq_qdepth"]
6835 ],
6836 [
6837 "queueing_metadata.deq_timedelta",
6838 ["standard_metadata", "deq_timedelta"]
6839 ],
6840 [
6841 "queueing_metadata.deq_qdepth",
6842 ["standard_metadata", "deq_qdepth"]
6843 ],
6844 [
6845 "intrinsic_metadata.ingress_global_timestamp",
6846 ["standard_metadata", "ingress_global_timestamp"]
6847 ],
6848 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08006849 "intrinsic_metadata.egress_global_timestamp",
6850 ["standard_metadata", "egress_global_timestamp"]
6851 ],
6852 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006853 "intrinsic_metadata.lf_field_list",
6854 ["standard_metadata", "lf_field_list"]
6855 ],
6856 [
6857 "intrinsic_metadata.mcast_grp",
6858 ["standard_metadata", "mcast_grp"]
6859 ],
6860 [
6861 "intrinsic_metadata.resubmit_flag",
6862 ["standard_metadata", "resubmit_flag"]
6863 ],
6864 [
6865 "intrinsic_metadata.egress_rid",
6866 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08006867 ],
6868 [
6869 "intrinsic_metadata.recirculate_flag",
6870 ["standard_metadata", "recirculate_flag"]
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006871 ],
6872 [
6873 "intrinsic_metadata.priority",
6874 ["standard_metadata", "priority"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006875 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006876 ],
6877 "program" : "fabric.p4",
6878 "__meta__" : {
6879 "version" : [2, 18],
6880 "compiler" : "https://github.com/p4lang/p4c"
6881 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08006882}