blob: 9221d3092c166d9e549526cbe50e74feb7b2cddd [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" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007 ["tmp_0", 4, false],
8 ["tmp", 8, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08009 ["tmp_1", 32, false],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -070010 ["tmp_2", 32, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080011 ["spgw_ingress_tmp", 1, false],
12 ["spgw_ingress_tmp_0", 1, false],
13 ["spgw_normalizer_hasReturned", 1, false],
14 ["spgw_ingress_hasReturned", 1, false],
15 ["egress_next_tmp", 1, false],
Carmelo Casconea4dc3c12019-02-12 17:30:00 -080016 ["fabric_metadata_t._eth_type0", 16, false],
17 ["fabric_metadata_t._ip_eth_type1", 16, false],
18 ["fabric_metadata_t._vlan_id2", 12, false],
19 ["fabric_metadata_t._vlan_pri3", 3, false],
20 ["fabric_metadata_t._vlan_cfi4", 1, false],
21 ["fabric_metadata_t._mpls_label5", 20, false],
22 ["fabric_metadata_t._mpls_ttl6", 8, false],
23 ["fabric_metadata_t._skip_forwarding7", 1, false],
24 ["fabric_metadata_t._skip_next8", 1, false],
25 ["fabric_metadata_t._fwd_type9", 3, false],
26 ["fabric_metadata_t._next_id10", 32, false],
27 ["fabric_metadata_t._is_multicast11", 1, false],
28 ["fabric_metadata_t._is_controller_packet_out12", 1, false],
Daniele Moro01ca2ab2019-06-25 11:48:48 -070029 ["fabric_metadata_t._ip_proto13", 8, false],
30 ["fabric_metadata_t._l4_sport14", 16, false],
31 ["fabric_metadata_t._l4_dport15", 16, false],
32 ["fabric_metadata_t._spgw_direction16", 2, false],
33 ["fabric_metadata_t._spgw_ipv4_len17", 16, false],
34 ["fabric_metadata_t._spgw_teid18", 32, false],
35 ["fabric_metadata_t._spgw_s1u_enb_addr19", 32, false],
36 ["fabric_metadata_t._spgw_s1u_sgw_addr20", 32, false],
37 ["_padding_0", 2, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080038 ]
39 },
40 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020041 "name" : "standard_metadata",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080042 "id" : 1,
43 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020044 ["ingress_port", 9, false],
45 ["egress_spec", 9, false],
46 ["egress_port", 9, false],
47 ["clone_spec", 32, false],
48 ["instance_type", 32, false],
49 ["drop", 1, false],
50 ["recirculate_port", 16, false],
51 ["packet_length", 32, false],
52 ["enq_timestamp", 32, false],
53 ["enq_qdepth", 19, false],
54 ["deq_timedelta", 32, false],
55 ["deq_qdepth", 19, false],
56 ["ingress_global_timestamp", 48, false],
57 ["egress_global_timestamp", 48, false],
58 ["lf_field_list", 32, false],
59 ["mcast_grp", 16, false],
60 ["resubmit_flag", 32, false],
61 ["egress_rid", 16, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020062 ["recirculate_flag", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070063 ["checksum_error", 1, false],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -070064 ["parser_error", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070065 ["priority", 3, false],
66 ["_padding", 2, false]
Carmelo Cascone6af4e172018-06-15 16:01:30 +020067 ]
68 },
69 {
70 "name" : "ethernet_t",
71 "id" : 2,
72 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080073 ["dst_addr", 48, false],
74 ["src_addr", 48, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080075 ["eth_type", 16, 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" : [
82 ["pri", 3, false],
83 ["cfi", 1, false],
84 ["vlan_id", 12, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080085 ["eth_type", 16, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080086 ]
87 },
88 {
89 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020090 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080091 "fields" : [
92 ["label", 20, false],
93 ["tc", 3, false],
94 ["bos", 1, false],
95 ["ttl", 8, false]
96 ]
97 },
98 {
99 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200100 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800101 "fields" : [
102 ["version", 4, false],
103 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900104 ["dscp", 6, false],
105 ["ecn", 2, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800106 ["total_len", 16, false],
107 ["identification", 16, false],
108 ["flags", 3, false],
109 ["frag_offset", 13, false],
110 ["ttl", 8, false],
111 ["protocol", 8, false],
112 ["hdr_checksum", 16, false],
113 ["src_addr", 32, false],
114 ["dst_addr", 32, false]
115 ]
116 },
117 {
118 "name" : "udp_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200119 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800120 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800121 ["sport", 16, false],
122 ["dport", 16, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800123 ["len", 16, false],
124 ["checksum", 16, false]
125 ]
126 },
127 {
128 "name" : "gtpu_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200129 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800130 "fields" : [
131 ["version", 3, false],
132 ["pt", 1, false],
133 ["spare", 1, false],
134 ["ex_flag", 1, false],
135 ["seq_flag", 1, false],
136 ["npdu_flag", 1, false],
137 ["msgtype", 8, false],
138 ["msglen", 16, false],
139 ["teid", 32, false]
140 ]
141 },
142 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800143 "name" : "tcp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800144 "id" : 8,
145 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800146 ["sport", 16, false],
147 ["dport", 16, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800148 ["seq_no", 32, false],
149 ["ack_no", 32, false],
150 ["data_offset", 4, false],
151 ["res", 3, false],
152 ["ecn", 3, false],
153 ["ctrl", 6, false],
154 ["window", 16, false],
155 ["checksum", 16, false],
156 ["urgent_ptr", 16, false]
157 ]
158 },
159 {
160 "name" : "icmp_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800161 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800162 "fields" : [
163 ["icmp_type", 8, false],
164 ["icmp_code", 8, false],
165 ["checksum", 16, false],
166 ["identifier", 16, false],
167 ["sequence_number", 16, false],
168 ["timestamp", 64, false]
169 ]
170 },
171 {
172 "name" : "packet_out_header_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800173 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800174 "fields" : [
175 ["egress_port", 9, false],
176 ["_pad", 7, false]
177 ]
178 },
179 {
180 "name" : "packet_in_header_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800181 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800182 "fields" : [
183 ["ingress_port", 9, false],
184 ["_pad", 7, false]
185 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800186 }
187 ],
188 "headers" : [
189 {
190 "name" : "scalars",
191 "id" : 0,
192 "header_type" : "scalars_0",
193 "metadata" : true,
194 "pi_omit" : true
195 },
196 {
197 "name" : "standard_metadata",
198 "id" : 1,
199 "header_type" : "standard_metadata",
200 "metadata" : true,
201 "pi_omit" : true
202 },
203 {
204 "name" : "ethernet",
205 "id" : 2,
206 "header_type" : "ethernet_t",
207 "metadata" : false,
208 "pi_omit" : true
209 },
210 {
211 "name" : "vlan_tag",
212 "id" : 3,
213 "header_type" : "vlan_tag_t",
214 "metadata" : false,
215 "pi_omit" : true
216 },
217 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800218 "name" : "inner_vlan_tag",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800219 "id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800220 "header_type" : "vlan_tag_t",
221 "metadata" : false,
222 "pi_omit" : true
223 },
224 {
225 "name" : "mpls",
226 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800227 "header_type" : "mpls_t",
228 "metadata" : false,
229 "pi_omit" : true
230 },
231 {
232 "name" : "gtpu_ipv4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800233 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800234 "header_type" : "ipv4_t",
235 "metadata" : false,
236 "pi_omit" : true
237 },
238 {
239 "name" : "gtpu_udp",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800240 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800241 "header_type" : "udp_t",
242 "metadata" : false,
243 "pi_omit" : true
244 },
245 {
246 "name" : "gtpu",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800247 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800248 "header_type" : "gtpu_t",
249 "metadata" : false,
250 "pi_omit" : true
251 },
252 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700253 "name" : "inner_ipv4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800254 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800255 "header_type" : "ipv4_t",
256 "metadata" : false,
257 "pi_omit" : true
258 },
259 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700260 "name" : "inner_udp",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800261 "id" : 10,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700262 "header_type" : "udp_t",
263 "metadata" : false,
264 "pi_omit" : true
265 },
266 {
267 "name" : "ipv4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700268 "id" : 11,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800269 "header_type" : "ipv4_t",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800270 "metadata" : false,
271 "pi_omit" : true
272 },
273 {
274 "name" : "tcp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700275 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800276 "header_type" : "tcp_t",
277 "metadata" : false,
278 "pi_omit" : true
279 },
280 {
281 "name" : "udp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700282 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800283 "header_type" : "udp_t",
284 "metadata" : false,
285 "pi_omit" : true
286 },
287 {
288 "name" : "icmp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700289 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800290 "header_type" : "icmp_t",
291 "metadata" : false,
292 "pi_omit" : true
293 },
294 {
295 "name" : "packet_out",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700296 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800297 "header_type" : "packet_out_header_t",
298 "metadata" : false,
299 "pi_omit" : true
300 },
301 {
302 "name" : "packet_in",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700303 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800304 "header_type" : "packet_in_header_t",
305 "metadata" : false,
306 "pi_omit" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800307 }
308 ],
309 "header_stacks" : [],
310 "header_union_types" : [],
311 "header_unions" : [],
312 "header_union_stacks" : [],
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700313 "field_lists" : [
314 {
315 "id" : 1,
316 "name" : "fl",
317 "source_info" : {
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700318 "filename" : "include/control/acl.p4",
319 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700320 "column" : 40,
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700321 "source_fragment" : "{standard_metadata.ingress_port}"
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700322 },
323 "elements" : [
324 {
325 "type" : "field",
326 "value" : ["standard_metadata", "ingress_port"]
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700327 }
328 ]
329 }
330 ],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700331 "errors" : [
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700332 ["NoError", 1],
333 ["PacketTooShort", 2],
334 ["NoMatch", 3],
335 ["StackOutOfBounds", 4],
336 ["HeaderTooShort", 5],
337 ["ParserTimeout", 6],
338 ["ParserInvalidArgument", 7]
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700339 ],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800340 "enums" : [],
341 "parsers" : [
342 {
343 "name" : "parser",
344 "id" : 0,
345 "init_state" : "start",
346 "parse_states" : [
347 {
348 "name" : "start",
349 "id" : 0,
350 "parser_ops" : [],
351 "transitions" : [
352 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800353 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800354 "value" : "0x00ff",
355 "mask" : null,
356 "next_state" : "parse_packet_out"
357 },
358 {
359 "value" : "default",
360 "mask" : null,
361 "next_state" : "parse_ethernet"
362 }
363 ],
364 "transition_key" : [
365 {
366 "type" : "field",
367 "value" : ["standard_metadata", "ingress_port"]
368 }
369 ]
370 },
371 {
372 "name" : "parse_packet_out",
373 "id" : 1,
374 "parser_ops" : [
375 {
376 "parameters" : [
377 {
378 "type" : "regular",
379 "value" : "packet_out"
380 }
381 ],
382 "op" : "extract"
383 }
384 ],
385 "transitions" : [
386 {
387 "value" : "default",
388 "mask" : null,
389 "next_state" : "parse_ethernet"
390 }
391 ],
392 "transition_key" : []
393 },
394 {
395 "name" : "parse_ethernet",
396 "id" : 2,
397 "parser_ops" : [
398 {
399 "parameters" : [
400 {
401 "type" : "regular",
402 "value" : "ethernet"
403 }
404 ],
405 "op" : "extract"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800406 },
407 {
408 "parameters" : [
409 {
410 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800411 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800412 },
413 {
414 "type" : "field",
415 "value" : ["ethernet", "eth_type"]
416 }
417 ],
418 "op" : "set"
419 },
420 {
421 "parameters" : [
422 {
423 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800424 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800425 },
426 {
427 "type" : "hexstr",
428 "value" : "0x0ffe"
429 }
430 ],
431 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800432 }
433 ],
434 "transitions" : [
435 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800436 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800437 "value" : "0x8100",
438 "mask" : null,
439 "next_state" : "parse_vlan_tag"
440 },
441 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800442 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800443 "value" : "0x8847",
444 "mask" : null,
445 "next_state" : "parse_mpls"
446 },
447 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800448 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800449 "value" : "0x0800",
450 "mask" : null,
451 "next_state" : "parse_ipv4"
452 },
453 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800454 "value" : "default",
455 "mask" : null,
456 "next_state" : null
457 }
458 ],
459 "transition_key" : [
460 {
461 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800462 "value" : ["ethernet", "eth_type"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800463 }
464 ]
465 },
466 {
467 "name" : "parse_vlan_tag",
468 "id" : 3,
469 "parser_ops" : [
470 {
471 "parameters" : [
472 {
473 "type" : "regular",
474 "value" : "vlan_tag"
475 }
476 ],
477 "op" : "extract"
478 }
479 ],
480 "transitions" : [
481 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800482 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800483 "value" : "0x0800",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800484 "mask" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800485 "next_state" : "parse_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800486 },
487 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800488 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800489 "value" : "0x8847",
490 "mask" : null,
491 "next_state" : "parse_mpls"
492 },
493 {
494 "type" : "hexstr",
495 "value" : "0x8100",
496 "mask" : null,
497 "next_state" : "parse_inner_vlan_tag"
498 },
499 {
500 "value" : "default",
501 "mask" : null,
502 "next_state" : null
503 }
504 ],
505 "transition_key" : [
506 {
507 "type" : "field",
508 "value" : ["vlan_tag", "eth_type"]
509 }
510 ]
511 },
512 {
513 "name" : "parse_inner_vlan_tag",
514 "id" : 4,
515 "parser_ops" : [
516 {
517 "parameters" : [
518 {
519 "type" : "regular",
520 "value" : "inner_vlan_tag"
521 }
522 ],
523 "op" : "extract"
524 }
525 ],
526 "transitions" : [
527 {
528 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800529 "value" : "0x0800",
530 "mask" : null,
531 "next_state" : "parse_ipv4"
532 },
533 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800534 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800535 "value" : "0x8847",
536 "mask" : null,
537 "next_state" : "parse_mpls"
538 },
539 {
540 "value" : "default",
541 "mask" : null,
542 "next_state" : null
543 }
544 ],
545 "transition_key" : [
546 {
547 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800548 "value" : ["inner_vlan_tag", "eth_type"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800549 }
550 ]
551 },
552 {
553 "name" : "parse_mpls",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800554 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800555 "parser_ops" : [
556 {
557 "parameters" : [
558 {
559 "type" : "regular",
560 "value" : "mpls"
561 }
562 ],
563 "op" : "extract"
564 },
565 {
566 "parameters" : [
567 {
568 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800569 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800570 },
571 {
572 "type" : "field",
573 "value" : ["mpls", "label"]
574 }
575 ],
576 "op" : "set"
577 },
578 {
579 "parameters" : [
580 {
581 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800582 "value" : ["scalars", "fabric_metadata_t._mpls_ttl6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800583 },
584 {
585 "type" : "field",
586 "value" : ["mpls", "ttl"]
587 }
588 ],
589 "op" : "set"
590 },
591 {
592 "parameters" : [
593 {
594 "type" : "field",
595 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800596 },
597 {
598 "type" : "lookahead",
599 "value" : [0, 4]
600 }
601 ],
602 "op" : "set"
603 }
604 ],
605 "transitions" : [
606 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800607 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800608 "value" : "0x04",
609 "mask" : null,
610 "next_state" : "parse_ipv4"
611 },
612 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800613 "value" : "default",
614 "mask" : null,
615 "next_state" : "parse_ethernet"
616 }
617 ],
618 "transition_key" : [
619 {
620 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800621 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800622 }
623 ]
624 },
625 {
626 "name" : "parse_ipv4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800627 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800628 "parser_ops" : [
629 {
630 "parameters" : [
631 {
632 "type" : "regular",
633 "value" : "ipv4"
634 }
635 ],
636 "op" : "extract"
637 },
638 {
639 "parameters" : [
640 {
641 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700642 "value" : ["scalars", "fabric_metadata_t._ip_proto13"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800643 },
644 {
645 "type" : "field",
646 "value" : ["ipv4", "protocol"]
647 }
648 ],
649 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800650 },
651 {
652 "parameters" : [
653 {
654 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800655 "value" : ["scalars", "fabric_metadata_t._ip_eth_type1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800656 },
657 {
658 "type" : "hexstr",
659 "value" : "0x0800"
660 }
661 ],
662 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800663 }
664 ],
665 "transitions" : [
666 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800667 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800668 "value" : "0x06",
669 "mask" : null,
670 "next_state" : "parse_tcp"
671 },
672 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800673 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800674 "value" : "0x11",
675 "mask" : null,
676 "next_state" : "parse_udp"
677 },
678 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800679 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800680 "value" : "0x01",
681 "mask" : null,
682 "next_state" : "parse_icmp"
683 },
684 {
685 "value" : "default",
686 "mask" : null,
687 "next_state" : null
688 }
689 ],
690 "transition_key" : [
691 {
692 "type" : "field",
693 "value" : ["ipv4", "protocol"]
694 }
695 ]
696 },
697 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800698 "name" : "parse_tcp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200699 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800700 "parser_ops" : [
701 {
702 "parameters" : [
703 {
704 "type" : "regular",
705 "value" : "tcp"
706 }
707 ],
708 "op" : "extract"
709 },
710 {
711 "parameters" : [
712 {
713 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700714 "value" : ["scalars", "fabric_metadata_t._l4_sport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800715 },
716 {
717 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800718 "value" : ["tcp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800719 }
720 ],
721 "op" : "set"
722 },
723 {
724 "parameters" : [
725 {
726 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700727 "value" : ["scalars", "fabric_metadata_t._l4_dport15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800728 },
729 {
730 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800731 "value" : ["tcp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800732 }
733 ],
734 "op" : "set"
735 }
736 ],
737 "transitions" : [
738 {
739 "value" : "default",
740 "mask" : null,
741 "next_state" : null
742 }
743 ],
744 "transition_key" : []
745 },
746 {
747 "name" : "parse_udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200748 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800749 "parser_ops" : [
750 {
751 "parameters" : [
752 {
753 "type" : "regular",
754 "value" : "udp"
755 }
756 ],
757 "op" : "extract"
758 },
759 {
760 "parameters" : [
761 {
762 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700763 "value" : ["scalars", "fabric_metadata_t._l4_sport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800764 },
765 {
766 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800767 "value" : ["udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800768 }
769 ],
770 "op" : "set"
771 },
772 {
773 "parameters" : [
774 {
775 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700776 "value" : ["scalars", "fabric_metadata_t._l4_dport15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800777 },
778 {
779 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800780 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800781 }
782 ],
783 "op" : "set"
784 }
785 ],
786 "transitions" : [
787 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800788 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800789 "value" : "0x0868",
790 "mask" : null,
791 "next_state" : "parse_gtpu"
792 },
793 {
794 "value" : "default",
795 "mask" : null,
796 "next_state" : null
797 }
798 ],
799 "transition_key" : [
800 {
801 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800802 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800803 }
804 ]
805 },
806 {
807 "name" : "parse_icmp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200808 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800809 "parser_ops" : [
810 {
811 "parameters" : [
812 {
813 "type" : "regular",
814 "value" : "icmp"
815 }
816 ],
817 "op" : "extract"
818 }
819 ],
820 "transitions" : [
821 {
822 "value" : "default",
823 "mask" : null,
824 "next_state" : null
825 }
826 ],
827 "transition_key" : []
828 },
829 {
830 "name" : "parse_gtpu",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200831 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800832 "parser_ops" : [
833 {
834 "parameters" : [
835 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700836 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800837 "value" : ["scalars", "tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700838 },
839 {
840 "type" : "expression",
841 "value" : {
842 "type" : "expression",
843 "value" : {
844 "op" : "&",
845 "left" : {
846 "type" : "expression",
847 "value" : {
848 "op" : "&",
849 "left" : {
850 "type" : "expression",
851 "value" : {
852 "op" : ">>",
853 "left" : {
854 "type" : "field",
855 "value" : ["ipv4", "dst_addr"]
856 },
857 "right" : {
858 "type" : "hexstr",
859 "value" : "0x18"
860 }
861 }
862 },
863 "right" : {
864 "type" : "hexstr",
865 "value" : "0xffffffff"
866 }
867 }
868 },
869 "right" : {
870 "type" : "hexstr",
871 "value" : "0xff"
872 }
873 }
874 }
875 }
876 ],
877 "op" : "set"
878 }
879 ],
880 "transitions" : [
881 {
882 "type" : "hexstr",
883 "value" : "0x8c",
884 "mask" : null,
885 "next_state" : "do_parse_gtpu"
886 },
887 {
888 "value" : "default",
889 "mask" : null,
890 "next_state" : null
891 }
892 ],
893 "transition_key" : [
894 {
895 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800896 "value" : ["scalars", "tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700897 }
898 ]
899 },
900 {
901 "name" : "do_parse_gtpu",
902 "id" : 11,
903 "parser_ops" : [
904 {
905 "parameters" : [
906 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800907 "type" : "regular",
908 "value" : "gtpu"
909 }
910 ],
911 "op" : "extract"
912 },
913 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800914 "parameters" : [
915 {
916 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700917 "value" : "inner_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800918 }
919 ],
920 "op" : "extract"
921 }
922 ],
923 "transitions" : [
924 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800925 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800926 "value" : "0x06",
927 "mask" : null,
928 "next_state" : "parse_tcp"
929 },
930 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800931 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800932 "value" : "0x11",
933 "mask" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700934 "next_state" : "parse_inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800935 },
936 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800937 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800938 "value" : "0x01",
939 "mask" : null,
940 "next_state" : "parse_icmp"
941 },
942 {
943 "value" : "default",
944 "mask" : null,
945 "next_state" : null
946 }
947 ],
948 "transition_key" : [
949 {
950 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700951 "value" : ["inner_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800952 }
953 ]
954 },
955 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700956 "name" : "parse_inner_udp",
957 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800958 "parser_ops" : [
959 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800960 "parameters" : [
961 {
962 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700963 "value" : "inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800964 }
965 ],
966 "op" : "extract"
967 },
968 {
969 "parameters" : [
970 {
971 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700972 "value" : ["scalars", "fabric_metadata_t._l4_sport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800973 },
974 {
975 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800976 "value" : ["inner_udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800977 }
978 ],
979 "op" : "set"
980 },
981 {
982 "parameters" : [
983 {
984 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700985 "value" : ["scalars", "fabric_metadata_t._l4_dport15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800986 },
987 {
988 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800989 "value" : ["inner_udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800990 }
991 ],
992 "op" : "set"
993 }
994 ],
995 "transitions" : [
996 {
997 "value" : "default",
998 "mask" : null,
999 "next_state" : null
1000 }
1001 ],
1002 "transition_key" : []
1003 }
1004 ]
1005 }
1006 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001007 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001008 "deparsers" : [
1009 {
1010 "name" : "deparser",
1011 "id" : 0,
1012 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001013 "filename" : "include/parser.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001014 "line" : 260,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001015 "column" : 8,
1016 "source_fragment" : "FabricDeparser"
1017 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001018 "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "mpls", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "tcp", "udp", "icmp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001019 }
1020 ],
1021 "meter_arrays" : [],
1022 "counter_arrays" : [
1023 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001024 "name" : "FabricIngress.spgw_ingress.ue_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001025 "id" : 0,
1026 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001027 "binding" : "FabricIngress.spgw_ingress.dl_sess_lookup",
1028 "source_info" : {
1029 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001030 "line" : 52,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001031 "column" : 50,
1032 "source_fragment" : "ue_counter"
1033 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001034 },
1035 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001036 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001037 "id" : 1,
1038 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001039 "binding" : "FabricIngress.filtering.ingress_port_vlan",
1040 "source_info" : {
1041 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001042 "line" : 31,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001043 "column" : 50,
1044 "source_fragment" : "ingress_port_vlan_counter"
1045 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001046 },
1047 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001048 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001049 "id" : 2,
1050 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001051 "binding" : "FabricIngress.filtering.fwd_classifier",
1052 "source_info" : {
1053 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001054 "line" : 80,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001055 "column" : 50,
1056 "source_fragment" : "fwd_classifier_counter"
1057 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001058 },
1059 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001060 "name" : "FabricIngress.forwarding.bridging_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001061 "id" : 3,
1062 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001063 "binding" : "FabricIngress.forwarding.bridging",
1064 "source_info" : {
1065 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001066 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001067 "column" : 50,
1068 "source_fragment" : "bridging_counter"
1069 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001070 },
1071 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001072 "name" : "FabricIngress.forwarding.mpls_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001073 "id" : 4,
1074 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001075 "binding" : "FabricIngress.forwarding.mpls",
1076 "source_info" : {
1077 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001078 "line" : 63,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001079 "column" : 50,
1080 "source_fragment" : "mpls_counter"
1081 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001082 },
1083 {
Charles Chan384aea22018-08-23 22:08:02 -07001084 "name" : "FabricIngress.forwarding.routing_v4_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001085 "id" : 5,
1086 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001087 "binding" : "FabricIngress.forwarding.routing_v4",
1088 "source_info" : {
1089 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001090 "line" : 87,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001091 "column" : 50,
1092 "source_fragment" : "routing_v4_counter"
1093 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001094 },
1095 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001096 "name" : "FabricIngress.acl.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001097 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001098 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001099 "binding" : "FabricIngress.acl.acl",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001100 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001101 "filename" : "include/control/acl.p4",
1102 "line" : 30,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001103 "column" : 50,
1104 "source_fragment" : "acl_counter"
1105 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001106 },
1107 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001108 "name" : "FabricIngress.next.next_vlan_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001109 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001110 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001111 "binding" : "FabricIngress.next.next_vlan",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001112 "source_info" : {
1113 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001114 "line" : 67,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001115 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001116 "source_fragment" : "next_vlan_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001117 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001118 },
1119 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001120 "name" : "FabricIngress.next.xconnect_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001121 "id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001122 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001123 "binding" : "FabricIngress.next.xconnect",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001124 "source_info" : {
1125 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001126 "line" : 92,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001127 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001128 "source_fragment" : "xconnect_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001129 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001130 },
1131 {
1132 "name" : "FabricIngress.next.hashed_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001133 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001134 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001135 "binding" : "FabricIngress.next.hashed",
1136 "source_info" : {
1137 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001138 "line" : 166,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001139 "column" : 50,
1140 "source_fragment" : "hashed_counter"
1141 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001142 },
1143 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001144 "name" : "FabricIngress.next.multicast_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001145 "id" : 10,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001146 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001147 "binding" : "FabricIngress.next.multicast",
1148 "source_info" : {
1149 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001150 "line" : 210,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001151 "column" : 50,
1152 "source_fragment" : "multicast_counter"
1153 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00001154 },
1155 {
1156 "name" : "FabricIngress.port_counters_control.egress_port_counter",
1157 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001158 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001159 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001160 "line" : 26,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001161 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001162 "source_fragment" : "egress_port_counter"
1163 },
1164 "size" : 511,
1165 "is_direct" : false
1166 },
1167 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001168 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001169 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001170 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001171 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001172 "line" : 27,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001173 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001174 "source_fragment" : "ingress_port_counter"
1175 },
1176 "size" : 511,
1177 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08001178 },
1179 {
1180 "name" : "FabricEgress.egress_next.egress_vlan_counter",
1181 "id" : 13,
1182 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001183 "binding" : "FabricEgress.egress_next.egress_vlan",
1184 "source_info" : {
1185 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001186 "line" : 283,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001187 "column" : 50,
1188 "source_fragment" : "egress_vlan_counter"
1189 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001190 }
1191 ],
1192 "register_arrays" : [],
1193 "calculations" : [
1194 {
1195 "name" : "calc",
1196 "id" : 0,
1197 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001198 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001199 "line" : 28,
1200 "column" : 8,
1201 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1202 },
1203 "algo" : "csum16",
1204 "input" : [
1205 {
1206 "type" : "field",
1207 "value" : ["ipv4", "version"]
1208 },
1209 {
1210 "type" : "field",
1211 "value" : ["ipv4", "ihl"]
1212 },
1213 {
1214 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001215 "value" : ["ipv4", "dscp"]
1216 },
1217 {
1218 "type" : "field",
1219 "value" : ["ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001220 },
1221 {
1222 "type" : "field",
1223 "value" : ["ipv4", "total_len"]
1224 },
1225 {
1226 "type" : "field",
1227 "value" : ["ipv4", "identification"]
1228 },
1229 {
1230 "type" : "field",
1231 "value" : ["ipv4", "flags"]
1232 },
1233 {
1234 "type" : "field",
1235 "value" : ["ipv4", "frag_offset"]
1236 },
1237 {
1238 "type" : "field",
1239 "value" : ["ipv4", "ttl"]
1240 },
1241 {
1242 "type" : "field",
1243 "value" : ["ipv4", "protocol"]
1244 },
1245 {
1246 "type" : "field",
1247 "value" : ["ipv4", "src_addr"]
1248 },
1249 {
1250 "type" : "field",
1251 "value" : ["ipv4", "dst_addr"]
1252 }
1253 ]
1254 },
1255 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001256 "name" : "calc_0",
1257 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001258 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001259 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001260 "line" : 243,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001261 "column" : 8,
1262 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1263 },
1264 "algo" : "csum16",
1265 "input" : [
1266 {
1267 "type" : "field",
1268 "value" : ["gtpu_ipv4", "version"]
1269 },
1270 {
1271 "type" : "field",
1272 "value" : ["gtpu_ipv4", "ihl"]
1273 },
1274 {
1275 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001276 "value" : ["gtpu_ipv4", "dscp"]
1277 },
1278 {
1279 "type" : "field",
1280 "value" : ["gtpu_ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001281 },
1282 {
1283 "type" : "field",
1284 "value" : ["gtpu_ipv4", "total_len"]
1285 },
1286 {
1287 "type" : "field",
1288 "value" : ["gtpu_ipv4", "identification"]
1289 },
1290 {
1291 "type" : "field",
1292 "value" : ["gtpu_ipv4", "flags"]
1293 },
1294 {
1295 "type" : "field",
1296 "value" : ["gtpu_ipv4", "frag_offset"]
1297 },
1298 {
1299 "type" : "field",
1300 "value" : ["gtpu_ipv4", "ttl"]
1301 },
1302 {
1303 "type" : "field",
1304 "value" : ["gtpu_ipv4", "protocol"]
1305 },
1306 {
1307 "type" : "field",
1308 "value" : ["gtpu_ipv4", "src_addr"]
1309 },
1310 {
1311 "type" : "field",
1312 "value" : ["gtpu_ipv4", "dst_addr"]
1313 }
1314 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001315 },
1316 {
1317 "name" : "calc_1",
1318 "id" : 2,
1319 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001320 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001321 "line" : 57,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001322 "column" : 8,
1323 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1324 },
1325 "algo" : "csum16",
1326 "input" : [
1327 {
1328 "type" : "field",
1329 "value" : ["ipv4", "version"]
1330 },
1331 {
1332 "type" : "field",
1333 "value" : ["ipv4", "ihl"]
1334 },
1335 {
1336 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001337 "value" : ["ipv4", "dscp"]
1338 },
1339 {
1340 "type" : "field",
1341 "value" : ["ipv4", "ecn"]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001342 },
1343 {
1344 "type" : "field",
1345 "value" : ["ipv4", "total_len"]
1346 },
1347 {
1348 "type" : "field",
1349 "value" : ["ipv4", "identification"]
1350 },
1351 {
1352 "type" : "field",
1353 "value" : ["ipv4", "flags"]
1354 },
1355 {
1356 "type" : "field",
1357 "value" : ["ipv4", "frag_offset"]
1358 },
1359 {
1360 "type" : "field",
1361 "value" : ["ipv4", "ttl"]
1362 },
1363 {
1364 "type" : "field",
1365 "value" : ["ipv4", "protocol"]
1366 },
1367 {
1368 "type" : "field",
1369 "value" : ["ipv4", "src_addr"]
1370 },
1371 {
1372 "type" : "field",
1373 "value" : ["ipv4", "dst_addr"]
1374 }
1375 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001376 }
1377 ],
1378 "learn_lists" : [],
1379 "actions" : [
1380 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001381 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001382 "id" : 0,
1383 "runtime_data" : [],
1384 "primitives" : []
1385 },
1386 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001387 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001388 "id" : 1,
1389 "runtime_data" : [],
1390 "primitives" : []
1391 },
1392 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001393 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001394 "id" : 2,
1395 "runtime_data" : [],
1396 "primitives" : []
1397 },
1398 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001399 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001400 "id" : 3,
1401 "runtime_data" : [],
1402 "primitives" : []
1403 },
1404 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001405 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001406 "id" : 4,
1407 "runtime_data" : [],
1408 "primitives" : []
1409 },
1410 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001411 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001412 "id" : 5,
1413 "runtime_data" : [],
1414 "primitives" : []
1415 },
1416 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001417 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001418 "id" : 6,
1419 "runtime_data" : [],
1420 "primitives" : []
1421 },
1422 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001423 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001424 "id" : 7,
1425 "runtime_data" : [],
1426 "primitives" : []
1427 },
1428 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001429 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001430 "id" : 8,
1431 "runtime_data" : [],
1432 "primitives" : []
1433 },
1434 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001435 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001436 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001437 "runtime_data" : [],
1438 "primitives" : [
1439 {
1440 "op" : "remove_header",
1441 "parameters" : [
1442 {
1443 "type" : "header",
1444 "value" : "gtpu_ipv4"
1445 }
1446 ],
1447 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001448 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001449 "line" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001450 "column" : 8,
1451 "source_fragment" : "gtpu_ipv4.setInvalid()"
1452 }
1453 },
1454 {
1455 "op" : "remove_header",
1456 "parameters" : [
1457 {
1458 "type" : "header",
1459 "value" : "gtpu_udp"
1460 }
1461 ],
1462 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001463 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001464 "line" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001465 "column" : 8,
1466 "source_fragment" : "gtpu_udp.setInvalid()"
1467 }
1468 },
1469 {
1470 "op" : "remove_header",
1471 "parameters" : [
1472 {
1473 "type" : "header",
1474 "value" : "gtpu"
1475 }
1476 ],
1477 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001478 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001479 "line" : 58,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001480 "column" : 8,
1481 "source_fragment" : "gtpu.setInvalid()"
1482 }
1483 }
1484 ]
1485 },
1486 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001487 "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001488 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001489 "runtime_data" : [
1490 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001491 "name" : "teid",
1492 "bitwidth" : 32
1493 },
1494 {
1495 "name" : "s1u_enb_addr",
1496 "bitwidth" : 32
1497 },
1498 {
1499 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001500 "bitwidth" : 32
1501 }
1502 ],
1503 "primitives" : [
1504 {
1505 "op" : "assign",
1506 "parameters" : [
1507 {
1508 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001509 "value" : ["scalars", "fabric_metadata_t._spgw_teid18"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001510 },
1511 {
1512 "type" : "runtime_data",
1513 "value" : 0
1514 }
1515 ],
1516 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001517 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001518 "line" : 64,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001519 "column" : 30,
1520 "source_fragment" : "= teid; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001521 }
1522 },
1523 {
1524 "op" : "assign",
1525 "parameters" : [
1526 {
1527 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001528 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr19"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001529 },
1530 {
1531 "type" : "runtime_data",
1532 "value" : 1
1533 }
1534 ],
1535 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001536 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001537 "line" : 65,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001538 "column" : 38,
1539 "source_fragment" : "= s1u_enb_addr; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001540 }
1541 },
1542 {
1543 "op" : "assign",
1544 "parameters" : [
1545 {
1546 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001547 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr20"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001548 },
1549 {
1550 "type" : "runtime_data",
1551 "value" : 2
1552 }
1553 ],
1554 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001555 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001556 "line" : 66,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001557 "column" : 38,
1558 "source_fragment" : "= s1u_sgw_addr; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001559 }
1560 }
1561 ]
1562 },
1563 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001564 "name" : "FabricIngress.filtering.deny",
1565 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001566 "runtime_data" : [],
1567 "primitives" : [
1568 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001569 "op" : "assign",
1570 "parameters" : [
1571 {
1572 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001573 "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001574 },
1575 {
1576 "type" : "expression",
1577 "value" : {
1578 "type" : "expression",
1579 "value" : {
1580 "op" : "b2d",
1581 "left" : null,
1582 "right" : {
1583 "type" : "bool",
1584 "value" : true
1585 }
1586 }
1587 }
1588 }
1589 ],
1590 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001591 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001592 "line" : 36,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001593 "column" : 40,
1594 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001595 }
1596 },
1597 {
1598 "op" : "assign",
1599 "parameters" : [
1600 {
1601 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001602 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001603 },
1604 {
1605 "type" : "expression",
1606 "value" : {
1607 "type" : "expression",
1608 "value" : {
1609 "op" : "b2d",
1610 "left" : null,
1611 "right" : {
1612 "type" : "bool",
1613 "value" : true
1614 }
1615 }
1616 }
1617 }
1618 ],
1619 "source_info" : {
1620 "filename" : "include/control/filtering.p4",
1621 "line" : 37,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001622 "column" : 34,
1623 "source_fragment" : "= true; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001624 }
1625 }
1626 ]
1627 },
1628 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001629 "name" : "FabricIngress.filtering.permit",
1630 "id" : 12,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001631 "runtime_data" : [],
1632 "primitives" : []
1633 },
1634 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001635 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
1636 "id" : 13,
1637 "runtime_data" : [
1638 {
1639 "name" : "vlan_id",
1640 "bitwidth" : 12
1641 }
1642 ],
1643 "primitives" : [
1644 {
1645 "op" : "assign",
1646 "parameters" : [
1647 {
1648 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001649 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001650 },
1651 {
1652 "type" : "runtime_data",
1653 "value" : 0
1654 }
1655 ],
1656 "source_info" : {
1657 "filename" : "include/control/filtering.p4",
1658 "line" : 47,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001659 "column" : 32,
1660 "source_fragment" : "= vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001661 }
1662 }
1663 ]
1664 },
1665 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001666 "name" : "FabricIngress.filtering.set_forwarding_type",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001667 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001668 "runtime_data" : [
1669 {
1670 "name" : "fwd_type",
1671 "bitwidth" : 3
1672 }
1673 ],
1674 "primitives" : [
1675 {
1676 "op" : "assign",
1677 "parameters" : [
1678 {
1679 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001680 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001681 },
1682 {
1683 "type" : "runtime_data",
1684 "value" : 0
1685 }
1686 ],
1687 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001688 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001689 "line" : 83,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001690 "column" : 33,
1691 "source_fragment" : "= fwd_type; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001692 }
1693 }
1694 ]
1695 },
1696 {
Yi Tseng47eac892018-07-11 02:17:04 +08001697 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001698 "id" : 15,
1699 "runtime_data" : [
1700 {
1701 "name" : "next_id",
1702 "bitwidth" : 32
1703 }
1704 ],
1705 "primitives" : [
1706 {
1707 "op" : "assign",
1708 "parameters" : [
1709 {
1710 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001711 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001712 },
1713 {
1714 "type" : "runtime_data",
1715 "value" : 0
1716 }
1717 ],
1718 "source_info" : {
1719 "filename" : "include/control/forwarding.p4",
1720 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001721 "column" : 32,
1722 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001723 }
1724 }
1725 ]
1726 },
1727 {
1728 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
1729 "id" : 16,
1730 "runtime_data" : [
1731 {
1732 "name" : "next_id",
1733 "bitwidth" : 32
1734 }
1735 ],
1736 "primitives" : [
1737 {
1738 "op" : "assign",
1739 "parameters" : [
1740 {
1741 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001742 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001743 },
1744 {
1745 "type" : "hexstr",
1746 "value" : "0x000000"
1747 }
1748 ],
1749 "source_info" : {
1750 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001751 "line" : 66,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001752 "column" : 35,
1753 "source_fragment" : "= 0; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001754 }
1755 },
1756 {
1757 "op" : "assign",
1758 "parameters" : [
1759 {
1760 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001761 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001762 },
1763 {
1764 "type" : "runtime_data",
1765 "value" : 0
1766 }
1767 ],
1768 "source_info" : {
1769 "filename" : "include/control/forwarding.p4",
1770 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001771 "column" : 32,
1772 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001773 }
1774 }
1775 ]
1776 },
1777 {
1778 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001779 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001780 "runtime_data" : [
1781 {
1782 "name" : "next_id",
1783 "bitwidth" : 32
1784 }
1785 ],
1786 "primitives" : [
1787 {
1788 "op" : "assign",
1789 "parameters" : [
1790 {
1791 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001792 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001793 },
1794 {
1795 "type" : "runtime_data",
1796 "value" : 0
1797 }
1798 ],
1799 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001800 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001801 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001802 "column" : 32,
1803 "source_fragment" : "= next_id; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001804 }
1805 }
1806 ]
1807 },
1808 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001809 "name" : "FabricIngress.forwarding.nop_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001810 "id" : 18,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001811 "runtime_data" : [],
1812 "primitives" : []
Yi Tseng47eac892018-07-11 02:17:04 +08001813 },
1814 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001815 "name" : "FabricIngress.acl.set_next_id_acl",
Charles Chancf696e52018-08-16 16:25:13 -07001816 "id" : 19,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001817 "runtime_data" : [
1818 {
1819 "name" : "next_id",
1820 "bitwidth" : 32
1821 }
1822 ],
1823 "primitives" : [
1824 {
1825 "op" : "assign",
1826 "parameters" : [
1827 {
1828 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001829 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08001830 },
1831 {
1832 "type" : "runtime_data",
1833 "value" : 0
1834 }
1835 ],
1836 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001837 "filename" : "include/control/acl.p4",
1838 "line" : 33,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001839 "column" : 32,
1840 "source_fragment" : "= next_id; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001841 }
1842 }
1843 ]
1844 },
1845 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001846 "name" : "FabricIngress.acl.punt_to_cpu",
Charles Chancf696e52018-08-16 16:25:13 -07001847 "id" : 20,
Charles Chancd03f072018-08-31 17:46:37 -07001848 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001849 "primitives" : [
1850 {
1851 "op" : "assign",
1852 "parameters" : [
1853 {
1854 "type" : "field",
1855 "value" : ["standard_metadata", "egress_spec"]
1856 },
1857 {
1858 "type" : "hexstr",
1859 "value" : "0x00ff"
1860 }
1861 ],
1862 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001863 "filename" : "include/control/acl.p4",
1864 "line" : 39,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001865 "column" : 8,
1866 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001867 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001868 },
1869 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001870 "op" : "assign",
1871 "parameters" : [
1872 {
1873 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001874 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001875 },
1876 {
1877 "type" : "expression",
1878 "value" : {
1879 "type" : "expression",
1880 "value" : {
1881 "op" : "b2d",
1882 "left" : null,
1883 "right" : {
1884 "type" : "bool",
1885 "value" : true
1886 }
1887 }
1888 }
1889 }
1890 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001891 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001892 "filename" : "include/control/acl.p4",
1893 "line" : 40,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001894 "column" : 34,
1895 "source_fragment" : "= true; ..."
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001896 }
1897 }
1898 ]
1899 },
1900 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001901 "name" : "FabricIngress.acl.set_clone_session_id",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001902 "id" : 21,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001903 "runtime_data" : [
1904 {
1905 "name" : "clone_id",
1906 "bitwidth" : 32
1907 }
1908 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001909 "primitives" : [
1910 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001911 "op" : "clone_ingress_pkt_to_egress",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001912 "parameters" : [
1913 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001914 "type" : "runtime_data",
1915 "value" : 0
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001916 },
1917 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001918 "type" : "hexstr",
1919 "value" : "0x1"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001920 }
1921 ],
1922 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001923 "filename" : "include/control/acl.p4",
1924 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001925 "column" : 8,
Daniele Moro3b7a21b2019-06-25 17:33:40 -07001926 "source_fragment" : "clone3(CloneType.I2E, clone_id, {standard_metadata.ingress_port})"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001927 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001928 }
1929 ]
1930 },
1931 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001932 "name" : "FabricIngress.acl.drop",
1933 "id" : 22,
Yi Tseng47eac892018-07-11 02:17:04 +08001934 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001935 "primitives" : [
1936 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001937 "op" : "mark_to_drop",
1938 "parameters" : [
1939 {
1940 "type" : "header",
1941 "value" : "standard_metadata"
1942 }
1943 ],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001944 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001945 "filename" : "include/control/acl.p4",
1946 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001947 "column" : 8,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001948 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001949 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001950 },
1951 {
1952 "op" : "assign",
1953 "parameters" : [
1954 {
1955 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001956 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001957 },
1958 {
1959 "type" : "expression",
1960 "value" : {
1961 "type" : "expression",
1962 "value" : {
1963 "op" : "b2d",
1964 "left" : null,
1965 "right" : {
1966 "type" : "bool",
1967 "value" : true
1968 }
1969 }
1970 }
1971 }
1972 ],
1973 "source_info" : {
1974 "filename" : "include/control/acl.p4",
1975 "line" : 52,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001976 "column" : 34,
1977 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001978 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001979 }
1980 ]
1981 },
1982 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001983 "name" : "FabricIngress.acl.nop_acl",
1984 "id" : 23,
Charles Chancf696e52018-08-16 16:25:13 -07001985 "runtime_data" : [],
1986 "primitives" : []
1987 },
1988 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001989 "name" : "FabricIngress.next.set_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001990 "id" : 24,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001991 "runtime_data" : [
1992 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001993 "name" : "vlan_id",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001994 "bitwidth" : 12
1995 }
1996 ],
1997 "primitives" : [
1998 {
1999 "op" : "assign",
2000 "parameters" : [
2001 {
2002 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002003 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002004 },
2005 {
2006 "type" : "runtime_data",
2007 "value" : 0
2008 }
2009 ],
2010 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002011 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002012 "line" : 70,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002013 "column" : 32,
2014 "source_fragment" : "= vlan_id; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002015 }
2016 }
2017 ]
2018 },
2019 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002020 "name" : "FabricIngress.next.output_xconnect",
2021 "id" : 25,
2022 "runtime_data" : [
2023 {
2024 "name" : "port_num",
2025 "bitwidth" : 9
2026 }
2027 ],
2028 "primitives" : [
2029 {
2030 "op" : "assign",
2031 "parameters" : [
2032 {
2033 "type" : "field",
2034 "value" : ["standard_metadata", "egress_spec"]
2035 },
2036 {
2037 "type" : "runtime_data",
2038 "value" : 0
2039 }
2040 ],
2041 "source_info" : {
2042 "filename" : "include/control/next.p4",
2043 "line" : 31,
2044 "column" : 5,
2045 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2046 }
2047 }
2048 ]
2049 },
2050 {
2051 "name" : "FabricIngress.next.set_next_id_xconnect",
2052 "id" : 26,
2053 "runtime_data" : [
2054 {
2055 "name" : "next_id",
2056 "bitwidth" : 32
2057 }
2058 ],
2059 "primitives" : [
2060 {
2061 "op" : "assign",
2062 "parameters" : [
2063 {
2064 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002065 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002066 },
2067 {
2068 "type" : "runtime_data",
2069 "value" : 0
2070 }
2071 ],
2072 "source_info" : {
2073 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002074 "line" : 100,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002075 "column" : 32,
2076 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002077 }
2078 }
2079 ]
2080 },
2081 {
2082 "name" : "FabricIngress.next.output_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002083 "id" : 27,
Yi Tseng47eac892018-07-11 02:17:04 +08002084 "runtime_data" : [
2085 {
2086 "name" : "port_num",
2087 "bitwidth" : 9
2088 }
2089 ],
2090 "primitives" : [
2091 {
2092 "op" : "assign",
2093 "parameters" : [
2094 {
2095 "type" : "field",
2096 "value" : ["standard_metadata", "egress_spec"]
2097 },
2098 {
2099 "type" : "runtime_data",
2100 "value" : 0
2101 }
2102 ],
2103 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002104 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002105 "line" : 31,
2106 "column" : 5,
2107 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng47eac892018-07-11 02:17:04 +08002108 }
2109 }
2110 ]
2111 },
2112 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002113 "name" : "FabricIngress.next.routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002114 "id" : 28,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002115 "runtime_data" : [
2116 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002117 "name" : "port_num",
2118 "bitwidth" : 9
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002119 },
2120 {
2121 "name" : "smac",
2122 "bitwidth" : 48
2123 },
2124 {
2125 "name" : "dmac",
2126 "bitwidth" : 48
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002127 }
2128 ],
2129 "primitives" : [
2130 {
2131 "op" : "assign",
2132 "parameters" : [
2133 {
2134 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002135 "value" : ["ethernet", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002136 },
2137 {
2138 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002139 "value" : 1
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002140 }
2141 ],
2142 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002143 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002144 "line" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002145 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002146 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2147 }
2148 },
2149 {
2150 "op" : "assign",
2151 "parameters" : [
2152 {
2153 "type" : "field",
2154 "value" : ["ethernet", "dst_addr"]
2155 },
2156 {
2157 "type" : "runtime_data",
2158 "value" : 2
2159 }
2160 ],
2161 "source_info" : {
2162 "filename" : "include/control/next.p4",
2163 "line" : 41,
2164 "column" : 8,
2165 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002166 }
2167 },
2168 {
2169 "op" : "assign",
2170 "parameters" : [
2171 {
2172 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002173 "value" : ["standard_metadata", "egress_spec"]
2174 },
2175 {
2176 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002177 "value" : 0
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002178 }
2179 ],
2180 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002181 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002182 "line" : 31,
2183 "column" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002184 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2185 }
2186 }
2187 ]
2188 },
2189 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002190 "name" : "FabricIngress.next.mpls_routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002191 "id" : 29,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002192 "runtime_data" : [
2193 {
2194 "name" : "port_num",
2195 "bitwidth" : 9
2196 },
2197 {
2198 "name" : "smac",
2199 "bitwidth" : 48
2200 },
2201 {
2202 "name" : "dmac",
2203 "bitwidth" : 48
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002204 },
2205 {
2206 "name" : "label",
2207 "bitwidth" : 20
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002208 }
2209 ],
2210 "primitives" : [
2211 {
2212 "op" : "assign",
2213 "parameters" : [
2214 {
2215 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002216 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002217 },
2218 {
2219 "type" : "runtime_data",
2220 "value" : 3
2221 }
2222 ],
2223 "source_info" : {
2224 "filename" : "include/control/next.p4",
2225 "line" : 46,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002226 "column" : 35,
2227 "source_fragment" : "= label; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002228 }
2229 },
2230 {
2231 "op" : "assign",
2232 "parameters" : [
2233 {
2234 "type" : "field",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002235 "value" : ["ethernet", "src_addr"]
2236 },
2237 {
2238 "type" : "runtime_data",
2239 "value" : 1
2240 }
2241 ],
2242 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002243 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002244 "line" : 36,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002245 "column" : 8,
2246 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2247 }
2248 },
2249 {
2250 "op" : "assign",
2251 "parameters" : [
2252 {
2253 "type" : "field",
2254 "value" : ["ethernet", "dst_addr"]
2255 },
2256 {
2257 "type" : "runtime_data",
2258 "value" : 2
2259 }
2260 ],
2261 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002262 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002263 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002264 "column" : 8,
2265 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2266 }
2267 },
2268 {
2269 "op" : "assign",
2270 "parameters" : [
2271 {
2272 "type" : "field",
2273 "value" : ["standard_metadata", "egress_spec"]
2274 },
2275 {
2276 "type" : "runtime_data",
2277 "value" : 0
2278 }
2279 ],
2280 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002281 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002282 "line" : 31,
2283 "column" : 5,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002284 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2285 }
2286 }
2287 ]
2288 },
2289 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002290 "name" : "FabricIngress.next.set_mcast_group_id",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002291 "id" : 30,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002292 "runtime_data" : [
2293 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002294 "name" : "group_id",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002295 "bitwidth" : 16
2296 }
2297 ],
2298 "primitives" : [
2299 {
2300 "op" : "assign",
2301 "parameters" : [
2302 {
2303 "type" : "field",
2304 "value" : ["standard_metadata", "mcast_grp"]
2305 },
2306 {
2307 "type" : "runtime_data",
2308 "value" : 0
2309 }
2310 ],
2311 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002312 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002313 "line" : 213,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002314 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002315 "source_fragment" : "standard_metadata.mcast_grp = group_id"
Esin Karaman971fb7f2017-12-28 13:44:52 +00002316 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002317 },
2318 {
2319 "op" : "assign",
2320 "parameters" : [
2321 {
2322 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002323 "value" : ["scalars", "fabric_metadata_t._is_multicast11"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002324 },
2325 {
2326 "type" : "expression",
2327 "value" : {
2328 "type" : "expression",
2329 "value" : {
2330 "op" : "b2d",
2331 "left" : null,
2332 "right" : {
2333 "type" : "bool",
2334 "value" : true
2335 }
2336 }
2337 }
2338 }
2339 ],
2340 "source_info" : {
2341 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002342 "line" : 214,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002343 "column" : 37,
2344 "source_fragment" : "= true; ..."
Carmelo Casconea5400af2018-07-17 22:11:54 +02002345 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002346 }
2347 ]
2348 },
2349 {
2350 "name" : "act",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002351 "id" : 31,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002352 "runtime_data" : [],
2353 "primitives" : [
2354 {
2355 "op" : "assign",
2356 "parameters" : [
2357 {
2358 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002359 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002360 },
2361 {
2362 "type" : "expression",
2363 "value" : {
2364 "type" : "expression",
2365 "value" : {
2366 "op" : "b2d",
2367 "left" : null,
2368 "right" : {
2369 "type" : "bool",
2370 "value" : true
2371 }
2372 }
2373 }
2374 }
2375 ],
2376 "source_info" : {
2377 "filename" : "include/spgw.p4",
2378 "line" : 30,
2379 "column" : 32,
2380 "source_fragment" : "return"
2381 }
2382 }
2383 ]
2384 },
2385 {
2386 "name" : "act_0",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002387 "id" : 32,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002388 "runtime_data" : [],
2389 "primitives" : [
2390 {
2391 "op" : "remove_header",
2392 "parameters" : [
2393 {
2394 "type" : "header",
2395 "value" : "gtpu_ipv4"
2396 }
2397 ],
2398 "source_info" : {
2399 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002400 "line" : 62,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002401 "column" : 50,
2402 "source_fragment" : "hdr.gtpu_ipv4"
2403 }
2404 },
2405 {
2406 "op" : "remove_header",
2407 "parameters" : [
2408 {
2409 "type" : "header",
2410 "value" : "gtpu_udp"
2411 }
2412 ],
2413 "source_info" : {
2414 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002415 "line" : 62,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002416 "column" : 65,
2417 "source_fragment" : "hdr.gtpu_udp"
2418 }
2419 },
2420 {
2421 "op" : "assign",
2422 "parameters" : [
2423 {
2424 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002425 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002426 },
2427 {
2428 "type" : "expression",
2429 "value" : {
2430 "type" : "expression",
2431 "value" : {
2432 "op" : "b2d",
2433 "left" : null,
2434 "right" : {
2435 "type" : "bool",
2436 "value" : false
2437 }
2438 }
2439 }
2440 }
2441 ]
2442 }
2443 ]
2444 },
2445 {
2446 "name" : "act_1",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002447 "id" : 33,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002448 "runtime_data" : [],
2449 "primitives" : [
2450 {
2451 "op" : "assign_header",
2452 "parameters" : [
2453 {
2454 "type" : "header",
2455 "value" : "udp"
2456 },
2457 {
2458 "type" : "header",
2459 "value" : "inner_udp"
2460 }
2461 ],
2462 "source_info" : {
2463 "filename" : "include/spgw.p4",
2464 "line" : 35,
2465 "column" : 16,
2466 "source_fragment" : "= inner_udp; ..."
2467 }
2468 }
2469 ]
2470 },
2471 {
2472 "name" : "act_2",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002473 "id" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002474 "runtime_data" : [],
2475 "primitives" : [
2476 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002477 "op" : "remove_header",
2478 "parameters" : [
2479 {
2480 "type" : "header",
2481 "value" : "udp"
2482 }
2483 ],
2484 "source_info" : {
2485 "filename" : "include/spgw.p4",
2486 "line" : 37,
2487 "column" : 12,
2488 "source_fragment" : "udp.setInvalid()"
2489 }
2490 }
2491 ]
2492 },
2493 {
2494 "name" : "act_3",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002495 "id" : 35,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002496 "runtime_data" : [],
2497 "primitives" : [
2498 {
2499 "op" : "assign_header",
2500 "parameters" : [
2501 {
2502 "type" : "header",
2503 "value" : "gtpu_ipv4"
2504 },
2505 {
2506 "type" : "header",
2507 "value" : "ipv4"
2508 }
2509 ],
2510 "source_info" : {
2511 "filename" : "include/spgw.p4",
2512 "line" : 31,
2513 "column" : 18,
2514 "source_fragment" : "= ipv4; ..."
2515 }
2516 },
2517 {
2518 "op" : "assign_header",
2519 "parameters" : [
2520 {
2521 "type" : "header",
2522 "value" : "ipv4"
2523 },
2524 {
2525 "type" : "header",
2526 "value" : "inner_ipv4"
2527 }
2528 ],
2529 "source_info" : {
2530 "filename" : "include/spgw.p4",
2531 "line" : 32,
2532 "column" : 13,
2533 "source_fragment" : "= inner_ipv4; ..."
2534 }
2535 },
2536 {
2537 "op" : "assign_header",
2538 "parameters" : [
2539 {
2540 "type" : "header",
2541 "value" : "gtpu_udp"
2542 },
2543 {
2544 "type" : "header",
2545 "value" : "udp"
2546 }
2547 ],
2548 "source_info" : {
2549 "filename" : "include/spgw.p4",
2550 "line" : 33,
2551 "column" : 17,
2552 "source_fragment" : "= udp; ..."
2553 }
2554 }
2555 ]
2556 },
2557 {
2558 "name" : "act_4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002559 "id" : 36,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002560 "runtime_data" : [],
2561 "primitives" : [
2562 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002563 "op" : "assign",
2564 "parameters" : [
2565 {
2566 "type" : "field",
2567 "value" : ["standard_metadata", "egress_spec"]
2568 },
2569 {
2570 "type" : "field",
2571 "value" : ["packet_out", "egress_port"]
2572 }
2573 ],
2574 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002575 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002576 "line" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002577 "column" : 12,
2578 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2579 }
2580 },
2581 {
2582 "op" : "remove_header",
2583 "parameters" : [
2584 {
2585 "type" : "header",
2586 "value" : "packet_out"
2587 }
2588 ],
2589 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002590 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002591 "line" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002592 "column" : 12,
2593 "source_fragment" : "hdr.packet_out.setInvalid()"
2594 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002595 },
2596 {
2597 "op" : "assign",
2598 "parameters" : [
2599 {
2600 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002601 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out12"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002602 },
2603 {
2604 "type" : "expression",
2605 "value" : {
2606 "type" : "expression",
2607 "value" : {
2608 "op" : "b2d",
2609 "left" : null,
2610 "right" : {
2611 "type" : "bool",
2612 "value" : true
2613 }
2614 }
2615 }
2616 }
2617 ],
2618 "source_info" : {
2619 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002620 "line" : 27,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002621 "column" : 53,
2622 "source_fragment" : "= true; ..."
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002623 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002624 },
2625 {
2626 "op" : "exit",
2627 "parameters" : [],
2628 "source_info" : {
2629 "filename" : "include/control/packetio.p4",
2630 "line" : 29,
2631 "column" : 12,
2632 "source_fragment" : "exit"
2633 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002634 }
2635 ]
2636 },
2637 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002638 "name" : "act_5",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002639 "id" : 37,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002640 "runtime_data" : [],
2641 "primitives" : [
2642 {
2643 "op" : "assign",
2644 "parameters" : [
2645 {
2646 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002647 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002648 },
2649 {
2650 "type" : "field",
2651 "value" : ["vlan_tag", "eth_type"]
2652 }
2653 ],
2654 "source_info" : {
2655 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002656 "line" : 105,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002657 "column" : 37,
2658 "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002659 }
2660 },
2661 {
2662 "op" : "assign",
2663 "parameters" : [
2664 {
2665 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002666 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002667 },
2668 {
2669 "type" : "field",
2670 "value" : ["vlan_tag", "vlan_id"]
2671 }
2672 ],
2673 "source_info" : {
2674 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002675 "line" : 106,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002676 "column" : 36,
2677 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002678 }
2679 },
2680 {
2681 "op" : "assign",
2682 "parameters" : [
2683 {
2684 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002685 "value" : ["scalars", "fabric_metadata_t._vlan_pri3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002686 },
2687 {
2688 "type" : "field",
2689 "value" : ["vlan_tag", "pri"]
2690 }
2691 ],
2692 "source_info" : {
2693 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002694 "line" : 107,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002695 "column" : 37,
2696 "source_fragment" : "= hdr.vlan_tag.pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002697 }
2698 },
2699 {
2700 "op" : "assign",
2701 "parameters" : [
2702 {
2703 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002704 "value" : ["scalars", "fabric_metadata_t._vlan_cfi4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002705 },
2706 {
2707 "type" : "field",
2708 "value" : ["vlan_tag", "cfi"]
2709 }
2710 ],
2711 "source_info" : {
2712 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002713 "line" : 108,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002714 "column" : 37,
2715 "source_fragment" : "= hdr.vlan_tag.cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002716 }
2717 }
2718 ]
2719 },
2720 {
2721 "name" : "act_6",
2722 "id" : 38,
2723 "runtime_data" : [],
2724 "primitives" : [
2725 {
2726 "op" : "assign",
2727 "parameters" : [
2728 {
2729 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002730 "value" : ["scalars", "fabric_metadata_t._mpls_ttl6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002731 },
2732 {
2733 "type" : "hexstr",
2734 "value" : "0x41"
2735 }
2736 ],
2737 "source_info" : {
2738 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002739 "line" : 115,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002740 "column" : 37,
2741 "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002742 }
2743 }
2744 ]
2745 },
2746 {
2747 "name" : "act_7",
2748 "id" : 39,
2749 "runtime_data" : [],
2750 "primitives" : [
2751 {
2752 "op" : "assign",
2753 "parameters" : [
2754 {
2755 "type" : "field",
2756 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002757 },
2758 {
2759 "type" : "expression",
2760 "value" : {
2761 "type" : "expression",
2762 "value" : {
2763 "op" : "b2d",
2764 "left" : null,
2765 "right" : {
2766 "type" : "bool",
2767 "value" : true
2768 }
2769 }
2770 }
2771 }
2772 ]
2773 }
2774 ]
2775 },
2776 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002777 "name" : "act_8",
2778 "id" : 40,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002779 "runtime_data" : [],
2780 "primitives" : [
2781 {
2782 "op" : "assign",
2783 "parameters" : [
2784 {
2785 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002786 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002787 },
2788 {
2789 "type" : "expression",
2790 "value" : {
2791 "type" : "expression",
2792 "value" : {
2793 "op" : "b2d",
2794 "left" : null,
2795 "right" : {
2796 "type" : "bool",
2797 "value" : false
2798 }
2799 }
2800 }
2801 }
2802 ]
2803 }
2804 ]
2805 },
2806 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002807 "name" : "act_9",
2808 "id" : 41,
2809 "runtime_data" : [],
2810 "primitives" : [
2811 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002812 "op" : "mark_to_drop",
2813 "parameters" : [
2814 {
2815 "type" : "header",
2816 "value" : "standard_metadata"
2817 }
2818 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002819 "source_info" : {
2820 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002821 "line" : 149,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002822 "column" : 16,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002823 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002824 }
2825 }
2826 ]
2827 },
2828 {
2829 "name" : "act_10",
2830 "id" : 42,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002831 "runtime_data" : [],
2832 "primitives" : [
2833 {
2834 "op" : "assign",
2835 "parameters" : [
2836 {
2837 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002838 "value" : ["scalars", "fabric_metadata_t._spgw_direction16"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002839 },
2840 {
2841 "type" : "hexstr",
2842 "value" : "0x01"
2843 }
2844 ],
2845 "source_info" : {
2846 "filename" : "include/control/../define.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002847 "line" : 142,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002848 "column" : 36,
2849 "source_fragment" : "2w1; ..."
2850 }
2851 }
2852 ]
2853 },
2854 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002855 "name" : "act_11",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002856 "id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002857 "runtime_data" : [],
2858 "primitives" : [
2859 {
2860 "op" : "assign",
2861 "parameters" : [
2862 {
2863 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002864 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002865 },
2866 {
2867 "type" : "expression",
2868 "value" : {
2869 "type" : "expression",
2870 "value" : {
2871 "op" : "b2d",
2872 "left" : null,
2873 "right" : {
2874 "type" : "bool",
2875 "value" : true
2876 }
2877 }
2878 }
2879 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002880 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002881 }
2882 ]
2883 },
2884 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002885 "name" : "act_12",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002886 "id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002887 "runtime_data" : [],
2888 "primitives" : [
2889 {
2890 "op" : "assign",
2891 "parameters" : [
2892 {
2893 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002894 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002895 },
2896 {
2897 "type" : "expression",
2898 "value" : {
2899 "type" : "expression",
2900 "value" : {
2901 "op" : "b2d",
2902 "left" : null,
2903 "right" : {
2904 "type" : "bool",
2905 "value" : false
2906 }
2907 }
2908 }
2909 }
2910 ]
2911 }
2912 ]
2913 },
2914 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002915 "name" : "act_13",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002916 "id" : 45,
Yi Tseng27b9bc02018-04-12 14:52:40 +08002917 "runtime_data" : [],
2918 "primitives" : [
2919 {
2920 "op" : "assign",
2921 "parameters" : [
2922 {
2923 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002924 "value" : ["scalars", "fabric_metadata_t._spgw_direction16"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08002925 },
2926 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002927 "type" : "hexstr",
2928 "value" : "0x02"
Yi Tseng27b9bc02018-04-12 14:52:40 +08002929 }
2930 ],
2931 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002932 "filename" : "include/control/../define.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002933 "line" : 143,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002934 "column" : 38,
2935 "source_fragment" : "2w2; ..."
Yi Tseng27b9bc02018-04-12 14:52:40 +08002936 }
2937 }
2938 ]
2939 },
2940 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002941 "name" : "act_14",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002942 "id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002943 "runtime_data" : [],
2944 "primitives" : [
2945 {
2946 "op" : "assign",
2947 "parameters" : [
2948 {
2949 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002950 "value" : ["scalars", "fabric_metadata_t._spgw_direction16"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002951 },
2952 {
2953 "type" : "hexstr",
2954 "value" : "0x00"
2955 }
2956 ],
2957 "source_info" : {
2958 "filename" : "include/control/../define.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002959 "line" : 141,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002960 "column" : 37,
2961 "source_fragment" : "2w0; ..."
2962 }
2963 },
2964 {
2965 "op" : "assign",
2966 "parameters" : [
2967 {
2968 "type" : "field",
2969 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002970 },
2971 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002972 "type" : "expression",
2973 "value" : {
2974 "type" : "expression",
2975 "value" : {
2976 "op" : "b2d",
2977 "left" : null,
2978 "right" : {
2979 "type" : "bool",
2980 "value" : true
2981 }
2982 }
2983 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002984 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002985 ],
2986 "source_info" : {
2987 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002988 "line" : 158,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002989 "column" : 12,
2990 "source_fragment" : "return"
2991 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002992 }
2993 ]
2994 },
2995 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002996 "name" : "act_15",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002997 "id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002998 "runtime_data" : [],
2999 "primitives" : [
3000 {
3001 "op" : "assign",
3002 "parameters" : [
3003 {
3004 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003005 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003006 },
3007 {
3008 "type" : "expression",
3009 "value" : {
3010 "type" : "expression",
3011 "value" : {
3012 "op" : "b2d",
3013 "left" : null,
3014 "right" : {
3015 "type" : "bool",
3016 "value" : false
3017 }
3018 }
3019 }
3020 }
3021 ]
3022 }
3023 ]
3024 },
3025 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003026 "name" : "act_16",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003027 "id" : 48,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003028 "runtime_data" : [],
3029 "primitives" : [
3030 {
3031 "op" : "assign",
3032 "parameters" : [
3033 {
3034 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003035 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len17"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003036 },
3037 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003038 "type" : "field",
3039 "value" : ["ipv4", "total_len"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003040 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003041 ],
3042 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003043 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003044 "line" : 175,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003045 "column" : 34,
3046 "source_fragment" : "= ipv4.total_len; ..."
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003047 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003048 }
3049 ]
3050 },
3051 {
3052 "name" : "act_17",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003053 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003054 "runtime_data" : [],
3055 "primitives" : [
3056 {
3057 "op" : "assign",
3058 "parameters" : [
3059 {
3060 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003061 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003062 },
3063 {
3064 "type" : "expression",
3065 "value" : {
3066 "type" : "expression",
3067 "value" : {
3068 "op" : "&",
3069 "left" : {
3070 "type" : "field",
3071 "value" : ["standard_metadata", "egress_spec"]
3072 },
3073 "right" : {
3074 "type" : "hexstr",
3075 "value" : "0xffffffff"
3076 }
3077 }
3078 }
3079 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003080 ],
3081 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003082 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003083 "line" : 31,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003084 "column" : 38,
3085 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3086 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003087 },
3088 {
3089 "op" : "count",
3090 "parameters" : [
3091 {
3092 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003093 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003094 },
3095 {
3096 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003097 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003098 }
3099 ],
3100 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003101 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003102 "line" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003103 "column" : 12,
3104 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3105 }
3106 }
3107 ]
3108 },
3109 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003110 "name" : "act_18",
3111 "id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003112 "runtime_data" : [],
3113 "primitives" : [
3114 {
3115 "op" : "assign",
3116 "parameters" : [
3117 {
3118 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003119 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003120 },
3121 {
3122 "type" : "expression",
3123 "value" : {
3124 "type" : "expression",
3125 "value" : {
3126 "op" : "&",
3127 "left" : {
3128 "type" : "field",
3129 "value" : ["standard_metadata", "ingress_port"]
3130 },
3131 "right" : {
3132 "type" : "hexstr",
3133 "value" : "0xffffffff"
3134 }
3135 }
3136 }
3137 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003138 ],
3139 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003140 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003141 "line" : 34,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003142 "column" : 39,
3143 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3144 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003145 },
3146 {
3147 "op" : "count",
3148 "parameters" : [
3149 {
3150 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003151 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003152 },
3153 {
3154 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003155 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003156 }
3157 ],
3158 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003159 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003160 "line" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003161 "column" : 12,
3162 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3163 }
3164 }
3165 ]
3166 },
3167 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003168 "name" : "nop",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003169 "id" : 51,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003170 "runtime_data" : [],
Charles Chancd03f072018-08-31 17:46:37 -07003171 "primitives" : []
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003172 },
3173 {
Charles Chancd03f072018-08-31 17:46:37 -07003174 "name" : "FabricEgress.spgw_egress.gtpu_encap",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003175 "id" : 52,
Charles Chancd03f072018-08-31 17:46:37 -07003176 "runtime_data" : [],
3177 "primitives" : [
3178 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003179 "op" : "add_header",
3180 "parameters" : [
3181 {
3182 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003183 "value" : "gtpu_ipv4"
3184 }
3185 ],
3186 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003187 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003188 "line" : 191,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003189 "column" : 8,
3190 "source_fragment" : "gtpu_ipv4.setValid()"
3191 }
3192 },
3193 {
3194 "op" : "assign",
3195 "parameters" : [
3196 {
3197 "type" : "field",
3198 "value" : ["gtpu_ipv4", "version"]
3199 },
3200 {
3201 "type" : "hexstr",
3202 "value" : "0x04"
3203 }
3204 ],
3205 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003206 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003207 "line" : 192,
Yi Tseng3d3956d2018-01-31 17:28:05 -08003208 "column" : 8,
3209 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003210 }
3211 },
3212 {
3213 "op" : "assign",
3214 "parameters" : [
3215 {
3216 "type" : "field",
3217 "value" : ["gtpu_ipv4", "ihl"]
3218 },
3219 {
3220 "type" : "hexstr",
3221 "value" : "0x05"
3222 }
3223 ],
3224 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003225 "filename" : "include/control/../define.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003226 "line" : 124,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003227 "column" : 28,
3228 "source_fragment" : "5; ..."
3229 }
3230 },
3231 {
3232 "op" : "assign",
3233 "parameters" : [
3234 {
3235 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003236 "value" : ["gtpu_ipv4", "dscp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003237 },
3238 {
3239 "type" : "hexstr",
3240 "value" : "0x00"
3241 }
3242 ],
3243 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003244 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003245 "line" : 194,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003246 "column" : 8,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003247 "source_fragment" : "gtpu_ipv4.dscp = 0"
3248 }
3249 },
3250 {
3251 "op" : "assign",
3252 "parameters" : [
3253 {
3254 "type" : "field",
3255 "value" : ["gtpu_ipv4", "ecn"]
3256 },
3257 {
3258 "type" : "hexstr",
3259 "value" : "0x00"
3260 }
3261 ],
3262 "source_info" : {
3263 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003264 "line" : 195,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003265 "column" : 8,
3266 "source_fragment" : "gtpu_ipv4.ecn = 0"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003267 }
3268 },
3269 {
3270 "op" : "assign",
3271 "parameters" : [
3272 {
3273 "type" : "field",
3274 "value" : ["gtpu_ipv4", "total_len"]
3275 },
3276 {
3277 "type" : "expression",
3278 "value" : {
3279 "type" : "expression",
3280 "value" : {
3281 "op" : "&",
3282 "left" : {
3283 "type" : "expression",
3284 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003285 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003286 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003287 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003288 "value" : ["ipv4", "total_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003289 },
3290 "right" : {
3291 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003292 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003293 }
3294 }
3295 },
3296 "right" : {
3297 "type" : "hexstr",
3298 "value" : "0xffff"
3299 }
3300 }
3301 }
3302 }
3303 ],
3304 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003305 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003306 "line" : 196,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003307 "column" : 8,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003308 "source_fragment" : "gtpu_ipv4.total_len = ipv4.total_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003309 }
3310 },
3311 {
3312 "op" : "assign",
3313 "parameters" : [
3314 {
3315 "type" : "field",
3316 "value" : ["gtpu_ipv4", "identification"]
3317 },
3318 {
3319 "type" : "hexstr",
3320 "value" : "0x1513"
3321 }
3322 ],
3323 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003324 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003325 "line" : 198,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003326 "column" : 8,
3327 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
3328 }
3329 },
3330 {
3331 "op" : "assign",
3332 "parameters" : [
3333 {
3334 "type" : "field",
3335 "value" : ["gtpu_ipv4", "flags"]
3336 },
3337 {
3338 "type" : "hexstr",
3339 "value" : "0x00"
3340 }
3341 ],
3342 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003343 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003344 "line" : 199,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003345 "column" : 8,
3346 "source_fragment" : "gtpu_ipv4.flags = 0"
3347 }
3348 },
3349 {
3350 "op" : "assign",
3351 "parameters" : [
3352 {
3353 "type" : "field",
3354 "value" : ["gtpu_ipv4", "frag_offset"]
3355 },
3356 {
3357 "type" : "hexstr",
3358 "value" : "0x0000"
3359 }
3360 ],
3361 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003362 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003363 "line" : 200,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003364 "column" : 8,
3365 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
3366 }
3367 },
3368 {
3369 "op" : "assign",
3370 "parameters" : [
3371 {
3372 "type" : "field",
3373 "value" : ["gtpu_ipv4", "ttl"]
3374 },
3375 {
3376 "type" : "hexstr",
3377 "value" : "0x40"
3378 }
3379 ],
3380 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003381 "filename" : "include/control/../define.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003382 "line" : 137,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003383 "column" : 32,
3384 "source_fragment" : "64; ..."
3385 }
3386 },
3387 {
3388 "op" : "assign",
3389 "parameters" : [
3390 {
3391 "type" : "field",
3392 "value" : ["gtpu_ipv4", "protocol"]
3393 },
3394 {
3395 "type" : "hexstr",
3396 "value" : "0x11"
3397 }
3398 ],
3399 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003400 "filename" : "include/control/../define.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003401 "line" : 121,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003402 "column" : 25,
3403 "source_fragment" : "17; ..."
3404 }
3405 },
3406 {
3407 "op" : "assign",
3408 "parameters" : [
3409 {
3410 "type" : "field",
3411 "value" : ["gtpu_ipv4", "dst_addr"]
3412 },
3413 {
3414 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003415 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr19"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003416 }
3417 ],
3418 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003419 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003420 "line" : 203,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003421 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003422 "source_fragment" : "gtpu_ipv4.dst_addr = fabric_meta.spgw.s1u_enb_addr; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003423 }
3424 },
3425 {
3426 "op" : "assign",
3427 "parameters" : [
3428 {
3429 "type" : "field",
3430 "value" : ["gtpu_ipv4", "src_addr"]
3431 },
3432 {
3433 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003434 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr20"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003435 }
3436 ],
3437 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003438 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003439 "line" : 204,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003440 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003441 "source_fragment" : "gtpu_ipv4.src_addr = fabric_meta.spgw.s1u_sgw_addr; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003442 }
3443 },
3444 {
3445 "op" : "assign",
3446 "parameters" : [
3447 {
3448 "type" : "field",
3449 "value" : ["gtpu_ipv4", "hdr_checksum"]
3450 },
3451 {
3452 "type" : "hexstr",
3453 "value" : "0x0000"
3454 }
3455 ],
3456 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003457 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003458 "line" : 205,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003459 "column" : 8,
3460 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
3461 }
3462 },
3463 {
3464 "op" : "add_header",
3465 "parameters" : [
3466 {
3467 "type" : "header",
3468 "value" : "gtpu_udp"
3469 }
3470 ],
3471 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003472 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003473 "line" : 207,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003474 "column" : 8,
3475 "source_fragment" : "gtpu_udp.setValid()"
3476 }
3477 },
3478 {
3479 "op" : "assign",
3480 "parameters" : [
3481 {
3482 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003483 "value" : ["gtpu_udp", "sport"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003484 },
3485 {
3486 "type" : "hexstr",
3487 "value" : "0x0868"
3488 }
3489 ],
3490 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003491 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003492 "line" : 208,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003493 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003494 "source_fragment" : "gtpu_udp.sport = 2152"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003495 }
3496 },
3497 {
3498 "op" : "assign",
3499 "parameters" : [
3500 {
3501 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003502 "value" : ["gtpu_udp", "dport"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003503 },
3504 {
3505 "type" : "hexstr",
3506 "value" : "0x0868"
3507 }
3508 ],
3509 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003510 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003511 "line" : 209,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003512 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003513 "source_fragment" : "gtpu_udp.dport = 2152"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003514 }
3515 },
3516 {
3517 "op" : "assign",
3518 "parameters" : [
3519 {
3520 "type" : "field",
3521 "value" : ["gtpu_udp", "len"]
3522 },
3523 {
3524 "type" : "expression",
3525 "value" : {
3526 "type" : "expression",
3527 "value" : {
3528 "op" : "&",
3529 "left" : {
3530 "type" : "expression",
3531 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003532 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003533 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003534 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003535 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len17"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003536 },
3537 "right" : {
3538 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003539 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003540 }
3541 }
3542 },
3543 "right" : {
3544 "type" : "hexstr",
3545 "value" : "0xffff"
3546 }
3547 }
3548 }
3549 }
3550 ],
3551 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003552 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003553 "line" : 210,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003554 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003555 "source_fragment" : "gtpu_udp.len = fabric_meta.spgw.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003556 }
3557 },
3558 {
3559 "op" : "assign",
3560 "parameters" : [
3561 {
3562 "type" : "field",
3563 "value" : ["gtpu_udp", "checksum"]
3564 },
3565 {
3566 "type" : "hexstr",
3567 "value" : "0x0000"
3568 }
3569 ],
3570 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003571 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003572 "line" : 212,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003573 "column" : 8,
3574 "source_fragment" : "gtpu_udp.checksum = 0"
3575 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08003576 },
3577 {
3578 "op" : "add_header",
3579 "parameters" : [
3580 {
3581 "type" : "header",
3582 "value" : "gtpu"
3583 }
3584 ],
3585 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003586 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003587 "line" : 214,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003588 "column" : 8,
3589 "source_fragment" : "gtpu.setValid()"
3590 }
3591 },
3592 {
3593 "op" : "assign",
3594 "parameters" : [
3595 {
3596 "type" : "field",
3597 "value" : ["gtpu", "version"]
3598 },
3599 {
3600 "type" : "hexstr",
3601 "value" : "0x01"
3602 }
3603 ],
3604 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003605 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003606 "line" : 215,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003607 "column" : 8,
3608 "source_fragment" : "gtpu.version = 0x01"
3609 }
3610 },
3611 {
3612 "op" : "assign",
3613 "parameters" : [
3614 {
3615 "type" : "field",
3616 "value" : ["gtpu", "pt"]
3617 },
3618 {
3619 "type" : "hexstr",
3620 "value" : "0x01"
3621 }
3622 ],
3623 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003624 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003625 "line" : 216,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003626 "column" : 8,
3627 "source_fragment" : "gtpu.pt = 0x01"
3628 }
3629 },
3630 {
3631 "op" : "assign",
3632 "parameters" : [
3633 {
3634 "type" : "field",
3635 "value" : ["gtpu", "spare"]
3636 },
3637 {
3638 "type" : "hexstr",
3639 "value" : "0x00"
3640 }
3641 ],
3642 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003643 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003644 "line" : 217,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003645 "column" : 8,
3646 "source_fragment" : "gtpu.spare = 0"
3647 }
3648 },
3649 {
3650 "op" : "assign",
3651 "parameters" : [
3652 {
3653 "type" : "field",
3654 "value" : ["gtpu", "ex_flag"]
3655 },
3656 {
3657 "type" : "hexstr",
3658 "value" : "0x00"
3659 }
3660 ],
3661 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003662 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003663 "line" : 218,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003664 "column" : 8,
3665 "source_fragment" : "gtpu.ex_flag = 0"
3666 }
3667 },
3668 {
3669 "op" : "assign",
3670 "parameters" : [
3671 {
3672 "type" : "field",
3673 "value" : ["gtpu", "seq_flag"]
3674 },
3675 {
3676 "type" : "hexstr",
3677 "value" : "0x00"
3678 }
3679 ],
3680 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003681 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003682 "line" : 219,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003683 "column" : 8,
3684 "source_fragment" : "gtpu.seq_flag = 0"
3685 }
3686 },
3687 {
3688 "op" : "assign",
3689 "parameters" : [
3690 {
3691 "type" : "field",
3692 "value" : ["gtpu", "npdu_flag"]
3693 },
3694 {
3695 "type" : "hexstr",
3696 "value" : "0x00"
3697 }
3698 ],
3699 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003700 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003701 "line" : 220,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003702 "column" : 8,
3703 "source_fragment" : "gtpu.npdu_flag = 0"
3704 }
3705 },
3706 {
3707 "op" : "assign",
3708 "parameters" : [
3709 {
3710 "type" : "field",
3711 "value" : ["gtpu", "msgtype"]
3712 },
3713 {
3714 "type" : "hexstr",
3715 "value" : "0xff"
3716 }
3717 ],
3718 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003719 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003720 "line" : 221,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003721 "column" : 8,
3722 "source_fragment" : "gtpu.msgtype = 0xff"
3723 }
3724 },
3725 {
3726 "op" : "assign",
3727 "parameters" : [
3728 {
3729 "type" : "field",
3730 "value" : ["gtpu", "msglen"]
3731 },
3732 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003733 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003734 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len17"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003735 }
3736 ],
3737 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003738 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003739 "line" : 222,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003740 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003741 "source_fragment" : "gtpu.msglen = fabric_meta.spgw.ipv4_len; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003742 }
3743 },
3744 {
3745 "op" : "assign",
3746 "parameters" : [
3747 {
3748 "type" : "field",
3749 "value" : ["gtpu", "teid"]
3750 },
3751 {
3752 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003753 "value" : ["scalars", "fabric_metadata_t._spgw_teid18"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003754 }
3755 ],
3756 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003757 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003758 "line" : 223,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003759 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003760 "source_fragment" : "gtpu.teid = fabric_meta.spgw.teid; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003761 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003762 }
3763 ]
3764 },
3765 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003766 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
3767 "id" : 53,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003768 "runtime_data" : [],
3769 "primitives" : [
3770 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003771 "op" : "remove_header",
3772 "parameters" : [
3773 {
3774 "type" : "header",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003775 "value" : "mpls"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003776 }
3777 ],
3778 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003779 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003780 "line" : 252,
Yi Tseng47eac892018-07-11 02:17:04 +08003781 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003782 "source_fragment" : "hdr.mpls.setInvalid()"
Yi Tseng47eac892018-07-11 02:17:04 +08003783 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003784 },
Yi Tseng47eac892018-07-11 02:17:04 +08003785 {
3786 "op" : "assign",
3787 "parameters" : [
3788 {
3789 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003790 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Yi Tseng47eac892018-07-11 02:17:04 +08003791 },
3792 {
3793 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003794 "value" : ["scalars", "fabric_metadata_t._ip_eth_type1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003795 }
3796 ],
3797 "source_info" : {
3798 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003799 "line" : 254,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003800 "column" : 33,
3801 "source_fragment" : "= fabric_metadata.ip_eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003802 }
3803 }
3804 ]
3805 },
3806 {
3807 "name" : "FabricEgress.egress_next.set_mpls",
3808 "id" : 54,
3809 "runtime_data" : [],
3810 "primitives" : [
3811 {
3812 "op" : "add_header",
3813 "parameters" : [
3814 {
3815 "type" : "header",
3816 "value" : "mpls"
Yi Tseng47eac892018-07-11 02:17:04 +08003817 }
3818 ],
3819 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003820 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003821 "line" : 259,
Yi Tseng47eac892018-07-11 02:17:04 +08003822 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003823 "source_fragment" : "hdr.mpls.setValid()"
3824 }
3825 },
3826 {
3827 "op" : "assign",
3828 "parameters" : [
3829 {
3830 "type" : "field",
3831 "value" : ["mpls", "label"]
3832 },
3833 {
3834 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003835 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003836 }
3837 ],
3838 "source_info" : {
3839 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003840 "line" : 260,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003841 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003842 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003843 }
3844 },
3845 {
3846 "op" : "assign",
3847 "parameters" : [
3848 {
3849 "type" : "field",
3850 "value" : ["mpls", "tc"]
3851 },
3852 {
3853 "type" : "hexstr",
3854 "value" : "0x00"
3855 }
3856 ],
3857 "source_info" : {
3858 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003859 "line" : 261,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003860 "column" : 8,
3861 "source_fragment" : "hdr.mpls.tc = 3w0"
3862 }
3863 },
3864 {
3865 "op" : "assign",
3866 "parameters" : [
3867 {
3868 "type" : "field",
3869 "value" : ["mpls", "bos"]
3870 },
3871 {
3872 "type" : "hexstr",
3873 "value" : "0x01"
3874 }
3875 ],
3876 "source_info" : {
3877 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003878 "line" : 262,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003879 "column" : 8,
3880 "source_fragment" : "hdr.mpls.bos = 1w1"
3881 }
3882 },
3883 {
3884 "op" : "assign",
3885 "parameters" : [
3886 {
3887 "type" : "field",
3888 "value" : ["mpls", "ttl"]
3889 },
3890 {
3891 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003892 "value" : ["scalars", "fabric_metadata_t._mpls_ttl6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003893 }
3894 ],
3895 "source_info" : {
3896 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003897 "line" : 263,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003898 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003899 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003900 }
3901 },
3902 {
3903 "op" : "assign",
3904 "parameters" : [
3905 {
3906 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003907 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003908 },
3909 {
3910 "type" : "hexstr",
3911 "value" : "0x8847"
3912 }
3913 ],
3914 "source_info" : {
3915 "filename" : "include/control/../define.p4",
3916 "line" : 108,
3917 "column" : 31,
3918 "source_fragment" : "0x8847; ..."
3919 }
3920 }
3921 ]
3922 },
3923 {
3924 "name" : "FabricEgress.egress_next.push_vlan",
3925 "id" : 55,
3926 "runtime_data" : [],
3927 "primitives" : [
3928 {
3929 "op" : "add_header",
3930 "parameters" : [
3931 {
3932 "type" : "header",
3933 "value" : "vlan_tag"
3934 }
3935 ],
3936 "source_info" : {
3937 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003938 "line" : 271,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003939 "column" : 8,
3940 "source_fragment" : "hdr.vlan_tag.setValid()"
3941 }
3942 },
3943 {
3944 "op" : "assign",
3945 "parameters" : [
3946 {
3947 "type" : "field",
3948 "value" : ["vlan_tag", "cfi"]
3949 },
3950 {
3951 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003952 "value" : ["scalars", "fabric_metadata_t._vlan_cfi4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003953 }
3954 ],
3955 "source_info" : {
3956 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003957 "line" : 272,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003958 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003959 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003960 }
3961 },
3962 {
3963 "op" : "assign",
3964 "parameters" : [
3965 {
3966 "type" : "field",
3967 "value" : ["vlan_tag", "pri"]
3968 },
3969 {
3970 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003971 "value" : ["scalars", "fabric_metadata_t._vlan_pri3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003972 }
3973 ],
3974 "source_info" : {
3975 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003976 "line" : 273,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003977 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003978 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003979 }
3980 },
3981 {
3982 "op" : "assign",
3983 "parameters" : [
3984 {
3985 "type" : "field",
3986 "value" : ["vlan_tag", "eth_type"]
3987 },
3988 {
3989 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003990 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003991 }
3992 ],
3993 "source_info" : {
3994 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003995 "line" : 274,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003996 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003997 "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003998 }
3999 },
4000 {
4001 "op" : "assign",
4002 "parameters" : [
4003 {
4004 "type" : "field",
4005 "value" : ["vlan_tag", "vlan_id"]
4006 },
4007 {
4008 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004009 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004010 }
4011 ],
4012 "source_info" : {
4013 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004014 "line" : 275,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004015 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004016 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004017 }
4018 },
4019 {
4020 "op" : "assign",
4021 "parameters" : [
4022 {
4023 "type" : "field",
4024 "value" : ["ethernet", "eth_type"]
4025 },
4026 {
4027 "type" : "hexstr",
4028 "value" : "0x8100"
4029 }
4030 ],
4031 "source_info" : {
4032 "filename" : "include/control/../define.p4",
4033 "line" : 107,
4034 "column" : 31,
4035 "source_fragment" : "0x8100; ..."
4036 }
4037 }
4038 ]
4039 },
4040 {
4041 "name" : "FabricEgress.egress_next.pop_vlan",
4042 "id" : 56,
4043 "runtime_data" : [],
4044 "primitives" : [
4045 {
4046 "op" : "assign",
4047 "parameters" : [
4048 {
4049 "type" : "field",
4050 "value" : ["ethernet", "eth_type"]
4051 },
4052 {
4053 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004054 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004055 }
4056 ],
4057 "source_info" : {
4058 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004059 "line" : 286,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004060 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004061 "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.eth_type; ..."
Yi Tseng47eac892018-07-11 02:17:04 +08004062 }
4063 },
4064 {
4065 "op" : "remove_header",
4066 "parameters" : [
4067 {
4068 "type" : "header",
4069 "value" : "vlan_tag"
4070 }
4071 ],
4072 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004073 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004074 "line" : 287,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004075 "column" : 8,
4076 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4077 }
4078 }
4079 ]
4080 },
4081 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004082 "name" : "act_19",
4083 "id" : 57,
4084 "runtime_data" : [],
4085 "primitives" : [
4086 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004087 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004088 "parameters" : [],
4089 "source_info" : {
4090 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004091 "line" : 41,
4092 "column" : 12,
4093 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004094 }
4095 }
4096 ]
4097 },
4098 {
4099 "name" : "act_20",
4100 "id" : 58,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004101 "runtime_data" : [],
4102 "primitives" : [
4103 {
4104 "op" : "add_header",
4105 "parameters" : [
4106 {
4107 "type" : "header",
4108 "value" : "packet_in"
4109 }
4110 ],
4111 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004112 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004113 "line" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004114 "column" : 12,
4115 "source_fragment" : "hdr.packet_in.setValid()"
4116 }
4117 },
4118 {
4119 "op" : "assign",
4120 "parameters" : [
4121 {
4122 "type" : "field",
4123 "value" : ["packet_in", "ingress_port"]
4124 },
4125 {
4126 "type" : "field",
4127 "value" : ["standard_metadata", "ingress_port"]
4128 }
4129 ],
4130 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004131 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004132 "line" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004133 "column" : 12,
4134 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4135 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004136 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004137 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004138 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004139 "parameters" : [],
4140 "source_info" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004141 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004142 "line" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004143 "column" : 12,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004144 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004145 }
4146 }
4147 ]
4148 },
4149 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004150 "name" : "act_21",
4151 "id" : 59,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004152 "runtime_data" : [],
4153 "primitives" : [
4154 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004155 "op" : "mark_to_drop",
4156 "parameters" : [
4157 {
4158 "type" : "header",
4159 "value" : "standard_metadata"
4160 }
4161 ],
4162 "source_info" : {
4163 "filename" : "include/control/next.p4",
4164 "line" : 308,
4165 "column" : 12,
4166 "source_fragment" : "mark_to_drop(standard_metadata)"
4167 }
4168 }
4169 ]
4170 },
4171 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004172 "name" : "act_22",
4173 "id" : 60,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004174 "runtime_data" : [],
4175 "primitives" : [
4176 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004177 "op" : "assign",
4178 "parameters" : [
4179 {
4180 "type" : "field",
4181 "value" : ["scalars", "egress_next_tmp"]
4182 },
4183 {
4184 "type" : "expression",
4185 "value" : {
4186 "type" : "expression",
4187 "value" : {
4188 "op" : "b2d",
4189 "left" : null,
4190 "right" : {
4191 "type" : "bool",
4192 "value" : true
4193 }
4194 }
4195 }
4196 }
4197 ]
4198 }
4199 ]
4200 },
4201 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004202 "name" : "act_23",
4203 "id" : 61,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004204 "runtime_data" : [],
4205 "primitives" : [
4206 {
4207 "op" : "assign",
4208 "parameters" : [
4209 {
4210 "type" : "field",
4211 "value" : ["scalars", "egress_next_tmp"]
4212 },
4213 {
4214 "type" : "expression",
4215 "value" : {
4216 "type" : "expression",
4217 "value" : {
4218 "op" : "b2d",
4219 "left" : null,
4220 "right" : {
4221 "type" : "bool",
4222 "value" : false
4223 }
4224 }
4225 }
4226 }
4227 ]
4228 }
4229 ]
4230 },
4231 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004232 "name" : "act_24",
4233 "id" : 62,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004234 "runtime_data" : [],
4235 "primitives" : [
4236 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004237 "op" : "mark_to_drop",
4238 "parameters" : [
4239 {
4240 "type" : "header",
4241 "value" : "standard_metadata"
4242 }
4243 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004244 "source_info" : {
4245 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004246 "line" : 327,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004247 "column" : 35,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004248 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004249 }
4250 }
4251 ]
4252 },
4253 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004254 "name" : "act_25",
4255 "id" : 63,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004256 "runtime_data" : [],
4257 "primitives" : [
4258 {
4259 "op" : "assign",
4260 "parameters" : [
4261 {
4262 "type" : "field",
4263 "value" : ["mpls", "ttl"]
4264 },
4265 {
4266 "type" : "expression",
4267 "value" : {
4268 "type" : "expression",
4269 "value" : {
4270 "op" : "&",
4271 "left" : {
4272 "type" : "expression",
4273 "value" : {
4274 "op" : "+",
4275 "left" : {
4276 "type" : "field",
4277 "value" : ["mpls", "ttl"]
4278 },
4279 "right" : {
4280 "type" : "hexstr",
4281 "value" : "0xff"
4282 }
4283 }
4284 },
4285 "right" : {
4286 "type" : "hexstr",
4287 "value" : "0xff"
4288 }
4289 }
4290 }
4291 }
4292 ],
4293 "source_info" : {
4294 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004295 "line" : 326,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004296 "column" : 12,
4297 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
4298 }
4299 }
4300 ]
4301 },
4302 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004303 "name" : "act_26",
4304 "id" : 64,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004305 "runtime_data" : [],
4306 "primitives" : [
4307 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004308 "op" : "mark_to_drop",
4309 "parameters" : [
4310 {
4311 "type" : "header",
4312 "value" : "standard_metadata"
4313 }
4314 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004315 "source_info" : {
4316 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004317 "line" : 331,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004318 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004319 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004320 }
4321 }
4322 ]
4323 },
4324 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004325 "name" : "act_27",
4326 "id" : 65,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004327 "runtime_data" : [],
4328 "primitives" : [
4329 {
4330 "op" : "assign",
4331 "parameters" : [
4332 {
4333 "type" : "field",
4334 "value" : ["ipv4", "ttl"]
4335 },
4336 {
4337 "type" : "expression",
4338 "value" : {
4339 "type" : "expression",
4340 "value" : {
4341 "op" : "&",
4342 "left" : {
4343 "type" : "expression",
4344 "value" : {
4345 "op" : "+",
4346 "left" : {
4347 "type" : "field",
4348 "value" : ["ipv4", "ttl"]
4349 },
4350 "right" : {
4351 "type" : "hexstr",
4352 "value" : "0xff"
4353 }
4354 }
4355 },
4356 "right" : {
4357 "type" : "hexstr",
4358 "value" : "0xff"
4359 }
4360 }
4361 }
4362 }
4363 ],
4364 "source_info" : {
4365 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004366 "line" : 330,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004367 "column" : 16,
4368 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
4369 }
4370 }
4371 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004372 }
4373 ],
4374 "pipelines" : [
4375 {
4376 "name" : "ingress",
4377 "id" : 0,
4378 "source_info" : {
4379 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004380 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004381 "column" : 8,
4382 "source_fragment" : "FabricIngress"
4383 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004384 "init_table" : "tbl_act",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004385 "tables" : [
4386 {
4387 "name" : "tbl_act",
4388 "id" : 0,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004389 "source_info" : {
4390 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004391 "line" : 62,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004392 "column" : 50,
4393 "source_fragment" : "hdr.gtpu_ipv4, hdr.gtpu_udp"
4394 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004395 "key" : [],
4396 "match_type" : "exact",
4397 "type" : "simple",
4398 "max_size" : 1024,
4399 "with_counters" : false,
4400 "support_timeout" : false,
4401 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004402 "action_ids" : [32],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004403 "actions" : ["act_0"],
4404 "base_default_next" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004405 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004406 "act_0" : "node_3"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004407 },
4408 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004409 "action_id" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004410 "action_const" : true,
4411 "action_data" : [],
4412 "action_entry_const" : true
4413 }
4414 },
4415 {
4416 "name" : "tbl_act_0",
4417 "id" : 1,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004418 "source_info" : {
4419 "filename" : "include/spgw.p4",
4420 "line" : 30,
4421 "column" : 32,
4422 "source_fragment" : "return"
4423 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004424 "key" : [],
4425 "match_type" : "exact",
4426 "type" : "simple",
4427 "max_size" : 1024,
4428 "with_counters" : false,
4429 "support_timeout" : false,
4430 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004431 "action_ids" : [31],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004432 "actions" : ["act"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004433 "base_default_next" : "node_5",
4434 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004435 "act" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004436 },
4437 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004438 "action_id" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004439 "action_const" : true,
4440 "action_data" : [],
4441 "action_entry_const" : true
4442 }
4443 },
4444 {
4445 "name" : "tbl_act_1",
4446 "id" : 2,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004447 "source_info" : {
4448 "filename" : "include/spgw.p4",
4449 "line" : 31,
4450 "column" : 18,
4451 "source_fragment" : "= ipv4; ..."
4452 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004453 "key" : [],
4454 "match_type" : "exact",
4455 "type" : "simple",
4456 "max_size" : 1024,
4457 "with_counters" : false,
4458 "support_timeout" : false,
4459 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004460 "action_ids" : [35],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004461 "actions" : ["act_3"],
4462 "base_default_next" : "node_7",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004463 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004464 "act_3" : "node_7"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004465 },
4466 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004467 "action_id" : 35,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004468 "action_const" : true,
4469 "action_data" : [],
4470 "action_entry_const" : true
4471 }
4472 },
4473 {
4474 "name" : "tbl_act_2",
4475 "id" : 3,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004476 "source_info" : {
4477 "filename" : "include/spgw.p4",
4478 "line" : 35,
4479 "column" : 16,
4480 "source_fragment" : "="
4481 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004482 "key" : [],
4483 "match_type" : "exact",
4484 "type" : "simple",
4485 "max_size" : 1024,
4486 "with_counters" : false,
4487 "support_timeout" : false,
4488 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004489 "action_ids" : [33],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004490 "actions" : ["act_1"],
4491 "base_default_next" : "node_10",
4492 "next_tables" : {
4493 "act_1" : "node_10"
4494 },
4495 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004496 "action_id" : 33,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004497 "action_const" : true,
4498 "action_data" : [],
4499 "action_entry_const" : true
4500 }
4501 },
4502 {
4503 "name" : "tbl_act_3",
4504 "id" : 4,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004505 "source_info" : {
4506 "filename" : "include/spgw.p4",
4507 "line" : 37,
4508 "column" : 12,
4509 "source_fragment" : "udp.setInvalid()"
4510 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004511 "key" : [],
4512 "match_type" : "exact",
4513 "type" : "simple",
4514 "max_size" : 1024,
4515 "with_counters" : false,
4516 "support_timeout" : false,
4517 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004518 "action_ids" : [34],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004519 "actions" : ["act_2"],
4520 "base_default_next" : "node_10",
4521 "next_tables" : {
4522 "act_2" : "node_10"
4523 },
4524 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004525 "action_id" : 34,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004526 "action_const" : true,
4527 "action_data" : [],
4528 "action_entry_const" : true
4529 }
4530 },
4531 {
4532 "name" : "tbl_act_4",
4533 "id" : 5,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004534 "source_info" : {
4535 "filename" : "include/control/packetio.p4",
4536 "line" : 25,
4537 "column" : 42,
4538 "source_fragment" : "= hdr.packet_out.egress_port; ..."
4539 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004540 "key" : [],
4541 "match_type" : "exact",
4542 "type" : "simple",
4543 "max_size" : 1024,
4544 "with_counters" : false,
4545 "support_timeout" : false,
4546 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004547 "action_ids" : [36],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004548 "actions" : ["act_4"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004549 "base_default_next" : "node_12",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004550 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004551 "act_4" : "node_12"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004552 },
4553 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004554 "action_id" : 36,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004555 "action_const" : true,
4556 "action_data" : [],
4557 "action_entry_const" : true
4558 }
4559 },
4560 {
4561 "name" : "tbl_act_5",
4562 "id" : 6,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004563 "source_info" : {
4564 "filename" : "include/control/filtering.p4",
4565 "line" : 105,
4566 "column" : 37,
4567 "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
4568 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004569 "key" : [],
4570 "match_type" : "exact",
4571 "type" : "simple",
4572 "max_size" : 1024,
4573 "with_counters" : false,
4574 "support_timeout" : false,
4575 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004576 "action_ids" : [37],
4577 "actions" : ["act_5"],
4578 "base_default_next" : "node_14",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004579 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004580 "act_5" : "node_14"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004581 },
4582 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004583 "action_id" : 37,
4584 "action_const" : true,
4585 "action_data" : [],
4586 "action_entry_const" : true
4587 }
4588 },
4589 {
4590 "name" : "tbl_act_6",
4591 "id" : 7,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004592 "source_info" : {
4593 "filename" : "include/control/filtering.p4",
4594 "line" : 115,
4595 "column" : 37,
4596 "source_fragment" : "="
4597 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004598 "key" : [],
4599 "match_type" : "exact",
4600 "type" : "simple",
4601 "max_size" : 1024,
4602 "with_counters" : false,
4603 "support_timeout" : false,
4604 "direct_meters" : null,
4605 "action_ids" : [38],
4606 "actions" : ["act_6"],
4607 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
4608 "next_tables" : {
4609 "act_6" : "FabricIngress.filtering.ingress_port_vlan"
4610 },
4611 "default_entry" : {
4612 "action_id" : 38,
4613 "action_const" : true,
4614 "action_data" : [],
4615 "action_entry_const" : true
4616 }
4617 },
4618 {
4619 "name" : "FabricIngress.filtering.ingress_port_vlan",
4620 "id" : 8,
4621 "source_info" : {
4622 "filename" : "include/control/filtering.p4",
4623 "line" : 51,
4624 "column" : 10,
4625 "source_fragment" : "ingress_port_vlan"
4626 },
4627 "key" : [
4628 {
4629 "match_type" : "exact",
4630 "name" : "ig_port",
4631 "target" : ["standard_metadata", "ingress_port"],
4632 "mask" : null
4633 },
4634 {
4635 "match_type" : "exact",
4636 "name" : "vlan_is_valid",
4637 "target" : ["vlan_tag", "$valid$"],
4638 "mask" : null
4639 },
4640 {
4641 "match_type" : "ternary",
4642 "name" : "vlan_id",
4643 "target" : ["vlan_tag", "vlan_id"],
4644 "mask" : null
4645 }
4646 ],
4647 "match_type" : "ternary",
4648 "type" : "simple",
4649 "max_size" : 1024,
4650 "with_counters" : true,
4651 "support_timeout" : false,
4652 "direct_meters" : null,
4653 "action_ids" : [11, 12, 13],
4654 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
4655 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
4656 "next_tables" : {
4657 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
4658 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
4659 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
4660 },
4661 "default_entry" : {
4662 "action_id" : 11,
4663 "action_const" : true,
4664 "action_data" : [],
4665 "action_entry_const" : true
4666 }
4667 },
4668 {
4669 "name" : "FabricIngress.filtering.fwd_classifier",
4670 "id" : 9,
4671 "source_info" : {
4672 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004673 "line" : 87,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004674 "column" : 10,
4675 "source_fragment" : "fwd_classifier"
4676 },
4677 "key" : [
4678 {
4679 "match_type" : "exact",
4680 "name" : "ig_port",
4681 "target" : ["standard_metadata", "ingress_port"],
4682 "mask" : null
4683 },
4684 {
4685 "match_type" : "ternary",
4686 "name" : "eth_dst",
4687 "target" : ["ethernet", "dst_addr"],
4688 "mask" : null
4689 },
4690 {
4691 "match_type" : "exact",
4692 "name" : "eth_type",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004693 "target" : ["scalars", "fabric_metadata_t._eth_type0"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004694 "mask" : null
4695 }
4696 ],
4697 "match_type" : "ternary",
4698 "type" : "simple",
4699 "max_size" : 1024,
4700 "with_counters" : true,
4701 "support_timeout" : false,
4702 "direct_meters" : null,
4703 "action_ids" : [14],
4704 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
4705 "base_default_next" : "tbl_act_7",
4706 "next_tables" : {
4707 "FabricIngress.filtering.set_forwarding_type" : "tbl_act_7"
4708 },
4709 "default_entry" : {
4710 "action_id" : 14,
4711 "action_const" : true,
4712 "action_data" : ["0x0"],
4713 "action_entry_const" : true
4714 }
4715 },
4716 {
4717 "name" : "tbl_act_7",
4718 "id" : 10,
4719 "key" : [],
4720 "match_type" : "exact",
4721 "type" : "simple",
4722 "max_size" : 1024,
4723 "with_counters" : false,
4724 "support_timeout" : false,
4725 "direct_meters" : null,
4726 "action_ids" : [47],
4727 "actions" : ["act_15"],
4728 "base_default_next" : "node_19",
4729 "next_tables" : {
4730 "act_15" : "node_19"
4731 },
4732 "default_entry" : {
4733 "action_id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004734 "action_const" : true,
4735 "action_data" : [],
4736 "action_entry_const" : true
4737 }
4738 },
4739 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004740 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004741 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004742 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004743 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004744 "line" : 83,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004745 "column" : 10,
4746 "source_fragment" : "s1u_filter_table"
4747 },
4748 "key" : [
4749 {
4750 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004751 "name" : "gtp_ipv4_dst",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004752 "target" : ["gtpu_ipv4", "dst_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004753 "mask" : null
4754 }
4755 ],
4756 "match_type" : "exact",
4757 "type" : "simple",
4758 "max_size" : 1024,
4759 "with_counters" : false,
4760 "support_timeout" : false,
4761 "direct_meters" : null,
4762 "action_ids" : [1],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004763 "actions" : ["nop"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004764 "base_default_next" : null,
4765 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004766 "__HIT__" : "tbl_act_8",
4767 "__MISS__" : "tbl_act_9"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004768 },
4769 "default_entry" : {
4770 "action_id" : 1,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004771 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004772 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004773 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004774 }
4775 },
4776 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004777 "name" : "tbl_act_8",
4778 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004779 "key" : [],
4780 "match_type" : "exact",
4781 "type" : "simple",
4782 "max_size" : 1024,
4783 "with_counters" : false,
4784 "support_timeout" : false,
4785 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004786 "action_ids" : [39],
4787 "actions" : ["act_7"],
4788 "base_default_next" : "node_23",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004789 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004790 "act_7" : "node_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004791 },
4792 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004793 "action_id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004794 "action_const" : true,
4795 "action_data" : [],
4796 "action_entry_const" : true
4797 }
4798 },
4799 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004800 "name" : "tbl_act_9",
4801 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004802 "key" : [],
4803 "match_type" : "exact",
4804 "type" : "simple",
4805 "max_size" : 1024,
4806 "with_counters" : false,
4807 "support_timeout" : false,
4808 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004809 "action_ids" : [40],
4810 "actions" : ["act_8"],
4811 "base_default_next" : "node_23",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004812 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004813 "act_8" : "node_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004814 },
4815 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004816 "action_id" : 40,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004817 "action_const" : true,
4818 "action_data" : [],
4819 "action_entry_const" : true
4820 }
4821 },
4822 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004823 "name" : "tbl_act_10",
4824 "id" : 14,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004825 "source_info" : {
4826 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004827 "line" : 149,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004828 "column" : 16,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004829 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07004830 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004831 "key" : [],
4832 "match_type" : "exact",
4833 "type" : "simple",
4834 "max_size" : 1024,
4835 "with_counters" : false,
4836 "support_timeout" : false,
4837 "direct_meters" : null,
4838 "action_ids" : [41],
4839 "actions" : ["act_9"],
4840 "base_default_next" : "tbl_act_11",
4841 "next_tables" : {
4842 "act_9" : "tbl_act_11"
4843 },
4844 "default_entry" : {
4845 "action_id" : 41,
4846 "action_const" : true,
4847 "action_data" : [],
4848 "action_entry_const" : true
4849 }
4850 },
4851 {
4852 "name" : "tbl_act_11",
4853 "id" : 15,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004854 "source_info" : {
4855 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004856 "line" : 151,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004857 "column" : 39,
4858 "source_fragment" : "="
4859 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004860 "key" : [],
4861 "match_type" : "exact",
4862 "type" : "simple",
4863 "max_size" : 1024,
4864 "with_counters" : false,
4865 "support_timeout" : false,
4866 "direct_meters" : null,
4867 "action_ids" : [42],
4868 "actions" : ["act_10"],
4869 "base_default_next" : "tbl_spgw_ingress_gtpu_decap",
4870 "next_tables" : {
4871 "act_10" : "tbl_spgw_ingress_gtpu_decap"
4872 },
4873 "default_entry" : {
4874 "action_id" : 42,
4875 "action_const" : true,
4876 "action_data" : [],
4877 "action_entry_const" : true
4878 }
4879 },
4880 {
4881 "name" : "tbl_spgw_ingress_gtpu_decap",
4882 "id" : 16,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004883 "source_info" : {
4884 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004885 "line" : 152,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004886 "column" : 12,
4887 "source_fragment" : "gtpu_decap()"
4888 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004889 "key" : [],
4890 "match_type" : "exact",
4891 "type" : "simple",
4892 "max_size" : 1024,
4893 "with_counters" : false,
4894 "support_timeout" : false,
4895 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004896 "action_ids" : [9],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004897 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
4898 "base_default_next" : "node_33",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004899 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004900 "FabricIngress.spgw_ingress.gtpu_decap" : "node_33"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004901 },
4902 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004903 "action_id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004904 "action_const" : true,
4905 "action_data" : [],
4906 "action_entry_const" : true
4907 }
4908 },
4909 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004910 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004911 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004912 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004913 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004914 "line" : 70,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004915 "column" : 10,
4916 "source_fragment" : "dl_sess_lookup"
4917 },
4918 "key" : [
4919 {
4920 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004921 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004922 "target" : ["ipv4", "dst_addr"],
4923 "mask" : null
4924 }
4925 ],
4926 "match_type" : "exact",
4927 "type" : "simple",
4928 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004929 "with_counters" : true,
4930 "support_timeout" : false,
4931 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004932 "action_ids" : [10, 0],
4933 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "nop"],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004934 "base_default_next" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004935 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004936 "__HIT__" : "tbl_act_12",
4937 "__MISS__" : "tbl_act_13"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004938 },
4939 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004940 "action_id" : 0,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004941 "action_const" : true,
4942 "action_data" : [],
4943 "action_entry_const" : true
4944 }
4945 },
4946 {
4947 "name" : "tbl_act_12",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004948 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004949 "key" : [],
4950 "match_type" : "exact",
4951 "type" : "simple",
4952 "max_size" : 1024,
4953 "with_counters" : false,
4954 "support_timeout" : false,
4955 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004956 "action_ids" : [43],
4957 "actions" : ["act_11"],
4958 "base_default_next" : "node_30",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004959 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004960 "act_11" : "node_30"
Yi Tseng27b9bc02018-04-12 14:52:40 +08004961 },
4962 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004963 "action_id" : 43,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004964 "action_const" : true,
4965 "action_data" : [],
4966 "action_entry_const" : true
4967 }
4968 },
4969 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004970 "name" : "tbl_act_13",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004971 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004972 "key" : [],
4973 "match_type" : "exact",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004974 "type" : "simple",
4975 "max_size" : 1024,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004976 "with_counters" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004977 "support_timeout" : false,
4978 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004979 "action_ids" : [44],
4980 "actions" : ["act_12"],
4981 "base_default_next" : "node_30",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004982 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004983 "act_12" : "node_30"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004984 },
4985 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004986 "action_id" : 44,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004987 "action_const" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004988 "action_data" : [],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004989 "action_entry_const" : true
4990 }
4991 },
4992 {
4993 "name" : "tbl_act_14",
4994 "id" : 20,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004995 "source_info" : {
4996 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004997 "line" : 154,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004998 "column" : 39,
4999 "source_fragment" : "="
5000 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005001 "key" : [],
5002 "match_type" : "exact",
5003 "type" : "simple",
5004 "max_size" : 1024,
5005 "with_counters" : false,
5006 "support_timeout" : false,
5007 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005008 "action_ids" : [45],
5009 "actions" : ["act_13"],
5010 "base_default_next" : "node_33",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005011 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005012 "act_13" : "node_33"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005013 },
5014 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005015 "action_id" : 45,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005016 "action_const" : true,
5017 "action_data" : [],
5018 "action_entry_const" : true
5019 }
5020 },
5021 {
5022 "name" : "tbl_act_15",
5023 "id" : 21,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005024 "source_info" : {
5025 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005026 "line" : 156,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005027 "column" : 39,
5028 "source_fragment" : "= SPGW_DIR_UNKNOWN; ..."
5029 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005030 "key" : [],
5031 "match_type" : "exact",
5032 "type" : "simple",
5033 "max_size" : 1024,
5034 "with_counters" : false,
5035 "support_timeout" : false,
5036 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005037 "action_ids" : [46],
5038 "actions" : ["act_14"],
5039 "base_default_next" : "node_33",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005040 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005041 "act_14" : "node_33"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005042 },
5043 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005044 "action_id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005045 "action_const" : true,
5046 "action_data" : [],
5047 "action_entry_const" : true
5048 }
5049 },
5050 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005051 "name" : "tbl_act_16",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005052 "id" : 22,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005053 "source_info" : {
5054 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005055 "line" : 175,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005056 "column" : 34,
5057 "source_fragment" : "="
5058 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005059 "key" : [],
5060 "match_type" : "exact",
5061 "type" : "simple",
5062 "max_size" : 1024,
5063 "with_counters" : false,
5064 "support_timeout" : false,
5065 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005066 "action_ids" : [48],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005067 "actions" : ["act_16"],
5068 "base_default_next" : "node_35",
5069 "next_tables" : {
5070 "act_16" : "node_35"
5071 },
5072 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005073 "action_id" : 48,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005074 "action_const" : true,
5075 "action_data" : [],
5076 "action_entry_const" : true
5077 }
5078 },
5079 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005080 "name" : "FabricIngress.forwarding.bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005081 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005082 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005083 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005084 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005085 "column" : 10,
5086 "source_fragment" : "bridging"
5087 },
5088 "key" : [
5089 {
5090 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005091 "name" : "vlan_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005092 "target" : ["scalars", "fabric_metadata_t._vlan_id2"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005093 "mask" : null
5094 },
5095 {
5096 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005097 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005098 "target" : ["ethernet", "dst_addr"],
5099 "mask" : null
5100 }
5101 ],
5102 "match_type" : "ternary",
5103 "type" : "simple",
5104 "max_size" : 1024,
5105 "with_counters" : true,
5106 "support_timeout" : false,
5107 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005108 "action_ids" : [15, 2],
5109 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
5110 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005111 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005112 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.acl.acl",
5113 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005114 },
5115 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005116 "action_id" : 2,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005117 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005118 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005119 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005120 }
5121 },
5122 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005123 "name" : "FabricIngress.forwarding.mpls",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005124 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005125 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005126 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005127 "line" : 71,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005128 "column" : 10,
5129 "source_fragment" : "mpls"
5130 },
5131 "key" : [
5132 {
5133 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005134 "name" : "mpls_label",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005135 "target" : ["scalars", "fabric_metadata_t._mpls_label5"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005136 "mask" : null
5137 }
5138 ],
5139 "match_type" : "exact",
5140 "type" : "simple",
5141 "max_size" : 1024,
5142 "with_counters" : true,
5143 "support_timeout" : false,
5144 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005145 "action_ids" : [16, 3],
5146 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
5147 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005148 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005149 "FabricIngress.forwarding.pop_mpls_and_next" : "FabricIngress.acl.acl",
5150 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005151 },
5152 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005153 "action_id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005154 "action_const" : true,
5155 "action_data" : [],
5156 "action_entry_const" : true
5157 }
5158 },
5159 {
Charles Chan384aea22018-08-23 22:08:02 -07005160 "name" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005161 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005162 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005163 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005164 "line" : 101,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005165 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07005166 "source_fragment" : "routing_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005167 },
5168 "key" : [
5169 {
5170 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005171 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005172 "target" : ["ipv4", "dst_addr"],
5173 "mask" : null
5174 }
5175 ],
5176 "match_type" : "lpm",
5177 "type" : "simple",
5178 "max_size" : 1024,
5179 "with_counters" : true,
5180 "support_timeout" : false,
5181 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005182 "action_ids" : [17, 18, 4],
5183 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
5184 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005185 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005186 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.acl.acl",
5187 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.acl.acl",
5188 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005189 },
5190 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005191 "action_id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005192 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005193 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005194 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005195 }
5196 },
5197 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005198 "name" : "FabricIngress.acl.acl",
5199 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005200 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005201 "filename" : "include/control/acl.p4",
5202 "line" : 60,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005203 "column" : 10,
5204 "source_fragment" : "acl"
5205 },
5206 "key" : [
5207 {
5208 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005209 "name" : "ig_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005210 "target" : ["standard_metadata", "ingress_port"],
5211 "mask" : null
5212 },
5213 {
5214 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005215 "name" : "ip_proto",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005216 "target" : ["scalars", "fabric_metadata_t._ip_proto13"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005217 "mask" : null
5218 },
5219 {
5220 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005221 "name" : "l4_sport",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005222 "target" : ["scalars", "fabric_metadata_t._l4_sport14"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005223 "mask" : null
5224 },
5225 {
5226 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005227 "name" : "l4_dport",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005228 "target" : ["scalars", "fabric_metadata_t._l4_dport15"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005229 "mask" : null
5230 },
5231 {
5232 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005233 "name" : "eth_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005234 "target" : ["ethernet", "dst_addr"],
5235 "mask" : null
5236 },
5237 {
5238 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005239 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005240 "target" : ["ethernet", "src_addr"],
5241 "mask" : null
5242 },
5243 {
5244 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005245 "name" : "vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005246 "target" : ["vlan_tag", "vlan_id"],
5247 "mask" : null
5248 },
5249 {
5250 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005251 "name" : "eth_type",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005252 "target" : ["scalars", "fabric_metadata_t._eth_type0"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08005253 "mask" : null
5254 },
5255 {
5256 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005257 "name" : "ipv4_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005258 "target" : ["ipv4", "src_addr"],
5259 "mask" : null
5260 },
5261 {
5262 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005263 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005264 "target" : ["ipv4", "dst_addr"],
5265 "mask" : null
5266 },
5267 {
5268 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005269 "name" : "icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005270 "target" : ["icmp", "icmp_type"],
5271 "mask" : null
5272 },
5273 {
5274 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005275 "name" : "icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005276 "target" : ["icmp", "icmp_code"],
5277 "mask" : null
5278 }
5279 ],
5280 "match_type" : "ternary",
5281 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005282 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005283 "with_counters" : true,
5284 "support_timeout" : false,
5285 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005286 "action_ids" : [19, 20, 21, 22, 23],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005287 "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"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005288 "base_default_next" : "node_43",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005289 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005290 "FabricIngress.acl.set_next_id_acl" : "node_43",
5291 "FabricIngress.acl.punt_to_cpu" : "node_43",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005292 "FabricIngress.acl.set_clone_session_id" : "node_43",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005293 "FabricIngress.acl.drop" : "node_43",
5294 "FabricIngress.acl.nop_acl" : "node_43"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005295 },
5296 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005297 "action_id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005298 "action_const" : true,
5299 "action_data" : [],
5300 "action_entry_const" : true
5301 }
5302 },
5303 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005304 "name" : "FabricIngress.next.xconnect",
5305 "id" : 27,
5306 "source_info" : {
5307 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005308 "line" : 104,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005309 "column" : 10,
5310 "source_fragment" : "xconnect"
5311 },
5312 "key" : [
5313 {
5314 "match_type" : "exact",
5315 "name" : "ig_port",
5316 "target" : ["standard_metadata", "ingress_port"],
5317 "mask" : null
5318 },
5319 {
5320 "match_type" : "exact",
5321 "name" : "next_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005322 "target" : ["scalars", "fabric_metadata_t._next_id10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005323 "mask" : null
5324 }
5325 ],
5326 "match_type" : "exact",
5327 "type" : "simple",
5328 "max_size" : 1024,
5329 "with_counters" : true,
5330 "support_timeout" : false,
5331 "direct_meters" : null,
5332 "action_ids" : [25, 26, 6],
5333 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
5334 "base_default_next" : "FabricIngress.next.hashed",
5335 "next_tables" : {
5336 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
5337 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
5338 "nop" : "FabricIngress.next.hashed"
5339 },
5340 "default_entry" : {
5341 "action_id" : 6,
5342 "action_const" : true,
5343 "action_data" : [],
5344 "action_entry_const" : true
5345 }
5346 },
5347 {
5348 "name" : "FabricIngress.next.hashed",
5349 "id" : 28,
5350 "source_info" : {
5351 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005352 "line" : 184,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005353 "column" : 10,
5354 "source_fragment" : "hashed"
5355 },
5356 "key" : [
5357 {
5358 "match_type" : "exact",
5359 "name" : "next_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005360 "target" : ["scalars", "fabric_metadata_t._next_id10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005361 "mask" : null
5362 }
5363 ],
5364 "match_type" : "exact",
5365 "type" : "indirect_ws",
5366 "action_profile" : "FabricIngress.next.hashed_selector",
5367 "max_size" : 1024,
5368 "with_counters" : true,
5369 "support_timeout" : false,
5370 "direct_meters" : null,
5371 "action_ids" : [27, 28, 29, 7],
5372 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
5373 "base_default_next" : "FabricIngress.next.multicast",
5374 "next_tables" : {
5375 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
5376 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
5377 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
5378 "nop" : "FabricIngress.next.multicast"
5379 }
5380 },
5381 {
5382 "name" : "FabricIngress.next.multicast",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005383 "id" : 29,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005384 "source_info" : {
5385 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005386 "line" : 218,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005387 "column" : 10,
5388 "source_fragment" : "multicast"
5389 },
5390 "key" : [
5391 {
5392 "match_type" : "exact",
5393 "name" : "next_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005394 "target" : ["scalars", "fabric_metadata_t._next_id10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005395 "mask" : null
5396 }
5397 ],
5398 "match_type" : "exact",
5399 "type" : "simple",
5400 "max_size" : 1024,
5401 "with_counters" : true,
5402 "support_timeout" : false,
5403 "direct_meters" : null,
5404 "action_ids" : [30, 8],
5405 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
5406 "base_default_next" : "FabricIngress.next.next_vlan",
5407 "next_tables" : {
5408 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
5409 "nop" : "FabricIngress.next.next_vlan"
5410 },
5411 "default_entry" : {
5412 "action_id" : 8,
5413 "action_const" : true,
5414 "action_data" : [],
5415 "action_entry_const" : true
5416 }
5417 },
5418 {
5419 "name" : "FabricIngress.next.next_vlan",
5420 "id" : 30,
5421 "source_info" : {
5422 "filename" : "include/control/next.p4",
5423 "line" : 74,
5424 "column" : 10,
5425 "source_fragment" : "next_vlan"
5426 },
5427 "key" : [
5428 {
5429 "match_type" : "exact",
5430 "name" : "next_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005431 "target" : ["scalars", "fabric_metadata_t._next_id10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005432 "mask" : null
5433 }
5434 ],
5435 "match_type" : "exact",
5436 "type" : "simple",
5437 "max_size" : 1024,
5438 "with_counters" : true,
5439 "support_timeout" : false,
5440 "direct_meters" : null,
5441 "action_ids" : [24, 5],
5442 "actions" : ["FabricIngress.next.set_vlan", "nop"],
5443 "base_default_next" : "node_48",
5444 "next_tables" : {
5445 "FabricIngress.next.set_vlan" : "node_48",
5446 "nop" : "node_48"
5447 },
5448 "default_entry" : {
5449 "action_id" : 5,
5450 "action_const" : true,
5451 "action_data" : [],
5452 "action_entry_const" : true
5453 }
5454 },
5455 {
5456 "name" : "tbl_act_17",
5457 "id" : 31,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005458 "source_info" : {
5459 "filename" : "include/control/port_counter.p4",
5460 "line" : 31,
5461 "column" : 12,
5462 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
5463 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02005464 "key" : [],
5465 "match_type" : "exact",
5466 "type" : "simple",
5467 "max_size" : 1024,
5468 "with_counters" : false,
5469 "support_timeout" : false,
5470 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005471 "action_ids" : [49],
5472 "actions" : ["act_17"],
5473 "base_default_next" : "node_50",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005474 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005475 "act_17" : "node_50"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005476 },
5477 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005478 "action_id" : 49,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005479 "action_const" : true,
5480 "action_data" : [],
5481 "action_entry_const" : true
5482 }
5483 },
5484 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005485 "name" : "tbl_act_18",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005486 "id" : 32,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005487 "source_info" : {
5488 "filename" : "include/control/port_counter.p4",
5489 "line" : 34,
5490 "column" : 12,
5491 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
5492 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005493 "key" : [],
5494 "match_type" : "exact",
5495 "type" : "simple",
5496 "max_size" : 1024,
5497 "with_counters" : false,
5498 "support_timeout" : false,
5499 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005500 "action_ids" : [50],
5501 "actions" : ["act_18"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005502 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005503 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005504 "act_18" : null
Carmelo Casconea5400af2018-07-17 22:11:54 +02005505 },
5506 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005507 "action_id" : 50,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005508 "action_const" : true,
5509 "action_data" : [],
5510 "action_entry_const" : true
5511 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005512 }
5513 ],
5514 "action_profiles" : [
5515 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005516 "name" : "FabricIngress.next.hashed_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005517 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005518 "source_info" : {
5519 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005520 "line" : 165,
5521 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005522 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005523 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005524 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005525 "selector" : {
5526 "algo" : "crc16",
5527 "input" : [
5528 {
5529 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005530 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005531 },
5532 {
5533 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005534 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005535 },
5536 {
5537 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005538 "value" : ["scalars", "fabric_metadata_t._ip_proto13"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005539 },
5540 {
5541 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005542 "value" : ["scalars", "fabric_metadata_t._l4_sport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005543 },
5544 {
5545 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005546 "value" : ["scalars", "fabric_metadata_t._l4_dport15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005547 }
5548 ]
5549 }
5550 }
5551 ],
5552 "conditionals" : [
5553 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005554 "name" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005555 "id" : 0,
5556 "source_info" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005557 "filename" : "include/spgw.p4",
5558 "line" : 30,
5559 "column" : 12,
5560 "source_fragment" : "! is_gtpu_encapped"
5561 },
5562 "expression" : {
5563 "type" : "expression",
5564 "value" : {
5565 "op" : "not",
5566 "left" : null,
5567 "right" : {
5568 "type" : "expression",
5569 "value" : {
5570 "op" : "d2b",
5571 "left" : null,
5572 "right" : {
5573 "type" : "field",
5574 "value" : ["gtpu", "$valid$"]
5575 }
5576 }
5577 }
5578 }
5579 },
5580 "true_next" : "tbl_act_0",
5581 "false_next" : "node_5"
5582 },
5583 {
5584 "name" : "node_5",
5585 "id" : 1,
5586 "expression" : {
5587 "type" : "expression",
5588 "value" : {
5589 "op" : "not",
5590 "left" : null,
5591 "right" : {
5592 "type" : "expression",
5593 "value" : {
5594 "op" : "d2b",
5595 "left" : null,
5596 "right" : {
5597 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005598 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005599 }
5600 }
5601 }
5602 }
5603 },
5604 "true_next" : "tbl_act_1",
5605 "false_next" : "node_10"
5606 },
5607 {
5608 "name" : "node_7",
5609 "id" : 2,
5610 "source_info" : {
5611 "filename" : "include/spgw.p4",
5612 "line" : 34,
5613 "column" : 12,
5614 "source_fragment" : "inner_udp.isValid()"
5615 },
5616 "expression" : {
5617 "type" : "expression",
5618 "value" : {
5619 "op" : "d2b",
5620 "left" : null,
5621 "right" : {
5622 "type" : "field",
5623 "value" : ["inner_udp", "$valid$"]
5624 }
5625 }
5626 },
5627 "true_next" : "tbl_act_2",
5628 "false_next" : "tbl_act_3"
5629 },
5630 {
5631 "name" : "node_10",
5632 "id" : 3,
5633 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005634 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005635 "line" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005636 "column" : 12,
5637 "source_fragment" : "hdr.packet_out.isValid()"
5638 },
5639 "expression" : {
5640 "type" : "expression",
5641 "value" : {
5642 "op" : "d2b",
5643 "left" : null,
5644 "right" : {
5645 "type" : "field",
5646 "value" : ["packet_out", "$valid$"]
5647 }
5648 }
5649 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005650 "true_next" : "tbl_act_4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005651 "false_next" : "node_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005652 },
5653 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005654 "name" : "node_12",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005655 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005656 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005657 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005658 "line" : 104,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005659 "column" : 12,
5660 "source_fragment" : "hdr.vlan_tag.isValid()"
5661 },
5662 "expression" : {
5663 "type" : "expression",
5664 "value" : {
5665 "op" : "d2b",
5666 "left" : null,
5667 "right" : {
5668 "type" : "field",
5669 "value" : ["vlan_tag", "$valid$"]
5670 }
5671 }
5672 },
5673 "true_next" : "tbl_act_5",
5674 "false_next" : "node_14"
5675 },
5676 {
5677 "name" : "node_14",
5678 "id" : 5,
5679 "source_info" : {
5680 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005681 "line" : 110,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005682 "column" : 12,
5683 "source_fragment" : "!hdr.mpls.isValid()"
5684 },
5685 "expression" : {
5686 "type" : "expression",
5687 "value" : {
5688 "op" : "not",
5689 "left" : null,
5690 "right" : {
5691 "type" : "expression",
5692 "value" : {
5693 "op" : "d2b",
5694 "left" : null,
5695 "right" : {
5696 "type" : "field",
5697 "value" : ["mpls", "$valid$"]
5698 }
5699 }
5700 }
5701 }
5702 },
5703 "true_next" : "tbl_act_6",
5704 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
5705 },
5706 {
5707 "name" : "node_19",
5708 "id" : 6,
5709 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005710 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005711 "line" : 144,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005712 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005713 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005714 },
5715 "expression" : {
5716 "type" : "expression",
5717 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005718 "op" : "d2b",
5719 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005720 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005721 "type" : "field",
5722 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005723 }
5724 }
5725 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005726 "true_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
5727 "false_next" : "FabricIngress.spgw_ingress.dl_sess_lookup"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005728 },
5729 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005730 "name" : "node_23",
5731 "id" : 7,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005732 "source_info" : {
5733 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005734 "line" : 148,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005735 "column" : 16,
5736 "source_fragment" : "!s1u_filter_table.apply().hit"
5737 },
5738 "expression" : {
5739 "type" : "expression",
5740 "value" : {
5741 "op" : "not",
5742 "left" : null,
5743 "right" : {
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"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005751 }
5752 }
5753 }
5754 }
5755 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005756 "true_next" : "tbl_act_10",
5757 "false_next" : "tbl_act_11"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005758 },
5759 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005760 "name" : "node_30",
5761 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005762 "expression" : {
5763 "type" : "expression",
5764 "value" : {
5765 "op" : "d2b",
5766 "left" : null,
5767 "right" : {
5768 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005769 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005770 }
5771 }
5772 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005773 "true_next" : "tbl_act_14",
5774 "false_next" : "tbl_act_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005775 },
5776 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005777 "name" : "node_33",
5778 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005779 "expression" : {
5780 "type" : "expression",
5781 "value" : {
5782 "op" : "not",
5783 "left" : null,
5784 "right" : {
5785 "type" : "expression",
5786 "value" : {
5787 "op" : "d2b",
5788 "left" : null,
5789 "right" : {
5790 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005791 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005792 }
5793 }
5794 }
5795 }
5796 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005797 "true_next" : "tbl_act_16",
5798 "false_next" : "node_35"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005799 },
5800 {
5801 "name" : "node_35",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005802 "id" : 10,
5803 "source_info" : {
5804 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005805 "line" : 74,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005806 "column" : 12,
5807 "source_fragment" : "fabric_metadata.skip_forwarding == false"
5808 },
5809 "expression" : {
5810 "type" : "expression",
5811 "value" : {
5812 "op" : "==",
5813 "left" : {
5814 "type" : "expression",
5815 "value" : {
5816 "op" : "d2b",
5817 "left" : null,
5818 "right" : {
5819 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005820 "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005821 }
5822 }
5823 },
5824 "right" : {
5825 "type" : "bool",
5826 "value" : false
5827 }
5828 }
5829 },
5830 "true_next" : "node_36",
5831 "false_next" : "FabricIngress.acl.acl"
5832 },
5833 {
5834 "name" : "node_36",
5835 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005836 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005837 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005838 "line" : 141,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005839 "column" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005840 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
5841 },
5842 "expression" : {
5843 "type" : "expression",
5844 "value" : {
5845 "op" : "==",
5846 "left" : {
5847 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005848 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005849 },
5850 "right" : {
5851 "type" : "hexstr",
5852 "value" : "0x00"
5853 }
5854 }
5855 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005856 "true_next" : "FabricIngress.forwarding.bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005857 "false_next" : "node_38"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005858 },
5859 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005860 "name" : "node_38",
5861 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005862 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005863 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005864 "line" : 142,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005865 "column" : 17,
5866 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
5867 },
5868 "expression" : {
5869 "type" : "expression",
5870 "value" : {
5871 "op" : "==",
5872 "left" : {
5873 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005874 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005875 },
5876 "right" : {
5877 "type" : "hexstr",
5878 "value" : "0x01"
5879 }
5880 }
5881 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005882 "true_next" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005883 "false_next" : "node_40"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005884 },
5885 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005886 "name" : "node_40",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005887 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005888 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005889 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005890 "line" : 143,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005891 "column" : 17,
5892 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
5893 },
5894 "expression" : {
5895 "type" : "expression",
5896 "value" : {
5897 "op" : "==",
5898 "left" : {
5899 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005900 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005901 },
5902 "right" : {
5903 "type" : "hexstr",
5904 "value" : "0x02"
5905 }
5906 }
5907 },
Charles Chan384aea22018-08-23 22:08:02 -07005908 "true_next" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005909 "false_next" : "FabricIngress.acl.acl"
5910 },
5911 {
5912 "name" : "node_43",
5913 "id" : 14,
5914 "source_info" : {
5915 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005916 "line" : 78,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005917 "column" : 12,
5918 "source_fragment" : "fabric_metadata.skip_next == false"
5919 },
5920 "expression" : {
5921 "type" : "expression",
5922 "value" : {
5923 "op" : "==",
5924 "left" : {
5925 "type" : "expression",
5926 "value" : {
5927 "op" : "d2b",
5928 "left" : null,
5929 "right" : {
5930 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005931 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005932 }
5933 }
5934 },
5935 "right" : {
5936 "type" : "bool",
5937 "value" : false
5938 }
5939 }
5940 },
5941 "false_next" : null,
5942 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005943 },
5944 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005945 "name" : "node_48",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005946 "id" : 15,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005947 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005948 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005949 "line" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005950 "column" : 12,
5951 "source_fragment" : "standard_metadata.egress_spec < 511"
5952 },
5953 "expression" : {
5954 "type" : "expression",
5955 "value" : {
5956 "op" : "<",
5957 "left" : {
5958 "type" : "field",
5959 "value" : ["standard_metadata", "egress_spec"]
5960 },
5961 "right" : {
5962 "type" : "hexstr",
5963 "value" : "0x01ff"
5964 }
5965 }
5966 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005967 "true_next" : "tbl_act_17",
5968 "false_next" : "node_50"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005969 },
5970 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005971 "name" : "node_50",
5972 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005973 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005974 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005975 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005976 "column" : 12,
5977 "source_fragment" : "standard_metadata.ingress_port < 511"
5978 },
5979 "expression" : {
5980 "type" : "expression",
5981 "value" : {
5982 "op" : "<",
5983 "left" : {
5984 "type" : "field",
5985 "value" : ["standard_metadata", "ingress_port"]
5986 },
5987 "right" : {
5988 "type" : "hexstr",
5989 "value" : "0x01ff"
5990 }
5991 }
5992 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005993 "false_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005994 "true_next" : "tbl_act_18"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005995 }
5996 ]
5997 },
5998 {
5999 "name" : "egress",
6000 "id" : 1,
6001 "source_info" : {
6002 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006003 "line" : 92,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006004 "column" : 8,
6005 "source_fragment" : "FabricEgress"
6006 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006007 "init_table" : "node_54",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006008 "tables" : [
6009 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006010 "name" : "tbl_act_19",
6011 "id" : 33,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006012 "source_info" : {
6013 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006014 "line" : 41,
6015 "column" : 12,
6016 "source_fragment" : "exit"
Carmelo Cascone3032b872019-04-13 01:23:54 -07006017 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006018 "key" : [],
6019 "match_type" : "exact",
6020 "type" : "simple",
6021 "max_size" : 1024,
6022 "with_counters" : false,
6023 "support_timeout" : false,
6024 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006025 "action_ids" : [57],
6026 "actions" : ["act_19"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006027 "base_default_next" : "node_56",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006028 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006029 "act_19" : "node_56"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006030 },
6031 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006032 "action_id" : 57,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006033 "action_const" : true,
6034 "action_data" : [],
6035 "action_entry_const" : true
6036 }
6037 },
6038 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006039 "name" : "tbl_act_20",
6040 "id" : 34,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006041 "source_info" : {
6042 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006043 "line" : 44,
6044 "column" : 12,
6045 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07006046 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006047 "key" : [],
6048 "match_type" : "exact",
6049 "type" : "simple",
6050 "max_size" : 1024,
6051 "with_counters" : false,
6052 "support_timeout" : false,
6053 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006054 "action_ids" : [58],
6055 "actions" : ["act_20"],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006056 "base_default_next" : "node_58",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006057 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006058 "act_20" : "node_58"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006059 },
6060 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006061 "action_id" : 58,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006062 "action_const" : true,
6063 "action_data" : [],
6064 "action_entry_const" : true
6065 }
6066 },
6067 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006068 "name" : "tbl_act_21",
6069 "id" : 35,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006070 "source_info" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006071 "filename" : "include/control/next.p4",
6072 "line" : 308,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006073 "column" : 12,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006074 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07006075 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006076 "key" : [],
6077 "match_type" : "exact",
6078 "type" : "simple",
6079 "max_size" : 1024,
6080 "with_counters" : false,
6081 "support_timeout" : false,
6082 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006083 "action_ids" : [59],
6084 "actions" : ["act_21"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006085 "base_default_next" : "node_60",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006086 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006087 "act_21" : "node_60"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006088 },
6089 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006090 "action_id" : 59,
6091 "action_const" : true,
6092 "action_data" : [],
6093 "action_entry_const" : true
6094 }
6095 },
6096 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006097 "name" : "tbl_egress_next_pop_mpls_if_present",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006098 "id" : 36,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006099 "source_info" : {
6100 "filename" : "include/control/next.p4",
Carmelo Cascone3032b872019-04-13 01:23:54 -07006101 "line" : 312,
6102 "column" : 36,
6103 "source_fragment" : "pop_mpls_if_present()"
6104 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006105 "key" : [],
6106 "match_type" : "exact",
6107 "type" : "simple",
6108 "max_size" : 1024,
6109 "with_counters" : false,
6110 "support_timeout" : false,
6111 "direct_meters" : null,
6112 "action_ids" : [53],
6113 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
6114 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6115 "next_tables" : {
6116 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
6117 },
6118 "default_entry" : {
6119 "action_id" : 53,
6120 "action_const" : true,
6121 "action_data" : [],
6122 "action_entry_const" : true
6123 }
6124 },
6125 {
6126 "name" : "tbl_egress_next_set_mpls",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006127 "id" : 37,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006128 "source_info" : {
6129 "filename" : "include/control/next.p4",
6130 "line" : 314,
6131 "column" : 12,
6132 "source_fragment" : "set_mpls()"
6133 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006134 "key" : [],
6135 "match_type" : "exact",
6136 "type" : "simple",
6137 "max_size" : 1024,
6138 "with_counters" : false,
6139 "support_timeout" : false,
6140 "direct_meters" : null,
6141 "action_ids" : [54],
6142 "actions" : ["FabricEgress.egress_next.set_mpls"],
6143 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6144 "next_tables" : {
6145 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
6146 },
6147 "default_entry" : {
6148 "action_id" : 54,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006149 "action_const" : true,
6150 "action_data" : [],
6151 "action_entry_const" : true
6152 }
6153 },
6154 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006155 "name" : "FabricEgress.egress_next.egress_vlan",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006156 "id" : 38,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006157 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006158 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006159 "line" : 291,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006160 "column" : 10,
6161 "source_fragment" : "egress_vlan"
6162 },
6163 "key" : [
6164 {
6165 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006166 "name" : "vlan_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006167 "target" : ["scalars", "fabric_metadata_t._vlan_id2"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006168 "mask" : null
6169 },
6170 {
6171 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006172 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006173 "target" : ["standard_metadata", "egress_port"],
6174 "mask" : null
6175 }
6176 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006177 "match_type" : "exact",
6178 "type" : "simple",
6179 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08006180 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006181 "support_timeout" : false,
6182 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006183 "action_ids" : [56, 51],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006184 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006185 "base_default_next" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006186 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006187 "__HIT__" : "tbl_act_22",
6188 "__MISS__" : "tbl_act_23"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006189 },
6190 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006191 "action_id" : 51,
6192 "action_const" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006193 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006194 "action_entry_const" : true
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006195 }
6196 },
6197 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006198 "name" : "tbl_act_22",
6199 "id" : 39,
6200 "key" : [],
6201 "match_type" : "exact",
6202 "type" : "simple",
6203 "max_size" : 1024,
6204 "with_counters" : false,
6205 "support_timeout" : false,
6206 "direct_meters" : null,
6207 "action_ids" : [60],
6208 "actions" : ["act_22"],
6209 "base_default_next" : "node_67",
6210 "next_tables" : {
6211 "act_22" : "node_67"
6212 },
6213 "default_entry" : {
6214 "action_id" : 60,
6215 "action_const" : true,
6216 "action_data" : [],
6217 "action_entry_const" : true
6218 }
6219 },
6220 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006221 "name" : "tbl_act_23",
6222 "id" : 40,
6223 "key" : [],
6224 "match_type" : "exact",
6225 "type" : "simple",
6226 "max_size" : 1024,
6227 "with_counters" : false,
6228 "support_timeout" : false,
6229 "direct_meters" : null,
6230 "action_ids" : [61],
6231 "actions" : ["act_23"],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006232 "base_default_next" : "node_67",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006233 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006234 "act_23" : "node_67"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006235 },
6236 "default_entry" : {
6237 "action_id" : 61,
6238 "action_const" : true,
6239 "action_data" : [],
6240 "action_entry_const" : true
6241 }
6242 },
6243 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006244 "name" : "tbl_egress_next_push_vlan",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006245 "id" : 41,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006246 "source_info" : {
6247 "filename" : "include/control/next.p4",
6248 "line" : 320,
6249 "column" : 16,
6250 "source_fragment" : "push_vlan()"
6251 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006252 "key" : [],
6253 "match_type" : "exact",
6254 "type" : "simple",
6255 "max_size" : 1024,
6256 "with_counters" : false,
6257 "support_timeout" : false,
6258 "direct_meters" : null,
6259 "action_ids" : [55],
6260 "actions" : ["FabricEgress.egress_next.push_vlan"],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006261 "base_default_next" : "node_70",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006262 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006263 "FabricEgress.egress_next.push_vlan" : "node_70"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006264 },
6265 "default_entry" : {
6266 "action_id" : 55,
6267 "action_const" : true,
6268 "action_data" : [],
6269 "action_entry_const" : true
6270 }
6271 },
6272 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006273 "name" : "tbl_act_24",
6274 "id" : 42,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006275 "source_info" : {
6276 "filename" : "include/control/next.p4",
6277 "line" : 326,
6278 "column" : 25,
6279 "source_fragment" : "="
6280 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006281 "key" : [],
6282 "match_type" : "exact",
6283 "type" : "simple",
6284 "max_size" : 1024,
6285 "with_counters" : false,
6286 "support_timeout" : false,
6287 "direct_meters" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006288 "action_ids" : [63],
6289 "actions" : ["act_25"],
6290 "base_default_next" : "node_72",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006291 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006292 "act_25" : "node_72"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006293 },
6294 "default_entry" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006295 "action_id" : 63,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006296 "action_const" : true,
6297 "action_data" : [],
6298 "action_entry_const" : true
6299 }
6300 },
6301 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006302 "name" : "tbl_act_25",
6303 "id" : 43,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006304 "source_info" : {
6305 "filename" : "include/control/next.p4",
6306 "line" : 327,
6307 "column" : 35,
6308 "source_fragment" : "mark_to_drop(standard_metadata)"
6309 },
6310 "key" : [],
6311 "match_type" : "exact",
6312 "type" : "simple",
6313 "max_size" : 1024,
6314 "with_counters" : false,
6315 "support_timeout" : false,
6316 "direct_meters" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006317 "action_ids" : [62],
6318 "actions" : ["act_24"],
6319 "base_default_next" : "node_78",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006320 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006321 "act_24" : "node_78"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006322 },
6323 "default_entry" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006324 "action_id" : 62,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006325 "action_const" : true,
6326 "action_data" : [],
6327 "action_entry_const" : true
6328 }
6329 },
6330 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006331 "name" : "tbl_act_26",
6332 "id" : 44,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006333 "source_info" : {
6334 "filename" : "include/control/next.p4",
6335 "line" : 330,
6336 "column" : 29,
6337 "source_fragment" : "="
6338 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006339 "key" : [],
6340 "match_type" : "exact",
6341 "type" : "simple",
6342 "max_size" : 1024,
6343 "with_counters" : false,
6344 "support_timeout" : false,
6345 "direct_meters" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006346 "action_ids" : [65],
6347 "actions" : ["act_27"],
6348 "base_default_next" : "node_76",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006349 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006350 "act_27" : "node_76"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006351 },
6352 "default_entry" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006353 "action_id" : 65,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006354 "action_const" : true,
6355 "action_data" : [],
6356 "action_entry_const" : true
6357 }
6358 },
6359 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006360 "name" : "tbl_act_27",
6361 "id" : 45,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006362 "source_info" : {
6363 "filename" : "include/control/next.p4",
6364 "line" : 331,
6365 "column" : 39,
6366 "source_fragment" : "mark_to_drop(standard_metadata)"
6367 },
6368 "key" : [],
6369 "match_type" : "exact",
6370 "type" : "simple",
6371 "max_size" : 1024,
6372 "with_counters" : false,
6373 "support_timeout" : false,
6374 "direct_meters" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006375 "action_ids" : [64],
6376 "actions" : ["act_26"],
6377 "base_default_next" : "node_78",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006378 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006379 "act_26" : "node_78"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006380 },
6381 "default_entry" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006382 "action_id" : 64,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006383 "action_const" : true,
6384 "action_data" : [],
6385 "action_entry_const" : true
6386 }
6387 },
6388 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006389 "name" : "tbl_spgw_egress_gtpu_encap",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006390 "id" : 46,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006391 "source_info" : {
6392 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006393 "line" : 228,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006394 "column" : 12,
6395 "source_fragment" : "gtpu_encap()"
6396 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006397 "key" : [],
6398 "match_type" : "exact",
6399 "type" : "simple",
6400 "max_size" : 1024,
6401 "with_counters" : false,
6402 "support_timeout" : false,
6403 "direct_meters" : null,
6404 "action_ids" : [52],
Yi Tseng27b9bc02018-04-12 14:52:40 +08006405 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006406 "base_default_next" : null,
6407 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006408 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006409 },
6410 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006411 "action_id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006412 "action_const" : true,
6413 "action_data" : [],
6414 "action_entry_const" : true
6415 }
6416 }
6417 ],
6418 "action_profiles" : [],
6419 "conditionals" : [
6420 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006421 "name" : "node_54",
6422 "id" : 17,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006423 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006424 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006425 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006426 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006427 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006428 },
6429 "expression" : {
6430 "type" : "expression",
6431 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006432 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006433 "left" : {
6434 "type" : "expression",
6435 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006436 "op" : "d2b",
6437 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006438 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006439 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006440 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out12"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02006441 }
6442 }
6443 },
6444 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006445 "type" : "bool",
6446 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02006447 }
6448 }
6449 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006450 "true_next" : "tbl_act_19",
6451 "false_next" : "node_56"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006452 },
6453 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006454 "name" : "node_56",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006455 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006456 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006457 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006458 "line" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006459 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08006460 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006461 },
6462 "expression" : {
6463 "type" : "expression",
6464 "value" : {
6465 "op" : "==",
6466 "left" : {
6467 "type" : "field",
6468 "value" : ["standard_metadata", "egress_port"]
6469 },
6470 "right" : {
6471 "type" : "hexstr",
6472 "value" : "0x00ff"
6473 }
6474 }
6475 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006476 "true_next" : "tbl_act_20",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006477 "false_next" : "node_58"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006478 },
6479 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006480 "name" : "node_58",
6481 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006482 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006483 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006484 "line" : 306,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006485 "column" : 12,
6486 "source_fragment" : "fabric_metadata.is_multicast == true ..."
6487 },
6488 "expression" : {
6489 "type" : "expression",
6490 "value" : {
6491 "op" : "and",
6492 "left" : {
6493 "type" : "expression",
6494 "value" : {
6495 "op" : "==",
6496 "left" : {
6497 "type" : "expression",
6498 "value" : {
6499 "op" : "d2b",
6500 "left" : null,
6501 "right" : {
6502 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006503 "value" : ["scalars", "fabric_metadata_t._is_multicast11"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006504 }
6505 }
6506 },
6507 "right" : {
6508 "type" : "bool",
6509 "value" : true
6510 }
6511 }
6512 },
6513 "right" : {
6514 "type" : "expression",
6515 "value" : {
6516 "op" : "==",
6517 "left" : {
6518 "type" : "field",
6519 "value" : ["standard_metadata", "ingress_port"]
6520 },
6521 "right" : {
6522 "type" : "field",
6523 "value" : ["standard_metadata", "egress_port"]
6524 }
6525 }
6526 }
6527 }
6528 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006529 "true_next" : "tbl_act_21",
6530 "false_next" : "node_60"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006531 },
6532 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006533 "name" : "node_60",
6534 "id" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006535 "source_info" : {
6536 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006537 "line" : 311,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006538 "column" : 12,
6539 "source_fragment" : "fabric_metadata.mpls_label == 0"
6540 },
6541 "expression" : {
6542 "type" : "expression",
6543 "value" : {
6544 "op" : "==",
6545 "left" : {
6546 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006547 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006548 },
6549 "right" : {
6550 "type" : "hexstr",
6551 "value" : "0x000000"
6552 }
6553 }
6554 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006555 "true_next" : "node_61",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006556 "false_next" : "tbl_egress_next_set_mpls"
6557 },
6558 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006559 "name" : "node_61",
6560 "id" : 21,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006561 "source_info" : {
6562 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006563 "line" : 312,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006564 "column" : 16,
6565 "source_fragment" : "hdr.mpls.isValid()"
6566 },
6567 "expression" : {
6568 "type" : "expression",
6569 "value" : {
6570 "op" : "d2b",
6571 "left" : null,
6572 "right" : {
6573 "type" : "field",
6574 "value" : ["mpls", "$valid$"]
6575 }
6576 }
6577 },
6578 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006579 "false_next" : "FabricEgress.egress_next.egress_vlan"
6580 },
6581 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006582 "name" : "node_67",
6583 "id" : 22,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006584 "source_info" : {
6585 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006586 "line" : 317,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006587 "column" : 12,
6588 "source_fragment" : "!egress_vlan.apply().hit"
6589 },
6590 "expression" : {
6591 "type" : "expression",
6592 "value" : {
6593 "op" : "not",
6594 "left" : null,
6595 "right" : {
6596 "type" : "expression",
6597 "value" : {
6598 "op" : "d2b",
6599 "left" : null,
6600 "right" : {
6601 "type" : "field",
6602 "value" : ["scalars", "egress_next_tmp"]
6603 }
6604 }
6605 }
6606 }
6607 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006608 "true_next" : "node_68",
6609 "false_next" : "node_70"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006610 },
6611 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006612 "name" : "node_68",
6613 "id" : 23,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006614 "source_info" : {
6615 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006616 "line" : 319,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006617 "column" : 16,
6618 "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
6619 },
6620 "expression" : {
6621 "type" : "expression",
6622 "value" : {
6623 "op" : "!=",
6624 "left" : {
6625 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006626 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006627 },
6628 "right" : {
6629 "type" : "hexstr",
6630 "value" : "0x0ffe"
6631 }
6632 }
6633 },
6634 "true_next" : "tbl_egress_next_push_vlan",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006635 "false_next" : "node_70"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006636 },
6637 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006638 "name" : "node_70",
6639 "id" : 24,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006640 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006641 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006642 "line" : 325,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006643 "column" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006644 "source_fragment" : "hdr.mpls.isValid()"
6645 },
6646 "expression" : {
6647 "type" : "expression",
6648 "value" : {
6649 "op" : "d2b",
6650 "left" : null,
6651 "right" : {
6652 "type" : "field",
6653 "value" : ["mpls", "$valid$"]
6654 }
6655 }
6656 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006657 "true_next" : "tbl_act_24",
6658 "false_next" : "node_74"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006659 },
6660 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006661 "name" : "node_72",
6662 "id" : 25,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006663 "source_info" : {
6664 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006665 "line" : 327,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006666 "column" : 16,
6667 "source_fragment" : "hdr.mpls.ttl == 0"
6668 },
6669 "expression" : {
6670 "type" : "expression",
6671 "value" : {
6672 "op" : "==",
6673 "left" : {
6674 "type" : "field",
6675 "value" : ["mpls", "ttl"]
6676 },
6677 "right" : {
6678 "type" : "hexstr",
6679 "value" : "0x00"
6680 }
6681 }
6682 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006683 "true_next" : "tbl_act_25",
6684 "false_next" : "node_78"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006685 },
6686 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006687 "name" : "node_74",
6688 "id" : 26,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006689 "source_info" : {
6690 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006691 "line" : 329,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006692 "column" : 15,
6693 "source_fragment" : "hdr.ipv4.isValid()"
6694 },
6695 "expression" : {
6696 "type" : "expression",
6697 "value" : {
6698 "op" : "d2b",
6699 "left" : null,
6700 "right" : {
6701 "type" : "field",
6702 "value" : ["ipv4", "$valid$"]
6703 }
6704 }
6705 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006706 "true_next" : "tbl_act_26",
6707 "false_next" : "node_78"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006708 },
6709 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006710 "name" : "node_76",
6711 "id" : 27,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006712 "source_info" : {
6713 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006714 "line" : 331,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006715 "column" : 20,
6716 "source_fragment" : "hdr.ipv4.ttl == 0"
6717 },
6718 "expression" : {
6719 "type" : "expression",
6720 "value" : {
6721 "op" : "==",
6722 "left" : {
6723 "type" : "field",
6724 "value" : ["ipv4", "ttl"]
6725 },
6726 "right" : {
6727 "type" : "hexstr",
6728 "value" : "0x00"
6729 }
6730 }
6731 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006732 "true_next" : "tbl_act_27",
6733 "false_next" : "node_78"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006734 },
6735 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006736 "name" : "node_78",
6737 "id" : 28,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006738 "source_info" : {
6739 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006740 "line" : 227,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006741 "column" : 12,
6742 "source_fragment" : "fabric_meta.spgw.direction == SPGW_DIR_DOWNLINK"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006743 },
6744 "expression" : {
6745 "type" : "expression",
6746 "value" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006747 "op" : "==",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006748 "left" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006749 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006750 "value" : ["scalars", "fabric_metadata_t._spgw_direction16"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006751 },
6752 "right" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006753 "type" : "hexstr",
6754 "value" : "0x02"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006755 }
6756 }
6757 },
6758 "false_next" : null,
6759 "true_next" : "tbl_spgw_egress_gtpu_encap"
6760 }
6761 ]
6762 }
6763 ],
6764 "checksums" : [
6765 {
6766 "name" : "cksum",
6767 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006768 "source_info" : {
6769 "filename" : "include/checksum.p4",
6770 "line" : 28,
6771 "column" : 8,
6772 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
6773 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006774 "target" : ["ipv4", "hdr_checksum"],
6775 "type" : "generic",
6776 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006777 "verify" : false,
6778 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006779 "if_cond" : {
6780 "type" : "expression",
6781 "value" : {
6782 "op" : "d2b",
6783 "left" : null,
6784 "right" : {
6785 "type" : "field",
6786 "value" : ["ipv4", "$valid$"]
6787 }
6788 }
6789 }
6790 },
6791 {
6792 "name" : "cksum_0",
6793 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006794 "source_info" : {
6795 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006796 "line" : 243,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006797 "column" : 8,
6798 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
6799 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006800 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006801 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006802 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006803 "verify" : false,
6804 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006805 "if_cond" : {
6806 "type" : "expression",
6807 "value" : {
6808 "op" : "d2b",
6809 "left" : null,
6810 "right" : {
6811 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006812 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006813 }
6814 }
6815 }
6816 },
6817 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006818 "name" : "cksum_1",
6819 "id" : 2,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006820 "source_info" : {
6821 "filename" : "include/checksum.p4",
6822 "line" : 57,
6823 "column" : 8,
6824 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
6825 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006826 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006827 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006828 "calculation" : "calc_1",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006829 "verify" : true,
6830 "update" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006831 "if_cond" : {
6832 "type" : "expression",
6833 "value" : {
6834 "op" : "d2b",
6835 "left" : null,
6836 "right" : {
6837 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006838 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006839 }
6840 }
6841 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006842 }
6843 ],
6844 "force_arith" : [],
6845 "extern_instances" : [],
6846 "field_aliases" : [
6847 [
6848 "queueing_metadata.enq_timestamp",
6849 ["standard_metadata", "enq_timestamp"]
6850 ],
6851 [
6852 "queueing_metadata.enq_qdepth",
6853 ["standard_metadata", "enq_qdepth"]
6854 ],
6855 [
6856 "queueing_metadata.deq_timedelta",
6857 ["standard_metadata", "deq_timedelta"]
6858 ],
6859 [
6860 "queueing_metadata.deq_qdepth",
6861 ["standard_metadata", "deq_qdepth"]
6862 ],
6863 [
6864 "intrinsic_metadata.ingress_global_timestamp",
6865 ["standard_metadata", "ingress_global_timestamp"]
6866 ],
6867 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08006868 "intrinsic_metadata.egress_global_timestamp",
6869 ["standard_metadata", "egress_global_timestamp"]
6870 ],
6871 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006872 "intrinsic_metadata.lf_field_list",
6873 ["standard_metadata", "lf_field_list"]
6874 ],
6875 [
6876 "intrinsic_metadata.mcast_grp",
6877 ["standard_metadata", "mcast_grp"]
6878 ],
6879 [
6880 "intrinsic_metadata.resubmit_flag",
6881 ["standard_metadata", "resubmit_flag"]
6882 ],
6883 [
6884 "intrinsic_metadata.egress_rid",
6885 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08006886 ],
6887 [
6888 "intrinsic_metadata.recirculate_flag",
6889 ["standard_metadata", "recirculate_flag"]
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006890 ],
6891 [
6892 "intrinsic_metadata.priority",
6893 ["standard_metadata", "priority"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006894 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006895 ],
6896 "program" : "fabric.p4",
6897 "__meta__" : {
6898 "version" : [2, 18],
6899 "compiler" : "https://github.com/p4lang/p4c"
6900 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08006901}