blob: b1d3a47a21b7be2b07db8b0fd1d2e08a955024c9 [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" : {
318 "filename" : "fabric.p4",
319 "line" : 77,
320 "column" : 40,
321 "source_fragment" : "standard_metadata"
322 },
323 "elements" : [
324 {
325 "type" : "field",
326 "value" : ["standard_metadata", "ingress_port"]
327 },
328 {
329 "type" : "field",
330 "value" : ["standard_metadata", "egress_spec"]
331 },
332 {
333 "type" : "field",
334 "value" : ["standard_metadata", "egress_port"]
335 },
336 {
337 "type" : "field",
338 "value" : ["standard_metadata", "clone_spec"]
339 },
340 {
341 "type" : "field",
342 "value" : ["standard_metadata", "instance_type"]
343 },
344 {
345 "type" : "field",
346 "value" : ["standard_metadata", "drop"]
347 },
348 {
349 "type" : "field",
350 "value" : ["standard_metadata", "recirculate_port"]
351 },
352 {
353 "type" : "field",
354 "value" : ["standard_metadata", "packet_length"]
355 },
356 {
357 "type" : "field",
358 "value" : ["standard_metadata", "enq_timestamp"]
359 },
360 {
361 "type" : "field",
362 "value" : ["standard_metadata", "enq_qdepth"]
363 },
364 {
365 "type" : "field",
366 "value" : ["standard_metadata", "deq_timedelta"]
367 },
368 {
369 "type" : "field",
370 "value" : ["standard_metadata", "deq_qdepth"]
371 },
372 {
373 "type" : "field",
374 "value" : ["standard_metadata", "ingress_global_timestamp"]
375 },
376 {
377 "type" : "field",
378 "value" : ["standard_metadata", "egress_global_timestamp"]
379 },
380 {
381 "type" : "field",
382 "value" : ["standard_metadata", "lf_field_list"]
383 },
384 {
385 "type" : "field",
386 "value" : ["standard_metadata", "mcast_grp"]
387 },
388 {
389 "type" : "field",
390 "value" : ["standard_metadata", "resubmit_flag"]
391 },
392 {
393 "type" : "field",
394 "value" : ["standard_metadata", "egress_rid"]
395 },
396 {
397 "type" : "field",
398 "value" : ["standard_metadata", "recirculate_flag"]
399 },
400 {
401 "type" : "field",
402 "value" : ["standard_metadata", "checksum_error"]
403 },
404 {
405 "type" : "field",
406 "value" : ["standard_metadata", "parser_error"]
407 },
408 {
409 "type" : "field",
410 "value" : ["standard_metadata", "priority"]
411 }
412 ]
413 }
414 ],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700415 "errors" : [
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700416 ["NoError", 1],
417 ["PacketTooShort", 2],
418 ["NoMatch", 3],
419 ["StackOutOfBounds", 4],
420 ["HeaderTooShort", 5],
421 ["ParserTimeout", 6],
422 ["ParserInvalidArgument", 7]
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700423 ],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800424 "enums" : [],
425 "parsers" : [
426 {
427 "name" : "parser",
428 "id" : 0,
429 "init_state" : "start",
430 "parse_states" : [
431 {
432 "name" : "start",
433 "id" : 0,
434 "parser_ops" : [],
435 "transitions" : [
436 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800437 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800438 "value" : "0x00ff",
439 "mask" : null,
440 "next_state" : "parse_packet_out"
441 },
442 {
443 "value" : "default",
444 "mask" : null,
445 "next_state" : "parse_ethernet"
446 }
447 ],
448 "transition_key" : [
449 {
450 "type" : "field",
451 "value" : ["standard_metadata", "ingress_port"]
452 }
453 ]
454 },
455 {
456 "name" : "parse_packet_out",
457 "id" : 1,
458 "parser_ops" : [
459 {
460 "parameters" : [
461 {
462 "type" : "regular",
463 "value" : "packet_out"
464 }
465 ],
466 "op" : "extract"
467 }
468 ],
469 "transitions" : [
470 {
471 "value" : "default",
472 "mask" : null,
473 "next_state" : "parse_ethernet"
474 }
475 ],
476 "transition_key" : []
477 },
478 {
479 "name" : "parse_ethernet",
480 "id" : 2,
481 "parser_ops" : [
482 {
483 "parameters" : [
484 {
485 "type" : "regular",
486 "value" : "ethernet"
487 }
488 ],
489 "op" : "extract"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800490 },
491 {
492 "parameters" : [
493 {
494 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800495 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800496 },
497 {
498 "type" : "field",
499 "value" : ["ethernet", "eth_type"]
500 }
501 ],
502 "op" : "set"
503 },
504 {
505 "parameters" : [
506 {
507 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800508 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800509 },
510 {
511 "type" : "hexstr",
512 "value" : "0x0ffe"
513 }
514 ],
515 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800516 }
517 ],
518 "transitions" : [
519 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800520 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800521 "value" : "0x8100",
522 "mask" : null,
523 "next_state" : "parse_vlan_tag"
524 },
525 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800526 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800527 "value" : "0x8847",
528 "mask" : null,
529 "next_state" : "parse_mpls"
530 },
531 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800532 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800533 "value" : "0x0800",
534 "mask" : null,
535 "next_state" : "parse_ipv4"
536 },
537 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800538 "value" : "default",
539 "mask" : null,
540 "next_state" : null
541 }
542 ],
543 "transition_key" : [
544 {
545 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800546 "value" : ["ethernet", "eth_type"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800547 }
548 ]
549 },
550 {
551 "name" : "parse_vlan_tag",
552 "id" : 3,
553 "parser_ops" : [
554 {
555 "parameters" : [
556 {
557 "type" : "regular",
558 "value" : "vlan_tag"
559 }
560 ],
561 "op" : "extract"
562 }
563 ],
564 "transitions" : [
565 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800566 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800567 "value" : "0x0800",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800568 "mask" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800569 "next_state" : "parse_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800570 },
571 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800572 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800573 "value" : "0x8847",
574 "mask" : null,
575 "next_state" : "parse_mpls"
576 },
577 {
578 "type" : "hexstr",
579 "value" : "0x8100",
580 "mask" : null,
581 "next_state" : "parse_inner_vlan_tag"
582 },
583 {
584 "value" : "default",
585 "mask" : null,
586 "next_state" : null
587 }
588 ],
589 "transition_key" : [
590 {
591 "type" : "field",
592 "value" : ["vlan_tag", "eth_type"]
593 }
594 ]
595 },
596 {
597 "name" : "parse_inner_vlan_tag",
598 "id" : 4,
599 "parser_ops" : [
600 {
601 "parameters" : [
602 {
603 "type" : "regular",
604 "value" : "inner_vlan_tag"
605 }
606 ],
607 "op" : "extract"
608 }
609 ],
610 "transitions" : [
611 {
612 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800613 "value" : "0x0800",
614 "mask" : null,
615 "next_state" : "parse_ipv4"
616 },
617 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800618 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800619 "value" : "0x8847",
620 "mask" : null,
621 "next_state" : "parse_mpls"
622 },
623 {
624 "value" : "default",
625 "mask" : null,
626 "next_state" : null
627 }
628 ],
629 "transition_key" : [
630 {
631 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800632 "value" : ["inner_vlan_tag", "eth_type"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800633 }
634 ]
635 },
636 {
637 "name" : "parse_mpls",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800638 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800639 "parser_ops" : [
640 {
641 "parameters" : [
642 {
643 "type" : "regular",
644 "value" : "mpls"
645 }
646 ],
647 "op" : "extract"
648 },
649 {
650 "parameters" : [
651 {
652 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800653 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800654 },
655 {
656 "type" : "field",
657 "value" : ["mpls", "label"]
658 }
659 ],
660 "op" : "set"
661 },
662 {
663 "parameters" : [
664 {
665 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800666 "value" : ["scalars", "fabric_metadata_t._mpls_ttl6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800667 },
668 {
669 "type" : "field",
670 "value" : ["mpls", "ttl"]
671 }
672 ],
673 "op" : "set"
674 },
675 {
676 "parameters" : [
677 {
678 "type" : "field",
679 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800680 },
681 {
682 "type" : "lookahead",
683 "value" : [0, 4]
684 }
685 ],
686 "op" : "set"
687 }
688 ],
689 "transitions" : [
690 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800691 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800692 "value" : "0x04",
693 "mask" : null,
694 "next_state" : "parse_ipv4"
695 },
696 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800697 "value" : "default",
698 "mask" : null,
699 "next_state" : "parse_ethernet"
700 }
701 ],
702 "transition_key" : [
703 {
704 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800705 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800706 }
707 ]
708 },
709 {
710 "name" : "parse_ipv4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800711 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800712 "parser_ops" : [
713 {
714 "parameters" : [
715 {
716 "type" : "regular",
717 "value" : "ipv4"
718 }
719 ],
720 "op" : "extract"
721 },
722 {
723 "parameters" : [
724 {
725 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700726 "value" : ["scalars", "fabric_metadata_t._ip_proto13"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800727 },
728 {
729 "type" : "field",
730 "value" : ["ipv4", "protocol"]
731 }
732 ],
733 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800734 },
735 {
736 "parameters" : [
737 {
738 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800739 "value" : ["scalars", "fabric_metadata_t._ip_eth_type1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800740 },
741 {
742 "type" : "hexstr",
743 "value" : "0x0800"
744 }
745 ],
746 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800747 }
748 ],
749 "transitions" : [
750 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800751 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800752 "value" : "0x06",
753 "mask" : null,
754 "next_state" : "parse_tcp"
755 },
756 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800757 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800758 "value" : "0x11",
759 "mask" : null,
760 "next_state" : "parse_udp"
761 },
762 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800763 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800764 "value" : "0x01",
765 "mask" : null,
766 "next_state" : "parse_icmp"
767 },
768 {
769 "value" : "default",
770 "mask" : null,
771 "next_state" : null
772 }
773 ],
774 "transition_key" : [
775 {
776 "type" : "field",
777 "value" : ["ipv4", "protocol"]
778 }
779 ]
780 },
781 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800782 "name" : "parse_tcp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200783 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800784 "parser_ops" : [
785 {
786 "parameters" : [
787 {
788 "type" : "regular",
789 "value" : "tcp"
790 }
791 ],
792 "op" : "extract"
793 },
794 {
795 "parameters" : [
796 {
797 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700798 "value" : ["scalars", "fabric_metadata_t._l4_sport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800799 },
800 {
801 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800802 "value" : ["tcp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800803 }
804 ],
805 "op" : "set"
806 },
807 {
808 "parameters" : [
809 {
810 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700811 "value" : ["scalars", "fabric_metadata_t._l4_dport15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800812 },
813 {
814 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800815 "value" : ["tcp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800816 }
817 ],
818 "op" : "set"
819 }
820 ],
821 "transitions" : [
822 {
823 "value" : "default",
824 "mask" : null,
825 "next_state" : null
826 }
827 ],
828 "transition_key" : []
829 },
830 {
831 "name" : "parse_udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200832 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800833 "parser_ops" : [
834 {
835 "parameters" : [
836 {
837 "type" : "regular",
838 "value" : "udp"
839 }
840 ],
841 "op" : "extract"
842 },
843 {
844 "parameters" : [
845 {
846 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700847 "value" : ["scalars", "fabric_metadata_t._l4_sport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800848 },
849 {
850 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800851 "value" : ["udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800852 }
853 ],
854 "op" : "set"
855 },
856 {
857 "parameters" : [
858 {
859 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700860 "value" : ["scalars", "fabric_metadata_t._l4_dport15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800861 },
862 {
863 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800864 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800865 }
866 ],
867 "op" : "set"
868 }
869 ],
870 "transitions" : [
871 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800872 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800873 "value" : "0x0868",
874 "mask" : null,
875 "next_state" : "parse_gtpu"
876 },
877 {
878 "value" : "default",
879 "mask" : null,
880 "next_state" : null
881 }
882 ],
883 "transition_key" : [
884 {
885 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800886 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800887 }
888 ]
889 },
890 {
891 "name" : "parse_icmp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200892 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800893 "parser_ops" : [
894 {
895 "parameters" : [
896 {
897 "type" : "regular",
898 "value" : "icmp"
899 }
900 ],
901 "op" : "extract"
902 }
903 ],
904 "transitions" : [
905 {
906 "value" : "default",
907 "mask" : null,
908 "next_state" : null
909 }
910 ],
911 "transition_key" : []
912 },
913 {
914 "name" : "parse_gtpu",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200915 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800916 "parser_ops" : [
917 {
918 "parameters" : [
919 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700920 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800921 "value" : ["scalars", "tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700922 },
923 {
924 "type" : "expression",
925 "value" : {
926 "type" : "expression",
927 "value" : {
928 "op" : "&",
929 "left" : {
930 "type" : "expression",
931 "value" : {
932 "op" : "&",
933 "left" : {
934 "type" : "expression",
935 "value" : {
936 "op" : ">>",
937 "left" : {
938 "type" : "field",
939 "value" : ["ipv4", "dst_addr"]
940 },
941 "right" : {
942 "type" : "hexstr",
943 "value" : "0x18"
944 }
945 }
946 },
947 "right" : {
948 "type" : "hexstr",
949 "value" : "0xffffffff"
950 }
951 }
952 },
953 "right" : {
954 "type" : "hexstr",
955 "value" : "0xff"
956 }
957 }
958 }
959 }
960 ],
961 "op" : "set"
962 }
963 ],
964 "transitions" : [
965 {
966 "type" : "hexstr",
967 "value" : "0x8c",
968 "mask" : null,
969 "next_state" : "do_parse_gtpu"
970 },
971 {
972 "value" : "default",
973 "mask" : null,
974 "next_state" : null
975 }
976 ],
977 "transition_key" : [
978 {
979 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800980 "value" : ["scalars", "tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700981 }
982 ]
983 },
984 {
985 "name" : "do_parse_gtpu",
986 "id" : 11,
987 "parser_ops" : [
988 {
989 "parameters" : [
990 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800991 "type" : "regular",
992 "value" : "gtpu"
993 }
994 ],
995 "op" : "extract"
996 },
997 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800998 "parameters" : [
999 {
1000 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001001 "value" : "inner_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001002 }
1003 ],
1004 "op" : "extract"
1005 }
1006 ],
1007 "transitions" : [
1008 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001009 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001010 "value" : "0x06",
1011 "mask" : null,
1012 "next_state" : "parse_tcp"
1013 },
1014 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001015 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001016 "value" : "0x11",
1017 "mask" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001018 "next_state" : "parse_inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001019 },
1020 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001021 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001022 "value" : "0x01",
1023 "mask" : null,
1024 "next_state" : "parse_icmp"
1025 },
1026 {
1027 "value" : "default",
1028 "mask" : null,
1029 "next_state" : null
1030 }
1031 ],
1032 "transition_key" : [
1033 {
1034 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001035 "value" : ["inner_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001036 }
1037 ]
1038 },
1039 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001040 "name" : "parse_inner_udp",
1041 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001042 "parser_ops" : [
1043 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001044 "parameters" : [
1045 {
1046 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001047 "value" : "inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001048 }
1049 ],
1050 "op" : "extract"
1051 },
1052 {
1053 "parameters" : [
1054 {
1055 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001056 "value" : ["scalars", "fabric_metadata_t._l4_sport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001057 },
1058 {
1059 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001060 "value" : ["inner_udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001061 }
1062 ],
1063 "op" : "set"
1064 },
1065 {
1066 "parameters" : [
1067 {
1068 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001069 "value" : ["scalars", "fabric_metadata_t._l4_dport15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001070 },
1071 {
1072 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001073 "value" : ["inner_udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001074 }
1075 ],
1076 "op" : "set"
1077 }
1078 ],
1079 "transitions" : [
1080 {
1081 "value" : "default",
1082 "mask" : null,
1083 "next_state" : null
1084 }
1085 ],
1086 "transition_key" : []
1087 }
1088 ]
1089 }
1090 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001091 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001092 "deparsers" : [
1093 {
1094 "name" : "deparser",
1095 "id" : 0,
1096 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001097 "filename" : "include/parser.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001098 "line" : 260,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001099 "column" : 8,
1100 "source_fragment" : "FabricDeparser"
1101 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001102 "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 -08001103 }
1104 ],
1105 "meter_arrays" : [],
1106 "counter_arrays" : [
1107 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001108 "name" : "FabricIngress.spgw_ingress.ue_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001109 "id" : 0,
1110 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001111 "binding" : "FabricIngress.spgw_ingress.dl_sess_lookup",
1112 "source_info" : {
1113 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001114 "line" : 52,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001115 "column" : 50,
1116 "source_fragment" : "ue_counter"
1117 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001118 },
1119 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001120 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001121 "id" : 1,
1122 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001123 "binding" : "FabricIngress.filtering.ingress_port_vlan",
1124 "source_info" : {
1125 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001126 "line" : 31,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001127 "column" : 50,
1128 "source_fragment" : "ingress_port_vlan_counter"
1129 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001130 },
1131 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001132 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001133 "id" : 2,
1134 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001135 "binding" : "FabricIngress.filtering.fwd_classifier",
1136 "source_info" : {
1137 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001138 "line" : 80,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001139 "column" : 50,
1140 "source_fragment" : "fwd_classifier_counter"
1141 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001142 },
1143 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001144 "name" : "FabricIngress.forwarding.bridging_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001145 "id" : 3,
1146 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001147 "binding" : "FabricIngress.forwarding.bridging",
1148 "source_info" : {
1149 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001150 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001151 "column" : 50,
1152 "source_fragment" : "bridging_counter"
1153 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001154 },
1155 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001156 "name" : "FabricIngress.forwarding.mpls_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001157 "id" : 4,
1158 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001159 "binding" : "FabricIngress.forwarding.mpls",
1160 "source_info" : {
1161 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001162 "line" : 63,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001163 "column" : 50,
1164 "source_fragment" : "mpls_counter"
1165 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001166 },
1167 {
Charles Chan384aea22018-08-23 22:08:02 -07001168 "name" : "FabricIngress.forwarding.routing_v4_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001169 "id" : 5,
1170 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001171 "binding" : "FabricIngress.forwarding.routing_v4",
1172 "source_info" : {
1173 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001174 "line" : 87,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001175 "column" : 50,
1176 "source_fragment" : "routing_v4_counter"
1177 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001178 },
1179 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001180 "name" : "FabricIngress.acl.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001181 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001182 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001183 "binding" : "FabricIngress.acl.acl",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001184 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001185 "filename" : "include/control/acl.p4",
1186 "line" : 30,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001187 "column" : 50,
1188 "source_fragment" : "acl_counter"
1189 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001190 },
1191 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001192 "name" : "FabricIngress.next.next_vlan_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001193 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001194 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001195 "binding" : "FabricIngress.next.next_vlan",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001196 "source_info" : {
1197 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001198 "line" : 67,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001199 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001200 "source_fragment" : "next_vlan_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001201 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001202 },
1203 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001204 "name" : "FabricIngress.next.xconnect_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001205 "id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001206 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001207 "binding" : "FabricIngress.next.xconnect",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001208 "source_info" : {
1209 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001210 "line" : 92,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001211 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001212 "source_fragment" : "xconnect_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001213 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001214 },
1215 {
1216 "name" : "FabricIngress.next.hashed_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001217 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001218 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001219 "binding" : "FabricIngress.next.hashed",
1220 "source_info" : {
1221 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001222 "line" : 166,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001223 "column" : 50,
1224 "source_fragment" : "hashed_counter"
1225 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001226 },
1227 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001228 "name" : "FabricIngress.next.multicast_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001229 "id" : 10,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001230 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001231 "binding" : "FabricIngress.next.multicast",
1232 "source_info" : {
1233 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001234 "line" : 210,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001235 "column" : 50,
1236 "source_fragment" : "multicast_counter"
1237 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00001238 },
1239 {
1240 "name" : "FabricIngress.port_counters_control.egress_port_counter",
1241 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001242 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001243 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001244 "line" : 26,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001245 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001246 "source_fragment" : "egress_port_counter"
1247 },
1248 "size" : 511,
1249 "is_direct" : false
1250 },
1251 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001252 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001253 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001254 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001255 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001256 "line" : 27,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001257 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001258 "source_fragment" : "ingress_port_counter"
1259 },
1260 "size" : 511,
1261 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08001262 },
1263 {
1264 "name" : "FabricEgress.egress_next.egress_vlan_counter",
1265 "id" : 13,
1266 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001267 "binding" : "FabricEgress.egress_next.egress_vlan",
1268 "source_info" : {
1269 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001270 "line" : 283,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001271 "column" : 50,
1272 "source_fragment" : "egress_vlan_counter"
1273 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001274 }
1275 ],
1276 "register_arrays" : [],
1277 "calculations" : [
1278 {
1279 "name" : "calc",
1280 "id" : 0,
1281 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001282 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001283 "line" : 28,
1284 "column" : 8,
1285 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1286 },
1287 "algo" : "csum16",
1288 "input" : [
1289 {
1290 "type" : "field",
1291 "value" : ["ipv4", "version"]
1292 },
1293 {
1294 "type" : "field",
1295 "value" : ["ipv4", "ihl"]
1296 },
1297 {
1298 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001299 "value" : ["ipv4", "dscp"]
1300 },
1301 {
1302 "type" : "field",
1303 "value" : ["ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001304 },
1305 {
1306 "type" : "field",
1307 "value" : ["ipv4", "total_len"]
1308 },
1309 {
1310 "type" : "field",
1311 "value" : ["ipv4", "identification"]
1312 },
1313 {
1314 "type" : "field",
1315 "value" : ["ipv4", "flags"]
1316 },
1317 {
1318 "type" : "field",
1319 "value" : ["ipv4", "frag_offset"]
1320 },
1321 {
1322 "type" : "field",
1323 "value" : ["ipv4", "ttl"]
1324 },
1325 {
1326 "type" : "field",
1327 "value" : ["ipv4", "protocol"]
1328 },
1329 {
1330 "type" : "field",
1331 "value" : ["ipv4", "src_addr"]
1332 },
1333 {
1334 "type" : "field",
1335 "value" : ["ipv4", "dst_addr"]
1336 }
1337 ]
1338 },
1339 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001340 "name" : "calc_0",
1341 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001342 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001343 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001344 "line" : 243,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001345 "column" : 8,
1346 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1347 },
1348 "algo" : "csum16",
1349 "input" : [
1350 {
1351 "type" : "field",
1352 "value" : ["gtpu_ipv4", "version"]
1353 },
1354 {
1355 "type" : "field",
1356 "value" : ["gtpu_ipv4", "ihl"]
1357 },
1358 {
1359 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001360 "value" : ["gtpu_ipv4", "dscp"]
1361 },
1362 {
1363 "type" : "field",
1364 "value" : ["gtpu_ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001365 },
1366 {
1367 "type" : "field",
1368 "value" : ["gtpu_ipv4", "total_len"]
1369 },
1370 {
1371 "type" : "field",
1372 "value" : ["gtpu_ipv4", "identification"]
1373 },
1374 {
1375 "type" : "field",
1376 "value" : ["gtpu_ipv4", "flags"]
1377 },
1378 {
1379 "type" : "field",
1380 "value" : ["gtpu_ipv4", "frag_offset"]
1381 },
1382 {
1383 "type" : "field",
1384 "value" : ["gtpu_ipv4", "ttl"]
1385 },
1386 {
1387 "type" : "field",
1388 "value" : ["gtpu_ipv4", "protocol"]
1389 },
1390 {
1391 "type" : "field",
1392 "value" : ["gtpu_ipv4", "src_addr"]
1393 },
1394 {
1395 "type" : "field",
1396 "value" : ["gtpu_ipv4", "dst_addr"]
1397 }
1398 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001399 },
1400 {
1401 "name" : "calc_1",
1402 "id" : 2,
1403 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001404 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001405 "line" : 57,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001406 "column" : 8,
1407 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1408 },
1409 "algo" : "csum16",
1410 "input" : [
1411 {
1412 "type" : "field",
1413 "value" : ["ipv4", "version"]
1414 },
1415 {
1416 "type" : "field",
1417 "value" : ["ipv4", "ihl"]
1418 },
1419 {
1420 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001421 "value" : ["ipv4", "dscp"]
1422 },
1423 {
1424 "type" : "field",
1425 "value" : ["ipv4", "ecn"]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001426 },
1427 {
1428 "type" : "field",
1429 "value" : ["ipv4", "total_len"]
1430 },
1431 {
1432 "type" : "field",
1433 "value" : ["ipv4", "identification"]
1434 },
1435 {
1436 "type" : "field",
1437 "value" : ["ipv4", "flags"]
1438 },
1439 {
1440 "type" : "field",
1441 "value" : ["ipv4", "frag_offset"]
1442 },
1443 {
1444 "type" : "field",
1445 "value" : ["ipv4", "ttl"]
1446 },
1447 {
1448 "type" : "field",
1449 "value" : ["ipv4", "protocol"]
1450 },
1451 {
1452 "type" : "field",
1453 "value" : ["ipv4", "src_addr"]
1454 },
1455 {
1456 "type" : "field",
1457 "value" : ["ipv4", "dst_addr"]
1458 }
1459 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001460 }
1461 ],
1462 "learn_lists" : [],
1463 "actions" : [
1464 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001465 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001466 "id" : 0,
1467 "runtime_data" : [],
1468 "primitives" : []
1469 },
1470 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001471 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001472 "id" : 1,
1473 "runtime_data" : [],
1474 "primitives" : []
1475 },
1476 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001477 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001478 "id" : 2,
1479 "runtime_data" : [],
1480 "primitives" : []
1481 },
1482 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001483 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001484 "id" : 3,
1485 "runtime_data" : [],
1486 "primitives" : []
1487 },
1488 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001489 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001490 "id" : 4,
1491 "runtime_data" : [],
1492 "primitives" : []
1493 },
1494 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001495 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001496 "id" : 5,
1497 "runtime_data" : [],
1498 "primitives" : []
1499 },
1500 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001501 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001502 "id" : 6,
1503 "runtime_data" : [],
1504 "primitives" : []
1505 },
1506 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001507 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001508 "id" : 7,
1509 "runtime_data" : [],
1510 "primitives" : []
1511 },
1512 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001513 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001514 "id" : 8,
1515 "runtime_data" : [],
1516 "primitives" : []
1517 },
1518 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001519 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001520 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001521 "runtime_data" : [],
1522 "primitives" : [
1523 {
1524 "op" : "remove_header",
1525 "parameters" : [
1526 {
1527 "type" : "header",
1528 "value" : "gtpu_ipv4"
1529 }
1530 ],
1531 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001532 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001533 "line" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001534 "column" : 8,
1535 "source_fragment" : "gtpu_ipv4.setInvalid()"
1536 }
1537 },
1538 {
1539 "op" : "remove_header",
1540 "parameters" : [
1541 {
1542 "type" : "header",
1543 "value" : "gtpu_udp"
1544 }
1545 ],
1546 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001547 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001548 "line" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001549 "column" : 8,
1550 "source_fragment" : "gtpu_udp.setInvalid()"
1551 }
1552 },
1553 {
1554 "op" : "remove_header",
1555 "parameters" : [
1556 {
1557 "type" : "header",
1558 "value" : "gtpu"
1559 }
1560 ],
1561 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001562 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001563 "line" : 58,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001564 "column" : 8,
1565 "source_fragment" : "gtpu.setInvalid()"
1566 }
1567 }
1568 ]
1569 },
1570 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001571 "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001572 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001573 "runtime_data" : [
1574 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001575 "name" : "teid",
1576 "bitwidth" : 32
1577 },
1578 {
1579 "name" : "s1u_enb_addr",
1580 "bitwidth" : 32
1581 },
1582 {
1583 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001584 "bitwidth" : 32
1585 }
1586 ],
1587 "primitives" : [
1588 {
1589 "op" : "assign",
1590 "parameters" : [
1591 {
1592 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001593 "value" : ["scalars", "fabric_metadata_t._spgw_teid18"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001594 },
1595 {
1596 "type" : "runtime_data",
1597 "value" : 0
1598 }
1599 ],
1600 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001601 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001602 "line" : 64,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001603 "column" : 30,
1604 "source_fragment" : "= teid; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001605 }
1606 },
1607 {
1608 "op" : "assign",
1609 "parameters" : [
1610 {
1611 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001612 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr19"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001613 },
1614 {
1615 "type" : "runtime_data",
1616 "value" : 1
1617 }
1618 ],
1619 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001620 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001621 "line" : 65,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001622 "column" : 38,
1623 "source_fragment" : "= s1u_enb_addr; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001624 }
1625 },
1626 {
1627 "op" : "assign",
1628 "parameters" : [
1629 {
1630 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001631 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr20"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001632 },
1633 {
1634 "type" : "runtime_data",
1635 "value" : 2
1636 }
1637 ],
1638 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001639 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001640 "line" : 66,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001641 "column" : 38,
1642 "source_fragment" : "= s1u_sgw_addr; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001643 }
1644 }
1645 ]
1646 },
1647 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001648 "name" : "FabricIngress.filtering.deny",
1649 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001650 "runtime_data" : [],
1651 "primitives" : [
1652 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001653 "op" : "assign",
1654 "parameters" : [
1655 {
1656 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001657 "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001658 },
1659 {
1660 "type" : "expression",
1661 "value" : {
1662 "type" : "expression",
1663 "value" : {
1664 "op" : "b2d",
1665 "left" : null,
1666 "right" : {
1667 "type" : "bool",
1668 "value" : true
1669 }
1670 }
1671 }
1672 }
1673 ],
1674 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001675 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001676 "line" : 36,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001677 "column" : 40,
1678 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001679 }
1680 },
1681 {
1682 "op" : "assign",
1683 "parameters" : [
1684 {
1685 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001686 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001687 },
1688 {
1689 "type" : "expression",
1690 "value" : {
1691 "type" : "expression",
1692 "value" : {
1693 "op" : "b2d",
1694 "left" : null,
1695 "right" : {
1696 "type" : "bool",
1697 "value" : true
1698 }
1699 }
1700 }
1701 }
1702 ],
1703 "source_info" : {
1704 "filename" : "include/control/filtering.p4",
1705 "line" : 37,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001706 "column" : 34,
1707 "source_fragment" : "= true; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001708 }
1709 }
1710 ]
1711 },
1712 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001713 "name" : "FabricIngress.filtering.permit",
1714 "id" : 12,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001715 "runtime_data" : [],
1716 "primitives" : []
1717 },
1718 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001719 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
1720 "id" : 13,
1721 "runtime_data" : [
1722 {
1723 "name" : "vlan_id",
1724 "bitwidth" : 12
1725 }
1726 ],
1727 "primitives" : [
1728 {
1729 "op" : "assign",
1730 "parameters" : [
1731 {
1732 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001733 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001734 },
1735 {
1736 "type" : "runtime_data",
1737 "value" : 0
1738 }
1739 ],
1740 "source_info" : {
1741 "filename" : "include/control/filtering.p4",
1742 "line" : 47,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001743 "column" : 32,
1744 "source_fragment" : "= vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001745 }
1746 }
1747 ]
1748 },
1749 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001750 "name" : "FabricIngress.filtering.set_forwarding_type",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001751 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001752 "runtime_data" : [
1753 {
1754 "name" : "fwd_type",
1755 "bitwidth" : 3
1756 }
1757 ],
1758 "primitives" : [
1759 {
1760 "op" : "assign",
1761 "parameters" : [
1762 {
1763 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001764 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001765 },
1766 {
1767 "type" : "runtime_data",
1768 "value" : 0
1769 }
1770 ],
1771 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001772 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001773 "line" : 83,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001774 "column" : 33,
1775 "source_fragment" : "= fwd_type; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001776 }
1777 }
1778 ]
1779 },
1780 {
Yi Tseng47eac892018-07-11 02:17:04 +08001781 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001782 "id" : 15,
1783 "runtime_data" : [
1784 {
1785 "name" : "next_id",
1786 "bitwidth" : 32
1787 }
1788 ],
1789 "primitives" : [
1790 {
1791 "op" : "assign",
1792 "parameters" : [
1793 {
1794 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001795 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001796 },
1797 {
1798 "type" : "runtime_data",
1799 "value" : 0
1800 }
1801 ],
1802 "source_info" : {
1803 "filename" : "include/control/forwarding.p4",
1804 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001805 "column" : 32,
1806 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001807 }
1808 }
1809 ]
1810 },
1811 {
1812 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
1813 "id" : 16,
1814 "runtime_data" : [
1815 {
1816 "name" : "next_id",
1817 "bitwidth" : 32
1818 }
1819 ],
1820 "primitives" : [
1821 {
1822 "op" : "assign",
1823 "parameters" : [
1824 {
1825 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001826 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001827 },
1828 {
1829 "type" : "hexstr",
1830 "value" : "0x000000"
1831 }
1832 ],
1833 "source_info" : {
1834 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001835 "line" : 66,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001836 "column" : 35,
1837 "source_fragment" : "= 0; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001838 }
1839 },
1840 {
1841 "op" : "assign",
1842 "parameters" : [
1843 {
1844 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001845 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001846 },
1847 {
1848 "type" : "runtime_data",
1849 "value" : 0
1850 }
1851 ],
1852 "source_info" : {
1853 "filename" : "include/control/forwarding.p4",
1854 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001855 "column" : 32,
1856 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001857 }
1858 }
1859 ]
1860 },
1861 {
1862 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001863 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001864 "runtime_data" : [
1865 {
1866 "name" : "next_id",
1867 "bitwidth" : 32
1868 }
1869 ],
1870 "primitives" : [
1871 {
1872 "op" : "assign",
1873 "parameters" : [
1874 {
1875 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001876 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001877 },
1878 {
1879 "type" : "runtime_data",
1880 "value" : 0
1881 }
1882 ],
1883 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001884 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001885 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001886 "column" : 32,
1887 "source_fragment" : "= next_id; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001888 }
1889 }
1890 ]
1891 },
1892 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001893 "name" : "FabricIngress.forwarding.nop_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001894 "id" : 18,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001895 "runtime_data" : [],
1896 "primitives" : []
Yi Tseng47eac892018-07-11 02:17:04 +08001897 },
1898 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001899 "name" : "FabricIngress.acl.set_next_id_acl",
Charles Chancf696e52018-08-16 16:25:13 -07001900 "id" : 19,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001901 "runtime_data" : [
1902 {
1903 "name" : "next_id",
1904 "bitwidth" : 32
1905 }
1906 ],
1907 "primitives" : [
1908 {
1909 "op" : "assign",
1910 "parameters" : [
1911 {
1912 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001913 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08001914 },
1915 {
1916 "type" : "runtime_data",
1917 "value" : 0
1918 }
1919 ],
1920 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001921 "filename" : "include/control/acl.p4",
1922 "line" : 33,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001923 "column" : 32,
1924 "source_fragment" : "= next_id; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001925 }
1926 }
1927 ]
1928 },
1929 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001930 "name" : "FabricIngress.acl.punt_to_cpu",
Charles Chancf696e52018-08-16 16:25:13 -07001931 "id" : 20,
Charles Chancd03f072018-08-31 17:46:37 -07001932 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001933 "primitives" : [
1934 {
1935 "op" : "assign",
1936 "parameters" : [
1937 {
1938 "type" : "field",
1939 "value" : ["standard_metadata", "egress_spec"]
1940 },
1941 {
1942 "type" : "hexstr",
1943 "value" : "0x00ff"
1944 }
1945 ],
1946 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001947 "filename" : "include/control/acl.p4",
1948 "line" : 39,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001949 "column" : 8,
1950 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001951 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001952 },
1953 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001954 "op" : "assign",
1955 "parameters" : [
1956 {
1957 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001958 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001959 },
1960 {
1961 "type" : "expression",
1962 "value" : {
1963 "type" : "expression",
1964 "value" : {
1965 "op" : "b2d",
1966 "left" : null,
1967 "right" : {
1968 "type" : "bool",
1969 "value" : true
1970 }
1971 }
1972 }
1973 }
1974 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001975 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001976 "filename" : "include/control/acl.p4",
1977 "line" : 40,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001978 "column" : 34,
1979 "source_fragment" : "= true; ..."
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001980 }
1981 }
1982 ]
1983 },
1984 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001985 "name" : "FabricIngress.acl.set_clone_session_id",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001986 "id" : 21,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001987 "runtime_data" : [
1988 {
1989 "name" : "clone_id",
1990 "bitwidth" : 32
1991 }
1992 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001993 "primitives" : [
1994 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001995 "op" : "clone_ingress_pkt_to_egress",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001996 "parameters" : [
1997 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001998 "type" : "runtime_data",
1999 "value" : 0
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002000 },
2001 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002002 "type" : "hexstr",
2003 "value" : "0x1"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002004 }
2005 ],
2006 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002007 "filename" : "include/control/acl.p4",
2008 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002009 "column" : 8,
2010 "source_fragment" : "clone3<standard_metadata_t>(CloneType.I2E, clone_id, standard_metadata)"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002011 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002012 }
2013 ]
2014 },
2015 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002016 "name" : "FabricIngress.acl.drop",
2017 "id" : 22,
Yi Tseng47eac892018-07-11 02:17:04 +08002018 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002019 "primitives" : [
2020 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002021 "op" : "mark_to_drop",
2022 "parameters" : [
2023 {
2024 "type" : "header",
2025 "value" : "standard_metadata"
2026 }
2027 ],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002028 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002029 "filename" : "include/control/acl.p4",
2030 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002031 "column" : 8,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002032 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002033 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002034 },
2035 {
2036 "op" : "assign",
2037 "parameters" : [
2038 {
2039 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002040 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002041 },
2042 {
2043 "type" : "expression",
2044 "value" : {
2045 "type" : "expression",
2046 "value" : {
2047 "op" : "b2d",
2048 "left" : null,
2049 "right" : {
2050 "type" : "bool",
2051 "value" : true
2052 }
2053 }
2054 }
2055 }
2056 ],
2057 "source_info" : {
2058 "filename" : "include/control/acl.p4",
2059 "line" : 52,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002060 "column" : 34,
2061 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002062 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002063 }
2064 ]
2065 },
2066 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002067 "name" : "FabricIngress.acl.nop_acl",
2068 "id" : 23,
Charles Chancf696e52018-08-16 16:25:13 -07002069 "runtime_data" : [],
2070 "primitives" : []
2071 },
2072 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002073 "name" : "FabricIngress.next.set_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002074 "id" : 24,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002075 "runtime_data" : [
2076 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002077 "name" : "vlan_id",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002078 "bitwidth" : 12
2079 }
2080 ],
2081 "primitives" : [
2082 {
2083 "op" : "assign",
2084 "parameters" : [
2085 {
2086 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002087 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002088 },
2089 {
2090 "type" : "runtime_data",
2091 "value" : 0
2092 }
2093 ],
2094 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002095 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002096 "line" : 70,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002097 "column" : 32,
2098 "source_fragment" : "= vlan_id; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002099 }
2100 }
2101 ]
2102 },
2103 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002104 "name" : "FabricIngress.next.output_xconnect",
2105 "id" : 25,
2106 "runtime_data" : [
2107 {
2108 "name" : "port_num",
2109 "bitwidth" : 9
2110 }
2111 ],
2112 "primitives" : [
2113 {
2114 "op" : "assign",
2115 "parameters" : [
2116 {
2117 "type" : "field",
2118 "value" : ["standard_metadata", "egress_spec"]
2119 },
2120 {
2121 "type" : "runtime_data",
2122 "value" : 0
2123 }
2124 ],
2125 "source_info" : {
2126 "filename" : "include/control/next.p4",
2127 "line" : 31,
2128 "column" : 5,
2129 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2130 }
2131 }
2132 ]
2133 },
2134 {
2135 "name" : "FabricIngress.next.set_next_id_xconnect",
2136 "id" : 26,
2137 "runtime_data" : [
2138 {
2139 "name" : "next_id",
2140 "bitwidth" : 32
2141 }
2142 ],
2143 "primitives" : [
2144 {
2145 "op" : "assign",
2146 "parameters" : [
2147 {
2148 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002149 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002150 },
2151 {
2152 "type" : "runtime_data",
2153 "value" : 0
2154 }
2155 ],
2156 "source_info" : {
2157 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002158 "line" : 100,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002159 "column" : 32,
2160 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002161 }
2162 }
2163 ]
2164 },
2165 {
2166 "name" : "FabricIngress.next.output_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002167 "id" : 27,
Yi Tseng47eac892018-07-11 02:17:04 +08002168 "runtime_data" : [
2169 {
2170 "name" : "port_num",
2171 "bitwidth" : 9
2172 }
2173 ],
2174 "primitives" : [
2175 {
2176 "op" : "assign",
2177 "parameters" : [
2178 {
2179 "type" : "field",
2180 "value" : ["standard_metadata", "egress_spec"]
2181 },
2182 {
2183 "type" : "runtime_data",
2184 "value" : 0
2185 }
2186 ],
2187 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002188 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002189 "line" : 31,
2190 "column" : 5,
2191 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng47eac892018-07-11 02:17:04 +08002192 }
2193 }
2194 ]
2195 },
2196 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002197 "name" : "FabricIngress.next.routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002198 "id" : 28,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002199 "runtime_data" : [
2200 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002201 "name" : "port_num",
2202 "bitwidth" : 9
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002203 },
2204 {
2205 "name" : "smac",
2206 "bitwidth" : 48
2207 },
2208 {
2209 "name" : "dmac",
2210 "bitwidth" : 48
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002211 }
2212 ],
2213 "primitives" : [
2214 {
2215 "op" : "assign",
2216 "parameters" : [
2217 {
2218 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002219 "value" : ["ethernet", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002220 },
2221 {
2222 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002223 "value" : 1
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002224 }
2225 ],
2226 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002227 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002228 "line" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002229 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002230 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2231 }
2232 },
2233 {
2234 "op" : "assign",
2235 "parameters" : [
2236 {
2237 "type" : "field",
2238 "value" : ["ethernet", "dst_addr"]
2239 },
2240 {
2241 "type" : "runtime_data",
2242 "value" : 2
2243 }
2244 ],
2245 "source_info" : {
2246 "filename" : "include/control/next.p4",
2247 "line" : 41,
2248 "column" : 8,
2249 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002250 }
2251 },
2252 {
2253 "op" : "assign",
2254 "parameters" : [
2255 {
2256 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002257 "value" : ["standard_metadata", "egress_spec"]
2258 },
2259 {
2260 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002261 "value" : 0
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002262 }
2263 ],
2264 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002265 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002266 "line" : 31,
2267 "column" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002268 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2269 }
2270 }
2271 ]
2272 },
2273 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002274 "name" : "FabricIngress.next.mpls_routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002275 "id" : 29,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002276 "runtime_data" : [
2277 {
2278 "name" : "port_num",
2279 "bitwidth" : 9
2280 },
2281 {
2282 "name" : "smac",
2283 "bitwidth" : 48
2284 },
2285 {
2286 "name" : "dmac",
2287 "bitwidth" : 48
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002288 },
2289 {
2290 "name" : "label",
2291 "bitwidth" : 20
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002292 }
2293 ],
2294 "primitives" : [
2295 {
2296 "op" : "assign",
2297 "parameters" : [
2298 {
2299 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002300 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002301 },
2302 {
2303 "type" : "runtime_data",
2304 "value" : 3
2305 }
2306 ],
2307 "source_info" : {
2308 "filename" : "include/control/next.p4",
2309 "line" : 46,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002310 "column" : 35,
2311 "source_fragment" : "= label; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002312 }
2313 },
2314 {
2315 "op" : "assign",
2316 "parameters" : [
2317 {
2318 "type" : "field",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002319 "value" : ["ethernet", "src_addr"]
2320 },
2321 {
2322 "type" : "runtime_data",
2323 "value" : 1
2324 }
2325 ],
2326 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002327 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002328 "line" : 36,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002329 "column" : 8,
2330 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2331 }
2332 },
2333 {
2334 "op" : "assign",
2335 "parameters" : [
2336 {
2337 "type" : "field",
2338 "value" : ["ethernet", "dst_addr"]
2339 },
2340 {
2341 "type" : "runtime_data",
2342 "value" : 2
2343 }
2344 ],
2345 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002346 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002347 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002348 "column" : 8,
2349 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2350 }
2351 },
2352 {
2353 "op" : "assign",
2354 "parameters" : [
2355 {
2356 "type" : "field",
2357 "value" : ["standard_metadata", "egress_spec"]
2358 },
2359 {
2360 "type" : "runtime_data",
2361 "value" : 0
2362 }
2363 ],
2364 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002365 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002366 "line" : 31,
2367 "column" : 5,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002368 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2369 }
2370 }
2371 ]
2372 },
2373 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002374 "name" : "FabricIngress.next.set_mcast_group_id",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002375 "id" : 30,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002376 "runtime_data" : [
2377 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002378 "name" : "group_id",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002379 "bitwidth" : 16
2380 }
2381 ],
2382 "primitives" : [
2383 {
2384 "op" : "assign",
2385 "parameters" : [
2386 {
2387 "type" : "field",
2388 "value" : ["standard_metadata", "mcast_grp"]
2389 },
2390 {
2391 "type" : "runtime_data",
2392 "value" : 0
2393 }
2394 ],
2395 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002396 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002397 "line" : 213,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002398 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002399 "source_fragment" : "standard_metadata.mcast_grp = group_id"
Esin Karaman971fb7f2017-12-28 13:44:52 +00002400 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002401 },
2402 {
2403 "op" : "assign",
2404 "parameters" : [
2405 {
2406 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002407 "value" : ["scalars", "fabric_metadata_t._is_multicast11"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002408 },
2409 {
2410 "type" : "expression",
2411 "value" : {
2412 "type" : "expression",
2413 "value" : {
2414 "op" : "b2d",
2415 "left" : null,
2416 "right" : {
2417 "type" : "bool",
2418 "value" : true
2419 }
2420 }
2421 }
2422 }
2423 ],
2424 "source_info" : {
2425 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002426 "line" : 214,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002427 "column" : 37,
2428 "source_fragment" : "= true; ..."
Carmelo Casconea5400af2018-07-17 22:11:54 +02002429 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002430 }
2431 ]
2432 },
2433 {
2434 "name" : "act",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002435 "id" : 31,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002436 "runtime_data" : [],
2437 "primitives" : [
2438 {
2439 "op" : "assign",
2440 "parameters" : [
2441 {
2442 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002443 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002444 },
2445 {
2446 "type" : "expression",
2447 "value" : {
2448 "type" : "expression",
2449 "value" : {
2450 "op" : "b2d",
2451 "left" : null,
2452 "right" : {
2453 "type" : "bool",
2454 "value" : true
2455 }
2456 }
2457 }
2458 }
2459 ],
2460 "source_info" : {
2461 "filename" : "include/spgw.p4",
2462 "line" : 30,
2463 "column" : 32,
2464 "source_fragment" : "return"
2465 }
2466 }
2467 ]
2468 },
2469 {
2470 "name" : "act_0",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002471 "id" : 32,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002472 "runtime_data" : [],
2473 "primitives" : [
2474 {
2475 "op" : "remove_header",
2476 "parameters" : [
2477 {
2478 "type" : "header",
2479 "value" : "gtpu_ipv4"
2480 }
2481 ],
2482 "source_info" : {
2483 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002484 "line" : 62,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002485 "column" : 50,
2486 "source_fragment" : "hdr.gtpu_ipv4"
2487 }
2488 },
2489 {
2490 "op" : "remove_header",
2491 "parameters" : [
2492 {
2493 "type" : "header",
2494 "value" : "gtpu_udp"
2495 }
2496 ],
2497 "source_info" : {
2498 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002499 "line" : 62,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002500 "column" : 65,
2501 "source_fragment" : "hdr.gtpu_udp"
2502 }
2503 },
2504 {
2505 "op" : "assign",
2506 "parameters" : [
2507 {
2508 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002509 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002510 },
2511 {
2512 "type" : "expression",
2513 "value" : {
2514 "type" : "expression",
2515 "value" : {
2516 "op" : "b2d",
2517 "left" : null,
2518 "right" : {
2519 "type" : "bool",
2520 "value" : false
2521 }
2522 }
2523 }
2524 }
2525 ]
2526 }
2527 ]
2528 },
2529 {
2530 "name" : "act_1",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002531 "id" : 33,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002532 "runtime_data" : [],
2533 "primitives" : [
2534 {
2535 "op" : "assign_header",
2536 "parameters" : [
2537 {
2538 "type" : "header",
2539 "value" : "udp"
2540 },
2541 {
2542 "type" : "header",
2543 "value" : "inner_udp"
2544 }
2545 ],
2546 "source_info" : {
2547 "filename" : "include/spgw.p4",
2548 "line" : 35,
2549 "column" : 16,
2550 "source_fragment" : "= inner_udp; ..."
2551 }
2552 }
2553 ]
2554 },
2555 {
2556 "name" : "act_2",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002557 "id" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002558 "runtime_data" : [],
2559 "primitives" : [
2560 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002561 "op" : "remove_header",
2562 "parameters" : [
2563 {
2564 "type" : "header",
2565 "value" : "udp"
2566 }
2567 ],
2568 "source_info" : {
2569 "filename" : "include/spgw.p4",
2570 "line" : 37,
2571 "column" : 12,
2572 "source_fragment" : "udp.setInvalid()"
2573 }
2574 }
2575 ]
2576 },
2577 {
2578 "name" : "act_3",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002579 "id" : 35,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002580 "runtime_data" : [],
2581 "primitives" : [
2582 {
2583 "op" : "assign_header",
2584 "parameters" : [
2585 {
2586 "type" : "header",
2587 "value" : "gtpu_ipv4"
2588 },
2589 {
2590 "type" : "header",
2591 "value" : "ipv4"
2592 }
2593 ],
2594 "source_info" : {
2595 "filename" : "include/spgw.p4",
2596 "line" : 31,
2597 "column" : 18,
2598 "source_fragment" : "= ipv4; ..."
2599 }
2600 },
2601 {
2602 "op" : "assign_header",
2603 "parameters" : [
2604 {
2605 "type" : "header",
2606 "value" : "ipv4"
2607 },
2608 {
2609 "type" : "header",
2610 "value" : "inner_ipv4"
2611 }
2612 ],
2613 "source_info" : {
2614 "filename" : "include/spgw.p4",
2615 "line" : 32,
2616 "column" : 13,
2617 "source_fragment" : "= inner_ipv4; ..."
2618 }
2619 },
2620 {
2621 "op" : "assign_header",
2622 "parameters" : [
2623 {
2624 "type" : "header",
2625 "value" : "gtpu_udp"
2626 },
2627 {
2628 "type" : "header",
2629 "value" : "udp"
2630 }
2631 ],
2632 "source_info" : {
2633 "filename" : "include/spgw.p4",
2634 "line" : 33,
2635 "column" : 17,
2636 "source_fragment" : "= udp; ..."
2637 }
2638 }
2639 ]
2640 },
2641 {
2642 "name" : "act_4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002643 "id" : 36,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002644 "runtime_data" : [],
2645 "primitives" : [
2646 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002647 "op" : "assign",
2648 "parameters" : [
2649 {
2650 "type" : "field",
2651 "value" : ["standard_metadata", "egress_spec"]
2652 },
2653 {
2654 "type" : "field",
2655 "value" : ["packet_out", "egress_port"]
2656 }
2657 ],
2658 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002659 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002660 "line" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002661 "column" : 12,
2662 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2663 }
2664 },
2665 {
2666 "op" : "remove_header",
2667 "parameters" : [
2668 {
2669 "type" : "header",
2670 "value" : "packet_out"
2671 }
2672 ],
2673 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002674 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002675 "line" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002676 "column" : 12,
2677 "source_fragment" : "hdr.packet_out.setInvalid()"
2678 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002679 },
2680 {
2681 "op" : "assign",
2682 "parameters" : [
2683 {
2684 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002685 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out12"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002686 },
2687 {
2688 "type" : "expression",
2689 "value" : {
2690 "type" : "expression",
2691 "value" : {
2692 "op" : "b2d",
2693 "left" : null,
2694 "right" : {
2695 "type" : "bool",
2696 "value" : true
2697 }
2698 }
2699 }
2700 }
2701 ],
2702 "source_info" : {
2703 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002704 "line" : 27,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002705 "column" : 53,
2706 "source_fragment" : "= true; ..."
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002707 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002708 },
2709 {
2710 "op" : "exit",
2711 "parameters" : [],
2712 "source_info" : {
2713 "filename" : "include/control/packetio.p4",
2714 "line" : 29,
2715 "column" : 12,
2716 "source_fragment" : "exit"
2717 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002718 }
2719 ]
2720 },
2721 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002722 "name" : "act_5",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002723 "id" : 37,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002724 "runtime_data" : [],
2725 "primitives" : [
2726 {
2727 "op" : "assign",
2728 "parameters" : [
2729 {
2730 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002731 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002732 },
2733 {
2734 "type" : "field",
2735 "value" : ["vlan_tag", "eth_type"]
2736 }
2737 ],
2738 "source_info" : {
2739 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002740 "line" : 105,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002741 "column" : 37,
2742 "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002743 }
2744 },
2745 {
2746 "op" : "assign",
2747 "parameters" : [
2748 {
2749 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002750 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002751 },
2752 {
2753 "type" : "field",
2754 "value" : ["vlan_tag", "vlan_id"]
2755 }
2756 ],
2757 "source_info" : {
2758 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002759 "line" : 106,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002760 "column" : 36,
2761 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002762 }
2763 },
2764 {
2765 "op" : "assign",
2766 "parameters" : [
2767 {
2768 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002769 "value" : ["scalars", "fabric_metadata_t._vlan_pri3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002770 },
2771 {
2772 "type" : "field",
2773 "value" : ["vlan_tag", "pri"]
2774 }
2775 ],
2776 "source_info" : {
2777 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002778 "line" : 107,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002779 "column" : 37,
2780 "source_fragment" : "= hdr.vlan_tag.pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002781 }
2782 },
2783 {
2784 "op" : "assign",
2785 "parameters" : [
2786 {
2787 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002788 "value" : ["scalars", "fabric_metadata_t._vlan_cfi4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002789 },
2790 {
2791 "type" : "field",
2792 "value" : ["vlan_tag", "cfi"]
2793 }
2794 ],
2795 "source_info" : {
2796 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002797 "line" : 108,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002798 "column" : 37,
2799 "source_fragment" : "= hdr.vlan_tag.cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002800 }
2801 }
2802 ]
2803 },
2804 {
2805 "name" : "act_6",
2806 "id" : 38,
2807 "runtime_data" : [],
2808 "primitives" : [
2809 {
2810 "op" : "assign",
2811 "parameters" : [
2812 {
2813 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002814 "value" : ["scalars", "fabric_metadata_t._mpls_ttl6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002815 },
2816 {
2817 "type" : "hexstr",
2818 "value" : "0x41"
2819 }
2820 ],
2821 "source_info" : {
2822 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002823 "line" : 115,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002824 "column" : 37,
2825 "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002826 }
2827 }
2828 ]
2829 },
2830 {
2831 "name" : "act_7",
2832 "id" : 39,
2833 "runtime_data" : [],
2834 "primitives" : [
2835 {
2836 "op" : "assign",
2837 "parameters" : [
2838 {
2839 "type" : "field",
2840 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002841 },
2842 {
2843 "type" : "expression",
2844 "value" : {
2845 "type" : "expression",
2846 "value" : {
2847 "op" : "b2d",
2848 "left" : null,
2849 "right" : {
2850 "type" : "bool",
2851 "value" : true
2852 }
2853 }
2854 }
2855 }
2856 ]
2857 }
2858 ]
2859 },
2860 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002861 "name" : "act_8",
2862 "id" : 40,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002863 "runtime_data" : [],
2864 "primitives" : [
2865 {
2866 "op" : "assign",
2867 "parameters" : [
2868 {
2869 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002870 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002871 },
2872 {
2873 "type" : "expression",
2874 "value" : {
2875 "type" : "expression",
2876 "value" : {
2877 "op" : "b2d",
2878 "left" : null,
2879 "right" : {
2880 "type" : "bool",
2881 "value" : false
2882 }
2883 }
2884 }
2885 }
2886 ]
2887 }
2888 ]
2889 },
2890 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002891 "name" : "act_9",
2892 "id" : 41,
2893 "runtime_data" : [],
2894 "primitives" : [
2895 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002896 "op" : "mark_to_drop",
2897 "parameters" : [
2898 {
2899 "type" : "header",
2900 "value" : "standard_metadata"
2901 }
2902 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002903 "source_info" : {
2904 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002905 "line" : 149,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002906 "column" : 16,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002907 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002908 }
2909 }
2910 ]
2911 },
2912 {
2913 "name" : "act_10",
2914 "id" : 42,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002915 "runtime_data" : [],
2916 "primitives" : [
2917 {
2918 "op" : "assign",
2919 "parameters" : [
2920 {
2921 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002922 "value" : ["scalars", "fabric_metadata_t._spgw_direction16"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002923 },
2924 {
2925 "type" : "hexstr",
2926 "value" : "0x01"
2927 }
2928 ],
2929 "source_info" : {
2930 "filename" : "include/control/../define.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002931 "line" : 142,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002932 "column" : 36,
2933 "source_fragment" : "2w1; ..."
2934 }
2935 }
2936 ]
2937 },
2938 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002939 "name" : "act_11",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002940 "id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002941 "runtime_data" : [],
2942 "primitives" : [
2943 {
2944 "op" : "assign",
2945 "parameters" : [
2946 {
2947 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002948 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002949 },
2950 {
2951 "type" : "expression",
2952 "value" : {
2953 "type" : "expression",
2954 "value" : {
2955 "op" : "b2d",
2956 "left" : null,
2957 "right" : {
2958 "type" : "bool",
2959 "value" : true
2960 }
2961 }
2962 }
2963 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002964 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002965 }
2966 ]
2967 },
2968 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002969 "name" : "act_12",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002970 "id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002971 "runtime_data" : [],
2972 "primitives" : [
2973 {
2974 "op" : "assign",
2975 "parameters" : [
2976 {
2977 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002978 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002979 },
2980 {
2981 "type" : "expression",
2982 "value" : {
2983 "type" : "expression",
2984 "value" : {
2985 "op" : "b2d",
2986 "left" : null,
2987 "right" : {
2988 "type" : "bool",
2989 "value" : false
2990 }
2991 }
2992 }
2993 }
2994 ]
2995 }
2996 ]
2997 },
2998 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002999 "name" : "act_13",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003000 "id" : 45,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003001 "runtime_data" : [],
3002 "primitives" : [
3003 {
3004 "op" : "assign",
3005 "parameters" : [
3006 {
3007 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003008 "value" : ["scalars", "fabric_metadata_t._spgw_direction16"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08003009 },
3010 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003011 "type" : "hexstr",
3012 "value" : "0x02"
Yi Tseng27b9bc02018-04-12 14:52:40 +08003013 }
3014 ],
3015 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003016 "filename" : "include/control/../define.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003017 "line" : 143,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003018 "column" : 38,
3019 "source_fragment" : "2w2; ..."
Yi Tseng27b9bc02018-04-12 14:52:40 +08003020 }
3021 }
3022 ]
3023 },
3024 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003025 "name" : "act_14",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003026 "id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003027 "runtime_data" : [],
3028 "primitives" : [
3029 {
3030 "op" : "assign",
3031 "parameters" : [
3032 {
3033 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003034 "value" : ["scalars", "fabric_metadata_t._spgw_direction16"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003035 },
3036 {
3037 "type" : "hexstr",
3038 "value" : "0x00"
3039 }
3040 ],
3041 "source_info" : {
3042 "filename" : "include/control/../define.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003043 "line" : 141,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003044 "column" : 37,
3045 "source_fragment" : "2w0; ..."
3046 }
3047 },
3048 {
3049 "op" : "assign",
3050 "parameters" : [
3051 {
3052 "type" : "field",
3053 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003054 },
3055 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003056 "type" : "expression",
3057 "value" : {
3058 "type" : "expression",
3059 "value" : {
3060 "op" : "b2d",
3061 "left" : null,
3062 "right" : {
3063 "type" : "bool",
3064 "value" : true
3065 }
3066 }
3067 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003068 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003069 ],
3070 "source_info" : {
3071 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003072 "line" : 158,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003073 "column" : 12,
3074 "source_fragment" : "return"
3075 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003076 }
3077 ]
3078 },
3079 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003080 "name" : "act_15",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003081 "id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003082 "runtime_data" : [],
3083 "primitives" : [
3084 {
3085 "op" : "assign",
3086 "parameters" : [
3087 {
3088 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003089 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003090 },
3091 {
3092 "type" : "expression",
3093 "value" : {
3094 "type" : "expression",
3095 "value" : {
3096 "op" : "b2d",
3097 "left" : null,
3098 "right" : {
3099 "type" : "bool",
3100 "value" : false
3101 }
3102 }
3103 }
3104 }
3105 ]
3106 }
3107 ]
3108 },
3109 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003110 "name" : "act_16",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003111 "id" : 48,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003112 "runtime_data" : [],
3113 "primitives" : [
3114 {
3115 "op" : "assign",
3116 "parameters" : [
3117 {
3118 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003119 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len17"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003120 },
3121 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003122 "type" : "field",
3123 "value" : ["ipv4", "total_len"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003124 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003125 ],
3126 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003127 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003128 "line" : 175,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003129 "column" : 34,
3130 "source_fragment" : "= ipv4.total_len; ..."
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003131 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003132 }
3133 ]
3134 },
3135 {
3136 "name" : "act_17",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003137 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003138 "runtime_data" : [],
3139 "primitives" : [
3140 {
3141 "op" : "assign",
3142 "parameters" : [
3143 {
3144 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003145 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003146 },
3147 {
3148 "type" : "expression",
3149 "value" : {
3150 "type" : "expression",
3151 "value" : {
3152 "op" : "&",
3153 "left" : {
3154 "type" : "field",
3155 "value" : ["standard_metadata", "egress_spec"]
3156 },
3157 "right" : {
3158 "type" : "hexstr",
3159 "value" : "0xffffffff"
3160 }
3161 }
3162 }
3163 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003164 ],
3165 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003166 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003167 "line" : 31,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003168 "column" : 38,
3169 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3170 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003171 },
3172 {
3173 "op" : "count",
3174 "parameters" : [
3175 {
3176 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003177 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003178 },
3179 {
3180 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003181 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003182 }
3183 ],
3184 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003185 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003186 "line" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003187 "column" : 12,
3188 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3189 }
3190 }
3191 ]
3192 },
3193 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003194 "name" : "act_18",
3195 "id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003196 "runtime_data" : [],
3197 "primitives" : [
3198 {
3199 "op" : "assign",
3200 "parameters" : [
3201 {
3202 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003203 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003204 },
3205 {
3206 "type" : "expression",
3207 "value" : {
3208 "type" : "expression",
3209 "value" : {
3210 "op" : "&",
3211 "left" : {
3212 "type" : "field",
3213 "value" : ["standard_metadata", "ingress_port"]
3214 },
3215 "right" : {
3216 "type" : "hexstr",
3217 "value" : "0xffffffff"
3218 }
3219 }
3220 }
3221 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003222 ],
3223 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003224 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003225 "line" : 34,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003226 "column" : 39,
3227 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3228 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003229 },
3230 {
3231 "op" : "count",
3232 "parameters" : [
3233 {
3234 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003235 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003236 },
3237 {
3238 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003239 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003240 }
3241 ],
3242 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003243 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003244 "line" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003245 "column" : 12,
3246 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3247 }
3248 }
3249 ]
3250 },
3251 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003252 "name" : "nop",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003253 "id" : 51,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003254 "runtime_data" : [],
Charles Chancd03f072018-08-31 17:46:37 -07003255 "primitives" : []
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003256 },
3257 {
Charles Chancd03f072018-08-31 17:46:37 -07003258 "name" : "FabricEgress.spgw_egress.gtpu_encap",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003259 "id" : 52,
Charles Chancd03f072018-08-31 17:46:37 -07003260 "runtime_data" : [],
3261 "primitives" : [
3262 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003263 "op" : "add_header",
3264 "parameters" : [
3265 {
3266 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003267 "value" : "gtpu_ipv4"
3268 }
3269 ],
3270 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003271 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003272 "line" : 191,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003273 "column" : 8,
3274 "source_fragment" : "gtpu_ipv4.setValid()"
3275 }
3276 },
3277 {
3278 "op" : "assign",
3279 "parameters" : [
3280 {
3281 "type" : "field",
3282 "value" : ["gtpu_ipv4", "version"]
3283 },
3284 {
3285 "type" : "hexstr",
3286 "value" : "0x04"
3287 }
3288 ],
3289 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003290 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003291 "line" : 192,
Yi Tseng3d3956d2018-01-31 17:28:05 -08003292 "column" : 8,
3293 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003294 }
3295 },
3296 {
3297 "op" : "assign",
3298 "parameters" : [
3299 {
3300 "type" : "field",
3301 "value" : ["gtpu_ipv4", "ihl"]
3302 },
3303 {
3304 "type" : "hexstr",
3305 "value" : "0x05"
3306 }
3307 ],
3308 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003309 "filename" : "include/control/../define.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003310 "line" : 124,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003311 "column" : 28,
3312 "source_fragment" : "5; ..."
3313 }
3314 },
3315 {
3316 "op" : "assign",
3317 "parameters" : [
3318 {
3319 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003320 "value" : ["gtpu_ipv4", "dscp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003321 },
3322 {
3323 "type" : "hexstr",
3324 "value" : "0x00"
3325 }
3326 ],
3327 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003328 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003329 "line" : 194,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003330 "column" : 8,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003331 "source_fragment" : "gtpu_ipv4.dscp = 0"
3332 }
3333 },
3334 {
3335 "op" : "assign",
3336 "parameters" : [
3337 {
3338 "type" : "field",
3339 "value" : ["gtpu_ipv4", "ecn"]
3340 },
3341 {
3342 "type" : "hexstr",
3343 "value" : "0x00"
3344 }
3345 ],
3346 "source_info" : {
3347 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003348 "line" : 195,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003349 "column" : 8,
3350 "source_fragment" : "gtpu_ipv4.ecn = 0"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003351 }
3352 },
3353 {
3354 "op" : "assign",
3355 "parameters" : [
3356 {
3357 "type" : "field",
3358 "value" : ["gtpu_ipv4", "total_len"]
3359 },
3360 {
3361 "type" : "expression",
3362 "value" : {
3363 "type" : "expression",
3364 "value" : {
3365 "op" : "&",
3366 "left" : {
3367 "type" : "expression",
3368 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003369 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003370 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003371 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003372 "value" : ["ipv4", "total_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003373 },
3374 "right" : {
3375 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003376 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003377 }
3378 }
3379 },
3380 "right" : {
3381 "type" : "hexstr",
3382 "value" : "0xffff"
3383 }
3384 }
3385 }
3386 }
3387 ],
3388 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003389 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003390 "line" : 196,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003391 "column" : 8,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003392 "source_fragment" : "gtpu_ipv4.total_len = ipv4.total_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003393 }
3394 },
3395 {
3396 "op" : "assign",
3397 "parameters" : [
3398 {
3399 "type" : "field",
3400 "value" : ["gtpu_ipv4", "identification"]
3401 },
3402 {
3403 "type" : "hexstr",
3404 "value" : "0x1513"
3405 }
3406 ],
3407 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003408 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003409 "line" : 198,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003410 "column" : 8,
3411 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
3412 }
3413 },
3414 {
3415 "op" : "assign",
3416 "parameters" : [
3417 {
3418 "type" : "field",
3419 "value" : ["gtpu_ipv4", "flags"]
3420 },
3421 {
3422 "type" : "hexstr",
3423 "value" : "0x00"
3424 }
3425 ],
3426 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003427 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003428 "line" : 199,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003429 "column" : 8,
3430 "source_fragment" : "gtpu_ipv4.flags = 0"
3431 }
3432 },
3433 {
3434 "op" : "assign",
3435 "parameters" : [
3436 {
3437 "type" : "field",
3438 "value" : ["gtpu_ipv4", "frag_offset"]
3439 },
3440 {
3441 "type" : "hexstr",
3442 "value" : "0x0000"
3443 }
3444 ],
3445 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003446 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003447 "line" : 200,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003448 "column" : 8,
3449 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
3450 }
3451 },
3452 {
3453 "op" : "assign",
3454 "parameters" : [
3455 {
3456 "type" : "field",
3457 "value" : ["gtpu_ipv4", "ttl"]
3458 },
3459 {
3460 "type" : "hexstr",
3461 "value" : "0x40"
3462 }
3463 ],
3464 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003465 "filename" : "include/control/../define.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003466 "line" : 137,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003467 "column" : 32,
3468 "source_fragment" : "64; ..."
3469 }
3470 },
3471 {
3472 "op" : "assign",
3473 "parameters" : [
3474 {
3475 "type" : "field",
3476 "value" : ["gtpu_ipv4", "protocol"]
3477 },
3478 {
3479 "type" : "hexstr",
3480 "value" : "0x11"
3481 }
3482 ],
3483 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003484 "filename" : "include/control/../define.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003485 "line" : 121,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003486 "column" : 25,
3487 "source_fragment" : "17; ..."
3488 }
3489 },
3490 {
3491 "op" : "assign",
3492 "parameters" : [
3493 {
3494 "type" : "field",
3495 "value" : ["gtpu_ipv4", "dst_addr"]
3496 },
3497 {
3498 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003499 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr19"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003500 }
3501 ],
3502 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003503 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003504 "line" : 203,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003505 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003506 "source_fragment" : "gtpu_ipv4.dst_addr = fabric_meta.spgw.s1u_enb_addr; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003507 }
3508 },
3509 {
3510 "op" : "assign",
3511 "parameters" : [
3512 {
3513 "type" : "field",
3514 "value" : ["gtpu_ipv4", "src_addr"]
3515 },
3516 {
3517 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003518 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr20"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003519 }
3520 ],
3521 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003522 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003523 "line" : 204,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003524 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003525 "source_fragment" : "gtpu_ipv4.src_addr = fabric_meta.spgw.s1u_sgw_addr; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003526 }
3527 },
3528 {
3529 "op" : "assign",
3530 "parameters" : [
3531 {
3532 "type" : "field",
3533 "value" : ["gtpu_ipv4", "hdr_checksum"]
3534 },
3535 {
3536 "type" : "hexstr",
3537 "value" : "0x0000"
3538 }
3539 ],
3540 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003541 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003542 "line" : 205,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003543 "column" : 8,
3544 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
3545 }
3546 },
3547 {
3548 "op" : "add_header",
3549 "parameters" : [
3550 {
3551 "type" : "header",
3552 "value" : "gtpu_udp"
3553 }
3554 ],
3555 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003556 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003557 "line" : 207,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003558 "column" : 8,
3559 "source_fragment" : "gtpu_udp.setValid()"
3560 }
3561 },
3562 {
3563 "op" : "assign",
3564 "parameters" : [
3565 {
3566 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003567 "value" : ["gtpu_udp", "sport"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003568 },
3569 {
3570 "type" : "hexstr",
3571 "value" : "0x0868"
3572 }
3573 ],
3574 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003575 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003576 "line" : 208,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003577 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003578 "source_fragment" : "gtpu_udp.sport = 2152"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003579 }
3580 },
3581 {
3582 "op" : "assign",
3583 "parameters" : [
3584 {
3585 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003586 "value" : ["gtpu_udp", "dport"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003587 },
3588 {
3589 "type" : "hexstr",
3590 "value" : "0x0868"
3591 }
3592 ],
3593 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003594 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003595 "line" : 209,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003596 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003597 "source_fragment" : "gtpu_udp.dport = 2152"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003598 }
3599 },
3600 {
3601 "op" : "assign",
3602 "parameters" : [
3603 {
3604 "type" : "field",
3605 "value" : ["gtpu_udp", "len"]
3606 },
3607 {
3608 "type" : "expression",
3609 "value" : {
3610 "type" : "expression",
3611 "value" : {
3612 "op" : "&",
3613 "left" : {
3614 "type" : "expression",
3615 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003616 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003617 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003618 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003619 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len17"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003620 },
3621 "right" : {
3622 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003623 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003624 }
3625 }
3626 },
3627 "right" : {
3628 "type" : "hexstr",
3629 "value" : "0xffff"
3630 }
3631 }
3632 }
3633 }
3634 ],
3635 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003636 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003637 "line" : 210,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003638 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003639 "source_fragment" : "gtpu_udp.len = fabric_meta.spgw.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003640 }
3641 },
3642 {
3643 "op" : "assign",
3644 "parameters" : [
3645 {
3646 "type" : "field",
3647 "value" : ["gtpu_udp", "checksum"]
3648 },
3649 {
3650 "type" : "hexstr",
3651 "value" : "0x0000"
3652 }
3653 ],
3654 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003655 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003656 "line" : 212,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003657 "column" : 8,
3658 "source_fragment" : "gtpu_udp.checksum = 0"
3659 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08003660 },
3661 {
3662 "op" : "add_header",
3663 "parameters" : [
3664 {
3665 "type" : "header",
3666 "value" : "gtpu"
3667 }
3668 ],
3669 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003670 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003671 "line" : 214,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003672 "column" : 8,
3673 "source_fragment" : "gtpu.setValid()"
3674 }
3675 },
3676 {
3677 "op" : "assign",
3678 "parameters" : [
3679 {
3680 "type" : "field",
3681 "value" : ["gtpu", "version"]
3682 },
3683 {
3684 "type" : "hexstr",
3685 "value" : "0x01"
3686 }
3687 ],
3688 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003689 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003690 "line" : 215,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003691 "column" : 8,
3692 "source_fragment" : "gtpu.version = 0x01"
3693 }
3694 },
3695 {
3696 "op" : "assign",
3697 "parameters" : [
3698 {
3699 "type" : "field",
3700 "value" : ["gtpu", "pt"]
3701 },
3702 {
3703 "type" : "hexstr",
3704 "value" : "0x01"
3705 }
3706 ],
3707 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003708 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003709 "line" : 216,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003710 "column" : 8,
3711 "source_fragment" : "gtpu.pt = 0x01"
3712 }
3713 },
3714 {
3715 "op" : "assign",
3716 "parameters" : [
3717 {
3718 "type" : "field",
3719 "value" : ["gtpu", "spare"]
3720 },
3721 {
3722 "type" : "hexstr",
3723 "value" : "0x00"
3724 }
3725 ],
3726 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003727 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003728 "line" : 217,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003729 "column" : 8,
3730 "source_fragment" : "gtpu.spare = 0"
3731 }
3732 },
3733 {
3734 "op" : "assign",
3735 "parameters" : [
3736 {
3737 "type" : "field",
3738 "value" : ["gtpu", "ex_flag"]
3739 },
3740 {
3741 "type" : "hexstr",
3742 "value" : "0x00"
3743 }
3744 ],
3745 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003746 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003747 "line" : 218,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003748 "column" : 8,
3749 "source_fragment" : "gtpu.ex_flag = 0"
3750 }
3751 },
3752 {
3753 "op" : "assign",
3754 "parameters" : [
3755 {
3756 "type" : "field",
3757 "value" : ["gtpu", "seq_flag"]
3758 },
3759 {
3760 "type" : "hexstr",
3761 "value" : "0x00"
3762 }
3763 ],
3764 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003765 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003766 "line" : 219,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003767 "column" : 8,
3768 "source_fragment" : "gtpu.seq_flag = 0"
3769 }
3770 },
3771 {
3772 "op" : "assign",
3773 "parameters" : [
3774 {
3775 "type" : "field",
3776 "value" : ["gtpu", "npdu_flag"]
3777 },
3778 {
3779 "type" : "hexstr",
3780 "value" : "0x00"
3781 }
3782 ],
3783 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003784 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003785 "line" : 220,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003786 "column" : 8,
3787 "source_fragment" : "gtpu.npdu_flag = 0"
3788 }
3789 },
3790 {
3791 "op" : "assign",
3792 "parameters" : [
3793 {
3794 "type" : "field",
3795 "value" : ["gtpu", "msgtype"]
3796 },
3797 {
3798 "type" : "hexstr",
3799 "value" : "0xff"
3800 }
3801 ],
3802 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003803 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003804 "line" : 221,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003805 "column" : 8,
3806 "source_fragment" : "gtpu.msgtype = 0xff"
3807 }
3808 },
3809 {
3810 "op" : "assign",
3811 "parameters" : [
3812 {
3813 "type" : "field",
3814 "value" : ["gtpu", "msglen"]
3815 },
3816 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003817 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003818 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len17"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003819 }
3820 ],
3821 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003822 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003823 "line" : 222,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003824 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003825 "source_fragment" : "gtpu.msglen = fabric_meta.spgw.ipv4_len; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003826 }
3827 },
3828 {
3829 "op" : "assign",
3830 "parameters" : [
3831 {
3832 "type" : "field",
3833 "value" : ["gtpu", "teid"]
3834 },
3835 {
3836 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003837 "value" : ["scalars", "fabric_metadata_t._spgw_teid18"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003838 }
3839 ],
3840 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003841 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003842 "line" : 223,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003843 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003844 "source_fragment" : "gtpu.teid = fabric_meta.spgw.teid; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003845 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003846 }
3847 ]
3848 },
3849 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003850 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
3851 "id" : 53,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003852 "runtime_data" : [],
3853 "primitives" : [
3854 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003855 "op" : "remove_header",
3856 "parameters" : [
3857 {
3858 "type" : "header",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003859 "value" : "mpls"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003860 }
3861 ],
3862 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003863 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003864 "line" : 252,
Yi Tseng47eac892018-07-11 02:17:04 +08003865 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003866 "source_fragment" : "hdr.mpls.setInvalid()"
Yi Tseng47eac892018-07-11 02:17:04 +08003867 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003868 },
Yi Tseng47eac892018-07-11 02:17:04 +08003869 {
3870 "op" : "assign",
3871 "parameters" : [
3872 {
3873 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003874 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Yi Tseng47eac892018-07-11 02:17:04 +08003875 },
3876 {
3877 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003878 "value" : ["scalars", "fabric_metadata_t._ip_eth_type1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003879 }
3880 ],
3881 "source_info" : {
3882 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003883 "line" : 254,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003884 "column" : 33,
3885 "source_fragment" : "= fabric_metadata.ip_eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003886 }
3887 }
3888 ]
3889 },
3890 {
3891 "name" : "FabricEgress.egress_next.set_mpls",
3892 "id" : 54,
3893 "runtime_data" : [],
3894 "primitives" : [
3895 {
3896 "op" : "add_header",
3897 "parameters" : [
3898 {
3899 "type" : "header",
3900 "value" : "mpls"
Yi Tseng47eac892018-07-11 02:17:04 +08003901 }
3902 ],
3903 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003904 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003905 "line" : 259,
Yi Tseng47eac892018-07-11 02:17:04 +08003906 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003907 "source_fragment" : "hdr.mpls.setValid()"
3908 }
3909 },
3910 {
3911 "op" : "assign",
3912 "parameters" : [
3913 {
3914 "type" : "field",
3915 "value" : ["mpls", "label"]
3916 },
3917 {
3918 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003919 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003920 }
3921 ],
3922 "source_info" : {
3923 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003924 "line" : 260,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003925 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003926 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003927 }
3928 },
3929 {
3930 "op" : "assign",
3931 "parameters" : [
3932 {
3933 "type" : "field",
3934 "value" : ["mpls", "tc"]
3935 },
3936 {
3937 "type" : "hexstr",
3938 "value" : "0x00"
3939 }
3940 ],
3941 "source_info" : {
3942 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003943 "line" : 261,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003944 "column" : 8,
3945 "source_fragment" : "hdr.mpls.tc = 3w0"
3946 }
3947 },
3948 {
3949 "op" : "assign",
3950 "parameters" : [
3951 {
3952 "type" : "field",
3953 "value" : ["mpls", "bos"]
3954 },
3955 {
3956 "type" : "hexstr",
3957 "value" : "0x01"
3958 }
3959 ],
3960 "source_info" : {
3961 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003962 "line" : 262,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003963 "column" : 8,
3964 "source_fragment" : "hdr.mpls.bos = 1w1"
3965 }
3966 },
3967 {
3968 "op" : "assign",
3969 "parameters" : [
3970 {
3971 "type" : "field",
3972 "value" : ["mpls", "ttl"]
3973 },
3974 {
3975 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003976 "value" : ["scalars", "fabric_metadata_t._mpls_ttl6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003977 }
3978 ],
3979 "source_info" : {
3980 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003981 "line" : 263,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003982 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003983 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003984 }
3985 },
3986 {
3987 "op" : "assign",
3988 "parameters" : [
3989 {
3990 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003991 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003992 },
3993 {
3994 "type" : "hexstr",
3995 "value" : "0x8847"
3996 }
3997 ],
3998 "source_info" : {
3999 "filename" : "include/control/../define.p4",
4000 "line" : 108,
4001 "column" : 31,
4002 "source_fragment" : "0x8847; ..."
4003 }
4004 }
4005 ]
4006 },
4007 {
4008 "name" : "FabricEgress.egress_next.push_vlan",
4009 "id" : 55,
4010 "runtime_data" : [],
4011 "primitives" : [
4012 {
4013 "op" : "add_header",
4014 "parameters" : [
4015 {
4016 "type" : "header",
4017 "value" : "vlan_tag"
4018 }
4019 ],
4020 "source_info" : {
4021 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004022 "line" : 271,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004023 "column" : 8,
4024 "source_fragment" : "hdr.vlan_tag.setValid()"
4025 }
4026 },
4027 {
4028 "op" : "assign",
4029 "parameters" : [
4030 {
4031 "type" : "field",
4032 "value" : ["vlan_tag", "cfi"]
4033 },
4034 {
4035 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004036 "value" : ["scalars", "fabric_metadata_t._vlan_cfi4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004037 }
4038 ],
4039 "source_info" : {
4040 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004041 "line" : 272,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004042 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004043 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004044 }
4045 },
4046 {
4047 "op" : "assign",
4048 "parameters" : [
4049 {
4050 "type" : "field",
4051 "value" : ["vlan_tag", "pri"]
4052 },
4053 {
4054 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004055 "value" : ["scalars", "fabric_metadata_t._vlan_pri3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004056 }
4057 ],
4058 "source_info" : {
4059 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004060 "line" : 273,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004061 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004062 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004063 }
4064 },
4065 {
4066 "op" : "assign",
4067 "parameters" : [
4068 {
4069 "type" : "field",
4070 "value" : ["vlan_tag", "eth_type"]
4071 },
4072 {
4073 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004074 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004075 }
4076 ],
4077 "source_info" : {
4078 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004079 "line" : 274,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004080 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004081 "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004082 }
4083 },
4084 {
4085 "op" : "assign",
4086 "parameters" : [
4087 {
4088 "type" : "field",
4089 "value" : ["vlan_tag", "vlan_id"]
4090 },
4091 {
4092 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004093 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004094 }
4095 ],
4096 "source_info" : {
4097 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004098 "line" : 275,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004099 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004100 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004101 }
4102 },
4103 {
4104 "op" : "assign",
4105 "parameters" : [
4106 {
4107 "type" : "field",
4108 "value" : ["ethernet", "eth_type"]
4109 },
4110 {
4111 "type" : "hexstr",
4112 "value" : "0x8100"
4113 }
4114 ],
4115 "source_info" : {
4116 "filename" : "include/control/../define.p4",
4117 "line" : 107,
4118 "column" : 31,
4119 "source_fragment" : "0x8100; ..."
4120 }
4121 }
4122 ]
4123 },
4124 {
4125 "name" : "FabricEgress.egress_next.pop_vlan",
4126 "id" : 56,
4127 "runtime_data" : [],
4128 "primitives" : [
4129 {
4130 "op" : "assign",
4131 "parameters" : [
4132 {
4133 "type" : "field",
4134 "value" : ["ethernet", "eth_type"]
4135 },
4136 {
4137 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004138 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004139 }
4140 ],
4141 "source_info" : {
4142 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004143 "line" : 286,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004144 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004145 "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.eth_type; ..."
Yi Tseng47eac892018-07-11 02:17:04 +08004146 }
4147 },
4148 {
4149 "op" : "remove_header",
4150 "parameters" : [
4151 {
4152 "type" : "header",
4153 "value" : "vlan_tag"
4154 }
4155 ],
4156 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004157 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004158 "line" : 287,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004159 "column" : 8,
4160 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4161 }
4162 }
4163 ]
4164 },
4165 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004166 "name" : "act_19",
4167 "id" : 57,
4168 "runtime_data" : [],
4169 "primitives" : [
4170 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004171 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004172 "parameters" : [],
4173 "source_info" : {
4174 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004175 "line" : 41,
4176 "column" : 12,
4177 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004178 }
4179 }
4180 ]
4181 },
4182 {
4183 "name" : "act_20",
4184 "id" : 58,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004185 "runtime_data" : [],
4186 "primitives" : [
4187 {
4188 "op" : "add_header",
4189 "parameters" : [
4190 {
4191 "type" : "header",
4192 "value" : "packet_in"
4193 }
4194 ],
4195 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004196 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004197 "line" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004198 "column" : 12,
4199 "source_fragment" : "hdr.packet_in.setValid()"
4200 }
4201 },
4202 {
4203 "op" : "assign",
4204 "parameters" : [
4205 {
4206 "type" : "field",
4207 "value" : ["packet_in", "ingress_port"]
4208 },
4209 {
4210 "type" : "field",
4211 "value" : ["standard_metadata", "ingress_port"]
4212 }
4213 ],
4214 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004215 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004216 "line" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004217 "column" : 12,
4218 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4219 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004220 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004221 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004222 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004223 "parameters" : [],
4224 "source_info" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004225 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004226 "line" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004227 "column" : 12,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004228 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004229 }
4230 }
4231 ]
4232 },
4233 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004234 "name" : "act_21",
4235 "id" : 59,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004236 "runtime_data" : [],
4237 "primitives" : [
4238 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004239 "op" : "mark_to_drop",
4240 "parameters" : [
4241 {
4242 "type" : "header",
4243 "value" : "standard_metadata"
4244 }
4245 ],
4246 "source_info" : {
4247 "filename" : "include/control/next.p4",
4248 "line" : 308,
4249 "column" : 12,
4250 "source_fragment" : "mark_to_drop(standard_metadata)"
4251 }
4252 }
4253 ]
4254 },
4255 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004256 "name" : "act_22",
4257 "id" : 60,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004258 "runtime_data" : [],
4259 "primitives" : [
4260 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004261 "op" : "assign",
4262 "parameters" : [
4263 {
4264 "type" : "field",
4265 "value" : ["scalars", "egress_next_tmp"]
4266 },
4267 {
4268 "type" : "expression",
4269 "value" : {
4270 "type" : "expression",
4271 "value" : {
4272 "op" : "b2d",
4273 "left" : null,
4274 "right" : {
4275 "type" : "bool",
4276 "value" : true
4277 }
4278 }
4279 }
4280 }
4281 ]
4282 }
4283 ]
4284 },
4285 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004286 "name" : "act_23",
4287 "id" : 61,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004288 "runtime_data" : [],
4289 "primitives" : [
4290 {
4291 "op" : "assign",
4292 "parameters" : [
4293 {
4294 "type" : "field",
4295 "value" : ["scalars", "egress_next_tmp"]
4296 },
4297 {
4298 "type" : "expression",
4299 "value" : {
4300 "type" : "expression",
4301 "value" : {
4302 "op" : "b2d",
4303 "left" : null,
4304 "right" : {
4305 "type" : "bool",
4306 "value" : false
4307 }
4308 }
4309 }
4310 }
4311 ]
4312 }
4313 ]
4314 },
4315 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004316 "name" : "act_24",
4317 "id" : 62,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004318 "runtime_data" : [],
4319 "primitives" : [
4320 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004321 "op" : "mark_to_drop",
4322 "parameters" : [
4323 {
4324 "type" : "header",
4325 "value" : "standard_metadata"
4326 }
4327 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004328 "source_info" : {
4329 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004330 "line" : 327,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004331 "column" : 35,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004332 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004333 }
4334 }
4335 ]
4336 },
4337 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004338 "name" : "act_25",
4339 "id" : 63,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004340 "runtime_data" : [],
4341 "primitives" : [
4342 {
4343 "op" : "assign",
4344 "parameters" : [
4345 {
4346 "type" : "field",
4347 "value" : ["mpls", "ttl"]
4348 },
4349 {
4350 "type" : "expression",
4351 "value" : {
4352 "type" : "expression",
4353 "value" : {
4354 "op" : "&",
4355 "left" : {
4356 "type" : "expression",
4357 "value" : {
4358 "op" : "+",
4359 "left" : {
4360 "type" : "field",
4361 "value" : ["mpls", "ttl"]
4362 },
4363 "right" : {
4364 "type" : "hexstr",
4365 "value" : "0xff"
4366 }
4367 }
4368 },
4369 "right" : {
4370 "type" : "hexstr",
4371 "value" : "0xff"
4372 }
4373 }
4374 }
4375 }
4376 ],
4377 "source_info" : {
4378 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004379 "line" : 326,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004380 "column" : 12,
4381 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
4382 }
4383 }
4384 ]
4385 },
4386 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004387 "name" : "act_26",
4388 "id" : 64,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004389 "runtime_data" : [],
4390 "primitives" : [
4391 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004392 "op" : "mark_to_drop",
4393 "parameters" : [
4394 {
4395 "type" : "header",
4396 "value" : "standard_metadata"
4397 }
4398 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004399 "source_info" : {
4400 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004401 "line" : 331,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004402 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004403 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004404 }
4405 }
4406 ]
4407 },
4408 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004409 "name" : "act_27",
4410 "id" : 65,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004411 "runtime_data" : [],
4412 "primitives" : [
4413 {
4414 "op" : "assign",
4415 "parameters" : [
4416 {
4417 "type" : "field",
4418 "value" : ["ipv4", "ttl"]
4419 },
4420 {
4421 "type" : "expression",
4422 "value" : {
4423 "type" : "expression",
4424 "value" : {
4425 "op" : "&",
4426 "left" : {
4427 "type" : "expression",
4428 "value" : {
4429 "op" : "+",
4430 "left" : {
4431 "type" : "field",
4432 "value" : ["ipv4", "ttl"]
4433 },
4434 "right" : {
4435 "type" : "hexstr",
4436 "value" : "0xff"
4437 }
4438 }
4439 },
4440 "right" : {
4441 "type" : "hexstr",
4442 "value" : "0xff"
4443 }
4444 }
4445 }
4446 }
4447 ],
4448 "source_info" : {
4449 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004450 "line" : 330,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004451 "column" : 16,
4452 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
4453 }
4454 }
4455 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004456 }
4457 ],
4458 "pipelines" : [
4459 {
4460 "name" : "ingress",
4461 "id" : 0,
4462 "source_info" : {
4463 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004464 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004465 "column" : 8,
4466 "source_fragment" : "FabricIngress"
4467 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004468 "init_table" : "tbl_act",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004469 "tables" : [
4470 {
4471 "name" : "tbl_act",
4472 "id" : 0,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004473 "source_info" : {
4474 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004475 "line" : 62,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004476 "column" : 50,
4477 "source_fragment" : "hdr.gtpu_ipv4, hdr.gtpu_udp"
4478 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004479 "key" : [],
4480 "match_type" : "exact",
4481 "type" : "simple",
4482 "max_size" : 1024,
4483 "with_counters" : false,
4484 "support_timeout" : false,
4485 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004486 "action_ids" : [32],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004487 "actions" : ["act_0"],
4488 "base_default_next" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004489 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004490 "act_0" : "node_3"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004491 },
4492 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004493 "action_id" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004494 "action_const" : true,
4495 "action_data" : [],
4496 "action_entry_const" : true
4497 }
4498 },
4499 {
4500 "name" : "tbl_act_0",
4501 "id" : 1,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004502 "source_info" : {
4503 "filename" : "include/spgw.p4",
4504 "line" : 30,
4505 "column" : 32,
4506 "source_fragment" : "return"
4507 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004508 "key" : [],
4509 "match_type" : "exact",
4510 "type" : "simple",
4511 "max_size" : 1024,
4512 "with_counters" : false,
4513 "support_timeout" : false,
4514 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004515 "action_ids" : [31],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004516 "actions" : ["act"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004517 "base_default_next" : "node_5",
4518 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004519 "act" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004520 },
4521 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004522 "action_id" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004523 "action_const" : true,
4524 "action_data" : [],
4525 "action_entry_const" : true
4526 }
4527 },
4528 {
4529 "name" : "tbl_act_1",
4530 "id" : 2,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004531 "source_info" : {
4532 "filename" : "include/spgw.p4",
4533 "line" : 31,
4534 "column" : 18,
4535 "source_fragment" : "= ipv4; ..."
4536 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004537 "key" : [],
4538 "match_type" : "exact",
4539 "type" : "simple",
4540 "max_size" : 1024,
4541 "with_counters" : false,
4542 "support_timeout" : false,
4543 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004544 "action_ids" : [35],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004545 "actions" : ["act_3"],
4546 "base_default_next" : "node_7",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004547 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004548 "act_3" : "node_7"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004549 },
4550 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004551 "action_id" : 35,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004552 "action_const" : true,
4553 "action_data" : [],
4554 "action_entry_const" : true
4555 }
4556 },
4557 {
4558 "name" : "tbl_act_2",
4559 "id" : 3,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004560 "source_info" : {
4561 "filename" : "include/spgw.p4",
4562 "line" : 35,
4563 "column" : 16,
4564 "source_fragment" : "="
4565 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004566 "key" : [],
4567 "match_type" : "exact",
4568 "type" : "simple",
4569 "max_size" : 1024,
4570 "with_counters" : false,
4571 "support_timeout" : false,
4572 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004573 "action_ids" : [33],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004574 "actions" : ["act_1"],
4575 "base_default_next" : "node_10",
4576 "next_tables" : {
4577 "act_1" : "node_10"
4578 },
4579 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004580 "action_id" : 33,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004581 "action_const" : true,
4582 "action_data" : [],
4583 "action_entry_const" : true
4584 }
4585 },
4586 {
4587 "name" : "tbl_act_3",
4588 "id" : 4,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004589 "source_info" : {
4590 "filename" : "include/spgw.p4",
4591 "line" : 37,
4592 "column" : 12,
4593 "source_fragment" : "udp.setInvalid()"
4594 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004595 "key" : [],
4596 "match_type" : "exact",
4597 "type" : "simple",
4598 "max_size" : 1024,
4599 "with_counters" : false,
4600 "support_timeout" : false,
4601 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004602 "action_ids" : [34],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004603 "actions" : ["act_2"],
4604 "base_default_next" : "node_10",
4605 "next_tables" : {
4606 "act_2" : "node_10"
4607 },
4608 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004609 "action_id" : 34,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004610 "action_const" : true,
4611 "action_data" : [],
4612 "action_entry_const" : true
4613 }
4614 },
4615 {
4616 "name" : "tbl_act_4",
4617 "id" : 5,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004618 "source_info" : {
4619 "filename" : "include/control/packetio.p4",
4620 "line" : 25,
4621 "column" : 42,
4622 "source_fragment" : "= hdr.packet_out.egress_port; ..."
4623 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004624 "key" : [],
4625 "match_type" : "exact",
4626 "type" : "simple",
4627 "max_size" : 1024,
4628 "with_counters" : false,
4629 "support_timeout" : false,
4630 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004631 "action_ids" : [36],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004632 "actions" : ["act_4"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004633 "base_default_next" : "node_12",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004634 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004635 "act_4" : "node_12"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004636 },
4637 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004638 "action_id" : 36,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004639 "action_const" : true,
4640 "action_data" : [],
4641 "action_entry_const" : true
4642 }
4643 },
4644 {
4645 "name" : "tbl_act_5",
4646 "id" : 6,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004647 "source_info" : {
4648 "filename" : "include/control/filtering.p4",
4649 "line" : 105,
4650 "column" : 37,
4651 "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
4652 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004653 "key" : [],
4654 "match_type" : "exact",
4655 "type" : "simple",
4656 "max_size" : 1024,
4657 "with_counters" : false,
4658 "support_timeout" : false,
4659 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004660 "action_ids" : [37],
4661 "actions" : ["act_5"],
4662 "base_default_next" : "node_14",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004663 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004664 "act_5" : "node_14"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004665 },
4666 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004667 "action_id" : 37,
4668 "action_const" : true,
4669 "action_data" : [],
4670 "action_entry_const" : true
4671 }
4672 },
4673 {
4674 "name" : "tbl_act_6",
4675 "id" : 7,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004676 "source_info" : {
4677 "filename" : "include/control/filtering.p4",
4678 "line" : 115,
4679 "column" : 37,
4680 "source_fragment" : "="
4681 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004682 "key" : [],
4683 "match_type" : "exact",
4684 "type" : "simple",
4685 "max_size" : 1024,
4686 "with_counters" : false,
4687 "support_timeout" : false,
4688 "direct_meters" : null,
4689 "action_ids" : [38],
4690 "actions" : ["act_6"],
4691 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
4692 "next_tables" : {
4693 "act_6" : "FabricIngress.filtering.ingress_port_vlan"
4694 },
4695 "default_entry" : {
4696 "action_id" : 38,
4697 "action_const" : true,
4698 "action_data" : [],
4699 "action_entry_const" : true
4700 }
4701 },
4702 {
4703 "name" : "FabricIngress.filtering.ingress_port_vlan",
4704 "id" : 8,
4705 "source_info" : {
4706 "filename" : "include/control/filtering.p4",
4707 "line" : 51,
4708 "column" : 10,
4709 "source_fragment" : "ingress_port_vlan"
4710 },
4711 "key" : [
4712 {
4713 "match_type" : "exact",
4714 "name" : "ig_port",
4715 "target" : ["standard_metadata", "ingress_port"],
4716 "mask" : null
4717 },
4718 {
4719 "match_type" : "exact",
4720 "name" : "vlan_is_valid",
4721 "target" : ["vlan_tag", "$valid$"],
4722 "mask" : null
4723 },
4724 {
4725 "match_type" : "ternary",
4726 "name" : "vlan_id",
4727 "target" : ["vlan_tag", "vlan_id"],
4728 "mask" : null
4729 }
4730 ],
4731 "match_type" : "ternary",
4732 "type" : "simple",
4733 "max_size" : 1024,
4734 "with_counters" : true,
4735 "support_timeout" : false,
4736 "direct_meters" : null,
4737 "action_ids" : [11, 12, 13],
4738 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
4739 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
4740 "next_tables" : {
4741 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
4742 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
4743 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
4744 },
4745 "default_entry" : {
4746 "action_id" : 11,
4747 "action_const" : true,
4748 "action_data" : [],
4749 "action_entry_const" : true
4750 }
4751 },
4752 {
4753 "name" : "FabricIngress.filtering.fwd_classifier",
4754 "id" : 9,
4755 "source_info" : {
4756 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004757 "line" : 87,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004758 "column" : 10,
4759 "source_fragment" : "fwd_classifier"
4760 },
4761 "key" : [
4762 {
4763 "match_type" : "exact",
4764 "name" : "ig_port",
4765 "target" : ["standard_metadata", "ingress_port"],
4766 "mask" : null
4767 },
4768 {
4769 "match_type" : "ternary",
4770 "name" : "eth_dst",
4771 "target" : ["ethernet", "dst_addr"],
4772 "mask" : null
4773 },
4774 {
4775 "match_type" : "exact",
4776 "name" : "eth_type",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004777 "target" : ["scalars", "fabric_metadata_t._eth_type0"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004778 "mask" : null
4779 }
4780 ],
4781 "match_type" : "ternary",
4782 "type" : "simple",
4783 "max_size" : 1024,
4784 "with_counters" : true,
4785 "support_timeout" : false,
4786 "direct_meters" : null,
4787 "action_ids" : [14],
4788 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
4789 "base_default_next" : "tbl_act_7",
4790 "next_tables" : {
4791 "FabricIngress.filtering.set_forwarding_type" : "tbl_act_7"
4792 },
4793 "default_entry" : {
4794 "action_id" : 14,
4795 "action_const" : true,
4796 "action_data" : ["0x0"],
4797 "action_entry_const" : true
4798 }
4799 },
4800 {
4801 "name" : "tbl_act_7",
4802 "id" : 10,
4803 "key" : [],
4804 "match_type" : "exact",
4805 "type" : "simple",
4806 "max_size" : 1024,
4807 "with_counters" : false,
4808 "support_timeout" : false,
4809 "direct_meters" : null,
4810 "action_ids" : [47],
4811 "actions" : ["act_15"],
4812 "base_default_next" : "node_19",
4813 "next_tables" : {
4814 "act_15" : "node_19"
4815 },
4816 "default_entry" : {
4817 "action_id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004818 "action_const" : true,
4819 "action_data" : [],
4820 "action_entry_const" : true
4821 }
4822 },
4823 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004824 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004825 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004826 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004827 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004828 "line" : 83,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004829 "column" : 10,
4830 "source_fragment" : "s1u_filter_table"
4831 },
4832 "key" : [
4833 {
4834 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004835 "name" : "gtp_ipv4_dst",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004836 "target" : ["gtpu_ipv4", "dst_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004837 "mask" : null
4838 }
4839 ],
4840 "match_type" : "exact",
4841 "type" : "simple",
4842 "max_size" : 1024,
4843 "with_counters" : false,
4844 "support_timeout" : false,
4845 "direct_meters" : null,
4846 "action_ids" : [1],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004847 "actions" : ["nop"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004848 "base_default_next" : null,
4849 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004850 "__HIT__" : "tbl_act_8",
4851 "__MISS__" : "tbl_act_9"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004852 },
4853 "default_entry" : {
4854 "action_id" : 1,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004855 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004856 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004857 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004858 }
4859 },
4860 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004861 "name" : "tbl_act_8",
4862 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004863 "key" : [],
4864 "match_type" : "exact",
4865 "type" : "simple",
4866 "max_size" : 1024,
4867 "with_counters" : false,
4868 "support_timeout" : false,
4869 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004870 "action_ids" : [39],
4871 "actions" : ["act_7"],
4872 "base_default_next" : "node_23",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004873 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004874 "act_7" : "node_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004875 },
4876 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004877 "action_id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004878 "action_const" : true,
4879 "action_data" : [],
4880 "action_entry_const" : true
4881 }
4882 },
4883 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004884 "name" : "tbl_act_9",
4885 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004886 "key" : [],
4887 "match_type" : "exact",
4888 "type" : "simple",
4889 "max_size" : 1024,
4890 "with_counters" : false,
4891 "support_timeout" : false,
4892 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004893 "action_ids" : [40],
4894 "actions" : ["act_8"],
4895 "base_default_next" : "node_23",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004896 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004897 "act_8" : "node_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004898 },
4899 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004900 "action_id" : 40,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004901 "action_const" : true,
4902 "action_data" : [],
4903 "action_entry_const" : true
4904 }
4905 },
4906 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004907 "name" : "tbl_act_10",
4908 "id" : 14,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004909 "source_info" : {
4910 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004911 "line" : 149,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004912 "column" : 16,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004913 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07004914 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004915 "key" : [],
4916 "match_type" : "exact",
4917 "type" : "simple",
4918 "max_size" : 1024,
4919 "with_counters" : false,
4920 "support_timeout" : false,
4921 "direct_meters" : null,
4922 "action_ids" : [41],
4923 "actions" : ["act_9"],
4924 "base_default_next" : "tbl_act_11",
4925 "next_tables" : {
4926 "act_9" : "tbl_act_11"
4927 },
4928 "default_entry" : {
4929 "action_id" : 41,
4930 "action_const" : true,
4931 "action_data" : [],
4932 "action_entry_const" : true
4933 }
4934 },
4935 {
4936 "name" : "tbl_act_11",
4937 "id" : 15,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004938 "source_info" : {
4939 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004940 "line" : 151,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004941 "column" : 39,
4942 "source_fragment" : "="
4943 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004944 "key" : [],
4945 "match_type" : "exact",
4946 "type" : "simple",
4947 "max_size" : 1024,
4948 "with_counters" : false,
4949 "support_timeout" : false,
4950 "direct_meters" : null,
4951 "action_ids" : [42],
4952 "actions" : ["act_10"],
4953 "base_default_next" : "tbl_spgw_ingress_gtpu_decap",
4954 "next_tables" : {
4955 "act_10" : "tbl_spgw_ingress_gtpu_decap"
4956 },
4957 "default_entry" : {
4958 "action_id" : 42,
4959 "action_const" : true,
4960 "action_data" : [],
4961 "action_entry_const" : true
4962 }
4963 },
4964 {
4965 "name" : "tbl_spgw_ingress_gtpu_decap",
4966 "id" : 16,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004967 "source_info" : {
4968 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004969 "line" : 152,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004970 "column" : 12,
4971 "source_fragment" : "gtpu_decap()"
4972 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004973 "key" : [],
4974 "match_type" : "exact",
4975 "type" : "simple",
4976 "max_size" : 1024,
4977 "with_counters" : false,
4978 "support_timeout" : false,
4979 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004980 "action_ids" : [9],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004981 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
4982 "base_default_next" : "node_33",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004983 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004984 "FabricIngress.spgw_ingress.gtpu_decap" : "node_33"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004985 },
4986 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004987 "action_id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004988 "action_const" : true,
4989 "action_data" : [],
4990 "action_entry_const" : true
4991 }
4992 },
4993 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004994 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004995 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004996 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004997 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004998 "line" : 70,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004999 "column" : 10,
5000 "source_fragment" : "dl_sess_lookup"
5001 },
5002 "key" : [
5003 {
5004 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005005 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005006 "target" : ["ipv4", "dst_addr"],
5007 "mask" : null
5008 }
5009 ],
5010 "match_type" : "exact",
5011 "type" : "simple",
5012 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005013 "with_counters" : true,
5014 "support_timeout" : false,
5015 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005016 "action_ids" : [10, 0],
5017 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "nop"],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005018 "base_default_next" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005019 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005020 "__HIT__" : "tbl_act_12",
5021 "__MISS__" : "tbl_act_13"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005022 },
5023 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005024 "action_id" : 0,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005025 "action_const" : true,
5026 "action_data" : [],
5027 "action_entry_const" : true
5028 }
5029 },
5030 {
5031 "name" : "tbl_act_12",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005032 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005033 "key" : [],
5034 "match_type" : "exact",
5035 "type" : "simple",
5036 "max_size" : 1024,
5037 "with_counters" : false,
5038 "support_timeout" : false,
5039 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005040 "action_ids" : [43],
5041 "actions" : ["act_11"],
5042 "base_default_next" : "node_30",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005043 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005044 "act_11" : "node_30"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005045 },
5046 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005047 "action_id" : 43,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005048 "action_const" : true,
5049 "action_data" : [],
5050 "action_entry_const" : true
5051 }
5052 },
5053 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005054 "name" : "tbl_act_13",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005055 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005056 "key" : [],
5057 "match_type" : "exact",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005058 "type" : "simple",
5059 "max_size" : 1024,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005060 "with_counters" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005061 "support_timeout" : false,
5062 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005063 "action_ids" : [44],
5064 "actions" : ["act_12"],
5065 "base_default_next" : "node_30",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005066 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005067 "act_12" : "node_30"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005068 },
5069 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005070 "action_id" : 44,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005071 "action_const" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005072 "action_data" : [],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005073 "action_entry_const" : true
5074 }
5075 },
5076 {
5077 "name" : "tbl_act_14",
5078 "id" : 20,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005079 "source_info" : {
5080 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005081 "line" : 154,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005082 "column" : 39,
5083 "source_fragment" : "="
5084 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005085 "key" : [],
5086 "match_type" : "exact",
5087 "type" : "simple",
5088 "max_size" : 1024,
5089 "with_counters" : false,
5090 "support_timeout" : false,
5091 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005092 "action_ids" : [45],
5093 "actions" : ["act_13"],
5094 "base_default_next" : "node_33",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005095 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005096 "act_13" : "node_33"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005097 },
5098 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005099 "action_id" : 45,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005100 "action_const" : true,
5101 "action_data" : [],
5102 "action_entry_const" : true
5103 }
5104 },
5105 {
5106 "name" : "tbl_act_15",
5107 "id" : 21,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005108 "source_info" : {
5109 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005110 "line" : 156,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005111 "column" : 39,
5112 "source_fragment" : "= SPGW_DIR_UNKNOWN; ..."
5113 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005114 "key" : [],
5115 "match_type" : "exact",
5116 "type" : "simple",
5117 "max_size" : 1024,
5118 "with_counters" : false,
5119 "support_timeout" : false,
5120 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005121 "action_ids" : [46],
5122 "actions" : ["act_14"],
5123 "base_default_next" : "node_33",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005124 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005125 "act_14" : "node_33"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005126 },
5127 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005128 "action_id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005129 "action_const" : true,
5130 "action_data" : [],
5131 "action_entry_const" : true
5132 }
5133 },
5134 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005135 "name" : "tbl_act_16",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005136 "id" : 22,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005137 "source_info" : {
5138 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005139 "line" : 175,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005140 "column" : 34,
5141 "source_fragment" : "="
5142 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005143 "key" : [],
5144 "match_type" : "exact",
5145 "type" : "simple",
5146 "max_size" : 1024,
5147 "with_counters" : false,
5148 "support_timeout" : false,
5149 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005150 "action_ids" : [48],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005151 "actions" : ["act_16"],
5152 "base_default_next" : "node_35",
5153 "next_tables" : {
5154 "act_16" : "node_35"
5155 },
5156 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005157 "action_id" : 48,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005158 "action_const" : true,
5159 "action_data" : [],
5160 "action_entry_const" : true
5161 }
5162 },
5163 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005164 "name" : "FabricIngress.forwarding.bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005165 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005166 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005167 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005168 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005169 "column" : 10,
5170 "source_fragment" : "bridging"
5171 },
5172 "key" : [
5173 {
5174 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005175 "name" : "vlan_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005176 "target" : ["scalars", "fabric_metadata_t._vlan_id2"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005177 "mask" : null
5178 },
5179 {
5180 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005181 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005182 "target" : ["ethernet", "dst_addr"],
5183 "mask" : null
5184 }
5185 ],
5186 "match_type" : "ternary",
5187 "type" : "simple",
5188 "max_size" : 1024,
5189 "with_counters" : true,
5190 "support_timeout" : false,
5191 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005192 "action_ids" : [15, 2],
5193 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
5194 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005195 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005196 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.acl.acl",
5197 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005198 },
5199 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005200 "action_id" : 2,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005201 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005202 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005203 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005204 }
5205 },
5206 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005207 "name" : "FabricIngress.forwarding.mpls",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005208 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005209 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005210 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005211 "line" : 71,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005212 "column" : 10,
5213 "source_fragment" : "mpls"
5214 },
5215 "key" : [
5216 {
5217 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005218 "name" : "mpls_label",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005219 "target" : ["scalars", "fabric_metadata_t._mpls_label5"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005220 "mask" : null
5221 }
5222 ],
5223 "match_type" : "exact",
5224 "type" : "simple",
5225 "max_size" : 1024,
5226 "with_counters" : true,
5227 "support_timeout" : false,
5228 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005229 "action_ids" : [16, 3],
5230 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
5231 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005232 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005233 "FabricIngress.forwarding.pop_mpls_and_next" : "FabricIngress.acl.acl",
5234 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005235 },
5236 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005237 "action_id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005238 "action_const" : true,
5239 "action_data" : [],
5240 "action_entry_const" : true
5241 }
5242 },
5243 {
Charles Chan384aea22018-08-23 22:08:02 -07005244 "name" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005245 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005246 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005247 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005248 "line" : 101,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005249 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07005250 "source_fragment" : "routing_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005251 },
5252 "key" : [
5253 {
5254 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005255 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005256 "target" : ["ipv4", "dst_addr"],
5257 "mask" : null
5258 }
5259 ],
5260 "match_type" : "lpm",
5261 "type" : "simple",
5262 "max_size" : 1024,
5263 "with_counters" : true,
5264 "support_timeout" : false,
5265 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005266 "action_ids" : [17, 18, 4],
5267 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
5268 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005269 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005270 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.acl.acl",
5271 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.acl.acl",
5272 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005273 },
5274 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005275 "action_id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005276 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005277 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005278 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005279 }
5280 },
5281 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005282 "name" : "FabricIngress.acl.acl",
5283 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005284 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005285 "filename" : "include/control/acl.p4",
5286 "line" : 60,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005287 "column" : 10,
5288 "source_fragment" : "acl"
5289 },
5290 "key" : [
5291 {
5292 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005293 "name" : "ig_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005294 "target" : ["standard_metadata", "ingress_port"],
5295 "mask" : null
5296 },
5297 {
5298 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005299 "name" : "ip_proto",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005300 "target" : ["scalars", "fabric_metadata_t._ip_proto13"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005301 "mask" : null
5302 },
5303 {
5304 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005305 "name" : "l4_sport",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005306 "target" : ["scalars", "fabric_metadata_t._l4_sport14"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005307 "mask" : null
5308 },
5309 {
5310 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005311 "name" : "l4_dport",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005312 "target" : ["scalars", "fabric_metadata_t._l4_dport15"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005313 "mask" : null
5314 },
5315 {
5316 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005317 "name" : "eth_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005318 "target" : ["ethernet", "dst_addr"],
5319 "mask" : null
5320 },
5321 {
5322 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005323 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005324 "target" : ["ethernet", "src_addr"],
5325 "mask" : null
5326 },
5327 {
5328 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005329 "name" : "vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005330 "target" : ["vlan_tag", "vlan_id"],
5331 "mask" : null
5332 },
5333 {
5334 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005335 "name" : "eth_type",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005336 "target" : ["scalars", "fabric_metadata_t._eth_type0"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08005337 "mask" : null
5338 },
5339 {
5340 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005341 "name" : "ipv4_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005342 "target" : ["ipv4", "src_addr"],
5343 "mask" : null
5344 },
5345 {
5346 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005347 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005348 "target" : ["ipv4", "dst_addr"],
5349 "mask" : null
5350 },
5351 {
5352 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005353 "name" : "icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005354 "target" : ["icmp", "icmp_type"],
5355 "mask" : null
5356 },
5357 {
5358 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005359 "name" : "icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005360 "target" : ["icmp", "icmp_code"],
5361 "mask" : null
5362 }
5363 ],
5364 "match_type" : "ternary",
5365 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005366 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005367 "with_counters" : true,
5368 "support_timeout" : false,
5369 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005370 "action_ids" : [19, 20, 21, 22, 23],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005371 "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 -08005372 "base_default_next" : "node_43",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005373 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005374 "FabricIngress.acl.set_next_id_acl" : "node_43",
5375 "FabricIngress.acl.punt_to_cpu" : "node_43",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005376 "FabricIngress.acl.set_clone_session_id" : "node_43",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005377 "FabricIngress.acl.drop" : "node_43",
5378 "FabricIngress.acl.nop_acl" : "node_43"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005379 },
5380 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005381 "action_id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005382 "action_const" : true,
5383 "action_data" : [],
5384 "action_entry_const" : true
5385 }
5386 },
5387 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005388 "name" : "FabricIngress.next.xconnect",
5389 "id" : 27,
5390 "source_info" : {
5391 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005392 "line" : 104,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005393 "column" : 10,
5394 "source_fragment" : "xconnect"
5395 },
5396 "key" : [
5397 {
5398 "match_type" : "exact",
5399 "name" : "ig_port",
5400 "target" : ["standard_metadata", "ingress_port"],
5401 "mask" : null
5402 },
5403 {
5404 "match_type" : "exact",
5405 "name" : "next_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005406 "target" : ["scalars", "fabric_metadata_t._next_id10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005407 "mask" : null
5408 }
5409 ],
5410 "match_type" : "exact",
5411 "type" : "simple",
5412 "max_size" : 1024,
5413 "with_counters" : true,
5414 "support_timeout" : false,
5415 "direct_meters" : null,
5416 "action_ids" : [25, 26, 6],
5417 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
5418 "base_default_next" : "FabricIngress.next.hashed",
5419 "next_tables" : {
5420 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
5421 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
5422 "nop" : "FabricIngress.next.hashed"
5423 },
5424 "default_entry" : {
5425 "action_id" : 6,
5426 "action_const" : true,
5427 "action_data" : [],
5428 "action_entry_const" : true
5429 }
5430 },
5431 {
5432 "name" : "FabricIngress.next.hashed",
5433 "id" : 28,
5434 "source_info" : {
5435 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005436 "line" : 184,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005437 "column" : 10,
5438 "source_fragment" : "hashed"
5439 },
5440 "key" : [
5441 {
5442 "match_type" : "exact",
5443 "name" : "next_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005444 "target" : ["scalars", "fabric_metadata_t._next_id10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005445 "mask" : null
5446 }
5447 ],
5448 "match_type" : "exact",
5449 "type" : "indirect_ws",
5450 "action_profile" : "FabricIngress.next.hashed_selector",
5451 "max_size" : 1024,
5452 "with_counters" : true,
5453 "support_timeout" : false,
5454 "direct_meters" : null,
5455 "action_ids" : [27, 28, 29, 7],
5456 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
5457 "base_default_next" : "FabricIngress.next.multicast",
5458 "next_tables" : {
5459 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
5460 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
5461 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
5462 "nop" : "FabricIngress.next.multicast"
5463 }
5464 },
5465 {
5466 "name" : "FabricIngress.next.multicast",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005467 "id" : 29,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005468 "source_info" : {
5469 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005470 "line" : 218,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005471 "column" : 10,
5472 "source_fragment" : "multicast"
5473 },
5474 "key" : [
5475 {
5476 "match_type" : "exact",
5477 "name" : "next_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005478 "target" : ["scalars", "fabric_metadata_t._next_id10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005479 "mask" : null
5480 }
5481 ],
5482 "match_type" : "exact",
5483 "type" : "simple",
5484 "max_size" : 1024,
5485 "with_counters" : true,
5486 "support_timeout" : false,
5487 "direct_meters" : null,
5488 "action_ids" : [30, 8],
5489 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
5490 "base_default_next" : "FabricIngress.next.next_vlan",
5491 "next_tables" : {
5492 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
5493 "nop" : "FabricIngress.next.next_vlan"
5494 },
5495 "default_entry" : {
5496 "action_id" : 8,
5497 "action_const" : true,
5498 "action_data" : [],
5499 "action_entry_const" : true
5500 }
5501 },
5502 {
5503 "name" : "FabricIngress.next.next_vlan",
5504 "id" : 30,
5505 "source_info" : {
5506 "filename" : "include/control/next.p4",
5507 "line" : 74,
5508 "column" : 10,
5509 "source_fragment" : "next_vlan"
5510 },
5511 "key" : [
5512 {
5513 "match_type" : "exact",
5514 "name" : "next_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005515 "target" : ["scalars", "fabric_metadata_t._next_id10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005516 "mask" : null
5517 }
5518 ],
5519 "match_type" : "exact",
5520 "type" : "simple",
5521 "max_size" : 1024,
5522 "with_counters" : true,
5523 "support_timeout" : false,
5524 "direct_meters" : null,
5525 "action_ids" : [24, 5],
5526 "actions" : ["FabricIngress.next.set_vlan", "nop"],
5527 "base_default_next" : "node_48",
5528 "next_tables" : {
5529 "FabricIngress.next.set_vlan" : "node_48",
5530 "nop" : "node_48"
5531 },
5532 "default_entry" : {
5533 "action_id" : 5,
5534 "action_const" : true,
5535 "action_data" : [],
5536 "action_entry_const" : true
5537 }
5538 },
5539 {
5540 "name" : "tbl_act_17",
5541 "id" : 31,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005542 "source_info" : {
5543 "filename" : "include/control/port_counter.p4",
5544 "line" : 31,
5545 "column" : 12,
5546 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
5547 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02005548 "key" : [],
5549 "match_type" : "exact",
5550 "type" : "simple",
5551 "max_size" : 1024,
5552 "with_counters" : false,
5553 "support_timeout" : false,
5554 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005555 "action_ids" : [49],
5556 "actions" : ["act_17"],
5557 "base_default_next" : "node_50",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005558 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005559 "act_17" : "node_50"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005560 },
5561 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005562 "action_id" : 49,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005563 "action_const" : true,
5564 "action_data" : [],
5565 "action_entry_const" : true
5566 }
5567 },
5568 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005569 "name" : "tbl_act_18",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005570 "id" : 32,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005571 "source_info" : {
5572 "filename" : "include/control/port_counter.p4",
5573 "line" : 34,
5574 "column" : 12,
5575 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
5576 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005577 "key" : [],
5578 "match_type" : "exact",
5579 "type" : "simple",
5580 "max_size" : 1024,
5581 "with_counters" : false,
5582 "support_timeout" : false,
5583 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005584 "action_ids" : [50],
5585 "actions" : ["act_18"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005586 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005587 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005588 "act_18" : null
Carmelo Casconea5400af2018-07-17 22:11:54 +02005589 },
5590 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005591 "action_id" : 50,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005592 "action_const" : true,
5593 "action_data" : [],
5594 "action_entry_const" : true
5595 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005596 }
5597 ],
5598 "action_profiles" : [
5599 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005600 "name" : "FabricIngress.next.hashed_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005601 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005602 "source_info" : {
5603 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005604 "line" : 165,
5605 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005606 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005607 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005608 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005609 "selector" : {
5610 "algo" : "crc16",
5611 "input" : [
5612 {
5613 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005614 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005615 },
5616 {
5617 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005618 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005619 },
5620 {
5621 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005622 "value" : ["scalars", "fabric_metadata_t._ip_proto13"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005623 },
5624 {
5625 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005626 "value" : ["scalars", "fabric_metadata_t._l4_sport14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005627 },
5628 {
5629 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005630 "value" : ["scalars", "fabric_metadata_t._l4_dport15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005631 }
5632 ]
5633 }
5634 }
5635 ],
5636 "conditionals" : [
5637 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005638 "name" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005639 "id" : 0,
5640 "source_info" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005641 "filename" : "include/spgw.p4",
5642 "line" : 30,
5643 "column" : 12,
5644 "source_fragment" : "! is_gtpu_encapped"
5645 },
5646 "expression" : {
5647 "type" : "expression",
5648 "value" : {
5649 "op" : "not",
5650 "left" : null,
5651 "right" : {
5652 "type" : "expression",
5653 "value" : {
5654 "op" : "d2b",
5655 "left" : null,
5656 "right" : {
5657 "type" : "field",
5658 "value" : ["gtpu", "$valid$"]
5659 }
5660 }
5661 }
5662 }
5663 },
5664 "true_next" : "tbl_act_0",
5665 "false_next" : "node_5"
5666 },
5667 {
5668 "name" : "node_5",
5669 "id" : 1,
5670 "expression" : {
5671 "type" : "expression",
5672 "value" : {
5673 "op" : "not",
5674 "left" : null,
5675 "right" : {
5676 "type" : "expression",
5677 "value" : {
5678 "op" : "d2b",
5679 "left" : null,
5680 "right" : {
5681 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005682 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005683 }
5684 }
5685 }
5686 }
5687 },
5688 "true_next" : "tbl_act_1",
5689 "false_next" : "node_10"
5690 },
5691 {
5692 "name" : "node_7",
5693 "id" : 2,
5694 "source_info" : {
5695 "filename" : "include/spgw.p4",
5696 "line" : 34,
5697 "column" : 12,
5698 "source_fragment" : "inner_udp.isValid()"
5699 },
5700 "expression" : {
5701 "type" : "expression",
5702 "value" : {
5703 "op" : "d2b",
5704 "left" : null,
5705 "right" : {
5706 "type" : "field",
5707 "value" : ["inner_udp", "$valid$"]
5708 }
5709 }
5710 },
5711 "true_next" : "tbl_act_2",
5712 "false_next" : "tbl_act_3"
5713 },
5714 {
5715 "name" : "node_10",
5716 "id" : 3,
5717 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005718 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005719 "line" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005720 "column" : 12,
5721 "source_fragment" : "hdr.packet_out.isValid()"
5722 },
5723 "expression" : {
5724 "type" : "expression",
5725 "value" : {
5726 "op" : "d2b",
5727 "left" : null,
5728 "right" : {
5729 "type" : "field",
5730 "value" : ["packet_out", "$valid$"]
5731 }
5732 }
5733 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005734 "true_next" : "tbl_act_4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005735 "false_next" : "node_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005736 },
5737 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005738 "name" : "node_12",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005739 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005740 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005741 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005742 "line" : 104,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005743 "column" : 12,
5744 "source_fragment" : "hdr.vlan_tag.isValid()"
5745 },
5746 "expression" : {
5747 "type" : "expression",
5748 "value" : {
5749 "op" : "d2b",
5750 "left" : null,
5751 "right" : {
5752 "type" : "field",
5753 "value" : ["vlan_tag", "$valid$"]
5754 }
5755 }
5756 },
5757 "true_next" : "tbl_act_5",
5758 "false_next" : "node_14"
5759 },
5760 {
5761 "name" : "node_14",
5762 "id" : 5,
5763 "source_info" : {
5764 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005765 "line" : 110,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005766 "column" : 12,
5767 "source_fragment" : "!hdr.mpls.isValid()"
5768 },
5769 "expression" : {
5770 "type" : "expression",
5771 "value" : {
5772 "op" : "not",
5773 "left" : null,
5774 "right" : {
5775 "type" : "expression",
5776 "value" : {
5777 "op" : "d2b",
5778 "left" : null,
5779 "right" : {
5780 "type" : "field",
5781 "value" : ["mpls", "$valid$"]
5782 }
5783 }
5784 }
5785 }
5786 },
5787 "true_next" : "tbl_act_6",
5788 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
5789 },
5790 {
5791 "name" : "node_19",
5792 "id" : 6,
5793 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005794 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005795 "line" : 144,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005796 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005797 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005798 },
5799 "expression" : {
5800 "type" : "expression",
5801 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005802 "op" : "d2b",
5803 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005804 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005805 "type" : "field",
5806 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005807 }
5808 }
5809 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005810 "true_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
5811 "false_next" : "FabricIngress.spgw_ingress.dl_sess_lookup"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005812 },
5813 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005814 "name" : "node_23",
5815 "id" : 7,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005816 "source_info" : {
5817 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005818 "line" : 148,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005819 "column" : 16,
5820 "source_fragment" : "!s1u_filter_table.apply().hit"
5821 },
5822 "expression" : {
5823 "type" : "expression",
5824 "value" : {
5825 "op" : "not",
5826 "left" : null,
5827 "right" : {
5828 "type" : "expression",
5829 "value" : {
5830 "op" : "d2b",
5831 "left" : null,
5832 "right" : {
5833 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005834 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005835 }
5836 }
5837 }
5838 }
5839 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005840 "true_next" : "tbl_act_10",
5841 "false_next" : "tbl_act_11"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005842 },
5843 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005844 "name" : "node_30",
5845 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005846 "expression" : {
5847 "type" : "expression",
5848 "value" : {
5849 "op" : "d2b",
5850 "left" : null,
5851 "right" : {
5852 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005853 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005854 }
5855 }
5856 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005857 "true_next" : "tbl_act_14",
5858 "false_next" : "tbl_act_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005859 },
5860 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005861 "name" : "node_33",
5862 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005863 "expression" : {
5864 "type" : "expression",
5865 "value" : {
5866 "op" : "not",
5867 "left" : null,
5868 "right" : {
5869 "type" : "expression",
5870 "value" : {
5871 "op" : "d2b",
5872 "left" : null,
5873 "right" : {
5874 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005875 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005876 }
5877 }
5878 }
5879 }
5880 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005881 "true_next" : "tbl_act_16",
5882 "false_next" : "node_35"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005883 },
5884 {
5885 "name" : "node_35",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005886 "id" : 10,
5887 "source_info" : {
5888 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005889 "line" : 74,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005890 "column" : 12,
5891 "source_fragment" : "fabric_metadata.skip_forwarding == false"
5892 },
5893 "expression" : {
5894 "type" : "expression",
5895 "value" : {
5896 "op" : "==",
5897 "left" : {
5898 "type" : "expression",
5899 "value" : {
5900 "op" : "d2b",
5901 "left" : null,
5902 "right" : {
5903 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005904 "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005905 }
5906 }
5907 },
5908 "right" : {
5909 "type" : "bool",
5910 "value" : false
5911 }
5912 }
5913 },
5914 "true_next" : "node_36",
5915 "false_next" : "FabricIngress.acl.acl"
5916 },
5917 {
5918 "name" : "node_36",
5919 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005920 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005921 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005922 "line" : 141,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005923 "column" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005924 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
5925 },
5926 "expression" : {
5927 "type" : "expression",
5928 "value" : {
5929 "op" : "==",
5930 "left" : {
5931 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005932 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005933 },
5934 "right" : {
5935 "type" : "hexstr",
5936 "value" : "0x00"
5937 }
5938 }
5939 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005940 "true_next" : "FabricIngress.forwarding.bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005941 "false_next" : "node_38"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005942 },
5943 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005944 "name" : "node_38",
5945 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005946 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005947 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005948 "line" : 142,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005949 "column" : 17,
5950 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
5951 },
5952 "expression" : {
5953 "type" : "expression",
5954 "value" : {
5955 "op" : "==",
5956 "left" : {
5957 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005958 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005959 },
5960 "right" : {
5961 "type" : "hexstr",
5962 "value" : "0x01"
5963 }
5964 }
5965 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005966 "true_next" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005967 "false_next" : "node_40"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005968 },
5969 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005970 "name" : "node_40",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005971 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005972 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005973 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005974 "line" : 143,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005975 "column" : 17,
5976 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
5977 },
5978 "expression" : {
5979 "type" : "expression",
5980 "value" : {
5981 "op" : "==",
5982 "left" : {
5983 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005984 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005985 },
5986 "right" : {
5987 "type" : "hexstr",
5988 "value" : "0x02"
5989 }
5990 }
5991 },
Charles Chan384aea22018-08-23 22:08:02 -07005992 "true_next" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005993 "false_next" : "FabricIngress.acl.acl"
5994 },
5995 {
5996 "name" : "node_43",
5997 "id" : 14,
5998 "source_info" : {
5999 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006000 "line" : 78,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006001 "column" : 12,
6002 "source_fragment" : "fabric_metadata.skip_next == false"
6003 },
6004 "expression" : {
6005 "type" : "expression",
6006 "value" : {
6007 "op" : "==",
6008 "left" : {
6009 "type" : "expression",
6010 "value" : {
6011 "op" : "d2b",
6012 "left" : null,
6013 "right" : {
6014 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006015 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006016 }
6017 }
6018 },
6019 "right" : {
6020 "type" : "bool",
6021 "value" : false
6022 }
6023 }
6024 },
6025 "false_next" : null,
6026 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08006027 },
6028 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006029 "name" : "node_48",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006030 "id" : 15,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006031 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006032 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006033 "line" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006034 "column" : 12,
6035 "source_fragment" : "standard_metadata.egress_spec < 511"
6036 },
6037 "expression" : {
6038 "type" : "expression",
6039 "value" : {
6040 "op" : "<",
6041 "left" : {
6042 "type" : "field",
6043 "value" : ["standard_metadata", "egress_spec"]
6044 },
6045 "right" : {
6046 "type" : "hexstr",
6047 "value" : "0x01ff"
6048 }
6049 }
6050 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006051 "true_next" : "tbl_act_17",
6052 "false_next" : "node_50"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006053 },
6054 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006055 "name" : "node_50",
6056 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006057 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006058 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006059 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006060 "column" : 12,
6061 "source_fragment" : "standard_metadata.ingress_port < 511"
6062 },
6063 "expression" : {
6064 "type" : "expression",
6065 "value" : {
6066 "op" : "<",
6067 "left" : {
6068 "type" : "field",
6069 "value" : ["standard_metadata", "ingress_port"]
6070 },
6071 "right" : {
6072 "type" : "hexstr",
6073 "value" : "0x01ff"
6074 }
6075 }
6076 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006077 "false_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006078 "true_next" : "tbl_act_18"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006079 }
6080 ]
6081 },
6082 {
6083 "name" : "egress",
6084 "id" : 1,
6085 "source_info" : {
6086 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006087 "line" : 92,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006088 "column" : 8,
6089 "source_fragment" : "FabricEgress"
6090 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006091 "init_table" : "node_54",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006092 "tables" : [
6093 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006094 "name" : "tbl_act_19",
6095 "id" : 33,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006096 "source_info" : {
6097 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006098 "line" : 41,
6099 "column" : 12,
6100 "source_fragment" : "exit"
Carmelo Cascone3032b872019-04-13 01:23:54 -07006101 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006102 "key" : [],
6103 "match_type" : "exact",
6104 "type" : "simple",
6105 "max_size" : 1024,
6106 "with_counters" : false,
6107 "support_timeout" : false,
6108 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006109 "action_ids" : [57],
6110 "actions" : ["act_19"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006111 "base_default_next" : "node_56",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006112 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006113 "act_19" : "node_56"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006114 },
6115 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006116 "action_id" : 57,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006117 "action_const" : true,
6118 "action_data" : [],
6119 "action_entry_const" : true
6120 }
6121 },
6122 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006123 "name" : "tbl_act_20",
6124 "id" : 34,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006125 "source_info" : {
6126 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006127 "line" : 44,
6128 "column" : 12,
6129 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07006130 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006131 "key" : [],
6132 "match_type" : "exact",
6133 "type" : "simple",
6134 "max_size" : 1024,
6135 "with_counters" : false,
6136 "support_timeout" : false,
6137 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006138 "action_ids" : [58],
6139 "actions" : ["act_20"],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006140 "base_default_next" : "node_58",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006141 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006142 "act_20" : "node_58"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006143 },
6144 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006145 "action_id" : 58,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006146 "action_const" : true,
6147 "action_data" : [],
6148 "action_entry_const" : true
6149 }
6150 },
6151 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006152 "name" : "tbl_act_21",
6153 "id" : 35,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006154 "source_info" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006155 "filename" : "include/control/next.p4",
6156 "line" : 308,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006157 "column" : 12,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006158 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07006159 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006160 "key" : [],
6161 "match_type" : "exact",
6162 "type" : "simple",
6163 "max_size" : 1024,
6164 "with_counters" : false,
6165 "support_timeout" : false,
6166 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006167 "action_ids" : [59],
6168 "actions" : ["act_21"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006169 "base_default_next" : "node_60",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006170 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006171 "act_21" : "node_60"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006172 },
6173 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006174 "action_id" : 59,
6175 "action_const" : true,
6176 "action_data" : [],
6177 "action_entry_const" : true
6178 }
6179 },
6180 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006181 "name" : "tbl_egress_next_pop_mpls_if_present",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006182 "id" : 36,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006183 "source_info" : {
6184 "filename" : "include/control/next.p4",
Carmelo Cascone3032b872019-04-13 01:23:54 -07006185 "line" : 312,
6186 "column" : 36,
6187 "source_fragment" : "pop_mpls_if_present()"
6188 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006189 "key" : [],
6190 "match_type" : "exact",
6191 "type" : "simple",
6192 "max_size" : 1024,
6193 "with_counters" : false,
6194 "support_timeout" : false,
6195 "direct_meters" : null,
6196 "action_ids" : [53],
6197 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
6198 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6199 "next_tables" : {
6200 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
6201 },
6202 "default_entry" : {
6203 "action_id" : 53,
6204 "action_const" : true,
6205 "action_data" : [],
6206 "action_entry_const" : true
6207 }
6208 },
6209 {
6210 "name" : "tbl_egress_next_set_mpls",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006211 "id" : 37,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006212 "source_info" : {
6213 "filename" : "include/control/next.p4",
6214 "line" : 314,
6215 "column" : 12,
6216 "source_fragment" : "set_mpls()"
6217 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006218 "key" : [],
6219 "match_type" : "exact",
6220 "type" : "simple",
6221 "max_size" : 1024,
6222 "with_counters" : false,
6223 "support_timeout" : false,
6224 "direct_meters" : null,
6225 "action_ids" : [54],
6226 "actions" : ["FabricEgress.egress_next.set_mpls"],
6227 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6228 "next_tables" : {
6229 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
6230 },
6231 "default_entry" : {
6232 "action_id" : 54,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006233 "action_const" : true,
6234 "action_data" : [],
6235 "action_entry_const" : true
6236 }
6237 },
6238 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006239 "name" : "FabricEgress.egress_next.egress_vlan",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006240 "id" : 38,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006241 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006242 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006243 "line" : 291,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006244 "column" : 10,
6245 "source_fragment" : "egress_vlan"
6246 },
6247 "key" : [
6248 {
6249 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006250 "name" : "vlan_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006251 "target" : ["scalars", "fabric_metadata_t._vlan_id2"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006252 "mask" : null
6253 },
6254 {
6255 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006256 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006257 "target" : ["standard_metadata", "egress_port"],
6258 "mask" : null
6259 }
6260 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006261 "match_type" : "exact",
6262 "type" : "simple",
6263 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08006264 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006265 "support_timeout" : false,
6266 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006267 "action_ids" : [56, 51],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006268 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006269 "base_default_next" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006270 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006271 "__HIT__" : "tbl_act_22",
6272 "__MISS__" : "tbl_act_23"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006273 },
6274 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006275 "action_id" : 51,
6276 "action_const" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006277 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006278 "action_entry_const" : true
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006279 }
6280 },
6281 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006282 "name" : "tbl_act_22",
6283 "id" : 39,
6284 "key" : [],
6285 "match_type" : "exact",
6286 "type" : "simple",
6287 "max_size" : 1024,
6288 "with_counters" : false,
6289 "support_timeout" : false,
6290 "direct_meters" : null,
6291 "action_ids" : [60],
6292 "actions" : ["act_22"],
6293 "base_default_next" : "node_67",
6294 "next_tables" : {
6295 "act_22" : "node_67"
6296 },
6297 "default_entry" : {
6298 "action_id" : 60,
6299 "action_const" : true,
6300 "action_data" : [],
6301 "action_entry_const" : true
6302 }
6303 },
6304 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006305 "name" : "tbl_act_23",
6306 "id" : 40,
6307 "key" : [],
6308 "match_type" : "exact",
6309 "type" : "simple",
6310 "max_size" : 1024,
6311 "with_counters" : false,
6312 "support_timeout" : false,
6313 "direct_meters" : null,
6314 "action_ids" : [61],
6315 "actions" : ["act_23"],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006316 "base_default_next" : "node_67",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006317 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006318 "act_23" : "node_67"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006319 },
6320 "default_entry" : {
6321 "action_id" : 61,
6322 "action_const" : true,
6323 "action_data" : [],
6324 "action_entry_const" : true
6325 }
6326 },
6327 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006328 "name" : "tbl_egress_next_push_vlan",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006329 "id" : 41,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006330 "source_info" : {
6331 "filename" : "include/control/next.p4",
6332 "line" : 320,
6333 "column" : 16,
6334 "source_fragment" : "push_vlan()"
6335 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006336 "key" : [],
6337 "match_type" : "exact",
6338 "type" : "simple",
6339 "max_size" : 1024,
6340 "with_counters" : false,
6341 "support_timeout" : false,
6342 "direct_meters" : null,
6343 "action_ids" : [55],
6344 "actions" : ["FabricEgress.egress_next.push_vlan"],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006345 "base_default_next" : "node_70",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006346 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006347 "FabricEgress.egress_next.push_vlan" : "node_70"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006348 },
6349 "default_entry" : {
6350 "action_id" : 55,
6351 "action_const" : true,
6352 "action_data" : [],
6353 "action_entry_const" : true
6354 }
6355 },
6356 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006357 "name" : "tbl_act_24",
6358 "id" : 42,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006359 "source_info" : {
6360 "filename" : "include/control/next.p4",
6361 "line" : 326,
6362 "column" : 25,
6363 "source_fragment" : "="
6364 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006365 "key" : [],
6366 "match_type" : "exact",
6367 "type" : "simple",
6368 "max_size" : 1024,
6369 "with_counters" : false,
6370 "support_timeout" : false,
6371 "direct_meters" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006372 "action_ids" : [63],
6373 "actions" : ["act_25"],
6374 "base_default_next" : "node_72",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006375 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006376 "act_25" : "node_72"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006377 },
6378 "default_entry" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006379 "action_id" : 63,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006380 "action_const" : true,
6381 "action_data" : [],
6382 "action_entry_const" : true
6383 }
6384 },
6385 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006386 "name" : "tbl_act_25",
6387 "id" : 43,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006388 "source_info" : {
6389 "filename" : "include/control/next.p4",
6390 "line" : 327,
6391 "column" : 35,
6392 "source_fragment" : "mark_to_drop(standard_metadata)"
6393 },
6394 "key" : [],
6395 "match_type" : "exact",
6396 "type" : "simple",
6397 "max_size" : 1024,
6398 "with_counters" : false,
6399 "support_timeout" : false,
6400 "direct_meters" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006401 "action_ids" : [62],
6402 "actions" : ["act_24"],
6403 "base_default_next" : "node_78",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006404 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006405 "act_24" : "node_78"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006406 },
6407 "default_entry" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006408 "action_id" : 62,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006409 "action_const" : true,
6410 "action_data" : [],
6411 "action_entry_const" : true
6412 }
6413 },
6414 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006415 "name" : "tbl_act_26",
6416 "id" : 44,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006417 "source_info" : {
6418 "filename" : "include/control/next.p4",
6419 "line" : 330,
6420 "column" : 29,
6421 "source_fragment" : "="
6422 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006423 "key" : [],
6424 "match_type" : "exact",
6425 "type" : "simple",
6426 "max_size" : 1024,
6427 "with_counters" : false,
6428 "support_timeout" : false,
6429 "direct_meters" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006430 "action_ids" : [65],
6431 "actions" : ["act_27"],
6432 "base_default_next" : "node_76",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006433 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006434 "act_27" : "node_76"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006435 },
6436 "default_entry" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006437 "action_id" : 65,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006438 "action_const" : true,
6439 "action_data" : [],
6440 "action_entry_const" : true
6441 }
6442 },
6443 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006444 "name" : "tbl_act_27",
6445 "id" : 45,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006446 "source_info" : {
6447 "filename" : "include/control/next.p4",
6448 "line" : 331,
6449 "column" : 39,
6450 "source_fragment" : "mark_to_drop(standard_metadata)"
6451 },
6452 "key" : [],
6453 "match_type" : "exact",
6454 "type" : "simple",
6455 "max_size" : 1024,
6456 "with_counters" : false,
6457 "support_timeout" : false,
6458 "direct_meters" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006459 "action_ids" : [64],
6460 "actions" : ["act_26"],
6461 "base_default_next" : "node_78",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006462 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006463 "act_26" : "node_78"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006464 },
6465 "default_entry" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006466 "action_id" : 64,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006467 "action_const" : true,
6468 "action_data" : [],
6469 "action_entry_const" : true
6470 }
6471 },
6472 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006473 "name" : "tbl_spgw_egress_gtpu_encap",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006474 "id" : 46,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006475 "source_info" : {
6476 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006477 "line" : 228,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006478 "column" : 12,
6479 "source_fragment" : "gtpu_encap()"
6480 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006481 "key" : [],
6482 "match_type" : "exact",
6483 "type" : "simple",
6484 "max_size" : 1024,
6485 "with_counters" : false,
6486 "support_timeout" : false,
6487 "direct_meters" : null,
6488 "action_ids" : [52],
Yi Tseng27b9bc02018-04-12 14:52:40 +08006489 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006490 "base_default_next" : null,
6491 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006492 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006493 },
6494 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006495 "action_id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006496 "action_const" : true,
6497 "action_data" : [],
6498 "action_entry_const" : true
6499 }
6500 }
6501 ],
6502 "action_profiles" : [],
6503 "conditionals" : [
6504 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006505 "name" : "node_54",
6506 "id" : 17,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006507 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006508 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006509 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006510 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006511 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006512 },
6513 "expression" : {
6514 "type" : "expression",
6515 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006516 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006517 "left" : {
6518 "type" : "expression",
6519 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006520 "op" : "d2b",
6521 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006522 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006523 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006524 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out12"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02006525 }
6526 }
6527 },
6528 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006529 "type" : "bool",
6530 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02006531 }
6532 }
6533 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006534 "true_next" : "tbl_act_19",
6535 "false_next" : "node_56"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006536 },
6537 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006538 "name" : "node_56",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006539 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006540 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006541 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006542 "line" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006543 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08006544 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006545 },
6546 "expression" : {
6547 "type" : "expression",
6548 "value" : {
6549 "op" : "==",
6550 "left" : {
6551 "type" : "field",
6552 "value" : ["standard_metadata", "egress_port"]
6553 },
6554 "right" : {
6555 "type" : "hexstr",
6556 "value" : "0x00ff"
6557 }
6558 }
6559 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006560 "true_next" : "tbl_act_20",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006561 "false_next" : "node_58"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006562 },
6563 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006564 "name" : "node_58",
6565 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006566 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006567 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006568 "line" : 306,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006569 "column" : 12,
6570 "source_fragment" : "fabric_metadata.is_multicast == true ..."
6571 },
6572 "expression" : {
6573 "type" : "expression",
6574 "value" : {
6575 "op" : "and",
6576 "left" : {
6577 "type" : "expression",
6578 "value" : {
6579 "op" : "==",
6580 "left" : {
6581 "type" : "expression",
6582 "value" : {
6583 "op" : "d2b",
6584 "left" : null,
6585 "right" : {
6586 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006587 "value" : ["scalars", "fabric_metadata_t._is_multicast11"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006588 }
6589 }
6590 },
6591 "right" : {
6592 "type" : "bool",
6593 "value" : true
6594 }
6595 }
6596 },
6597 "right" : {
6598 "type" : "expression",
6599 "value" : {
6600 "op" : "==",
6601 "left" : {
6602 "type" : "field",
6603 "value" : ["standard_metadata", "ingress_port"]
6604 },
6605 "right" : {
6606 "type" : "field",
6607 "value" : ["standard_metadata", "egress_port"]
6608 }
6609 }
6610 }
6611 }
6612 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006613 "true_next" : "tbl_act_21",
6614 "false_next" : "node_60"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006615 },
6616 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006617 "name" : "node_60",
6618 "id" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006619 "source_info" : {
6620 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006621 "line" : 311,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006622 "column" : 12,
6623 "source_fragment" : "fabric_metadata.mpls_label == 0"
6624 },
6625 "expression" : {
6626 "type" : "expression",
6627 "value" : {
6628 "op" : "==",
6629 "left" : {
6630 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006631 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006632 },
6633 "right" : {
6634 "type" : "hexstr",
6635 "value" : "0x000000"
6636 }
6637 }
6638 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006639 "true_next" : "node_61",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006640 "false_next" : "tbl_egress_next_set_mpls"
6641 },
6642 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006643 "name" : "node_61",
6644 "id" : 21,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006645 "source_info" : {
6646 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006647 "line" : 312,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006648 "column" : 16,
6649 "source_fragment" : "hdr.mpls.isValid()"
6650 },
6651 "expression" : {
6652 "type" : "expression",
6653 "value" : {
6654 "op" : "d2b",
6655 "left" : null,
6656 "right" : {
6657 "type" : "field",
6658 "value" : ["mpls", "$valid$"]
6659 }
6660 }
6661 },
6662 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006663 "false_next" : "FabricEgress.egress_next.egress_vlan"
6664 },
6665 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006666 "name" : "node_67",
6667 "id" : 22,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006668 "source_info" : {
6669 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006670 "line" : 317,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006671 "column" : 12,
6672 "source_fragment" : "!egress_vlan.apply().hit"
6673 },
6674 "expression" : {
6675 "type" : "expression",
6676 "value" : {
6677 "op" : "not",
6678 "left" : null,
6679 "right" : {
6680 "type" : "expression",
6681 "value" : {
6682 "op" : "d2b",
6683 "left" : null,
6684 "right" : {
6685 "type" : "field",
6686 "value" : ["scalars", "egress_next_tmp"]
6687 }
6688 }
6689 }
6690 }
6691 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006692 "true_next" : "node_68",
6693 "false_next" : "node_70"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006694 },
6695 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006696 "name" : "node_68",
6697 "id" : 23,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006698 "source_info" : {
6699 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006700 "line" : 319,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006701 "column" : 16,
6702 "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
6703 },
6704 "expression" : {
6705 "type" : "expression",
6706 "value" : {
6707 "op" : "!=",
6708 "left" : {
6709 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006710 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006711 },
6712 "right" : {
6713 "type" : "hexstr",
6714 "value" : "0x0ffe"
6715 }
6716 }
6717 },
6718 "true_next" : "tbl_egress_next_push_vlan",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006719 "false_next" : "node_70"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006720 },
6721 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006722 "name" : "node_70",
6723 "id" : 24,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006724 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006725 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006726 "line" : 325,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006727 "column" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006728 "source_fragment" : "hdr.mpls.isValid()"
6729 },
6730 "expression" : {
6731 "type" : "expression",
6732 "value" : {
6733 "op" : "d2b",
6734 "left" : null,
6735 "right" : {
6736 "type" : "field",
6737 "value" : ["mpls", "$valid$"]
6738 }
6739 }
6740 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006741 "true_next" : "tbl_act_24",
6742 "false_next" : "node_74"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006743 },
6744 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006745 "name" : "node_72",
6746 "id" : 25,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006747 "source_info" : {
6748 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006749 "line" : 327,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006750 "column" : 16,
6751 "source_fragment" : "hdr.mpls.ttl == 0"
6752 },
6753 "expression" : {
6754 "type" : "expression",
6755 "value" : {
6756 "op" : "==",
6757 "left" : {
6758 "type" : "field",
6759 "value" : ["mpls", "ttl"]
6760 },
6761 "right" : {
6762 "type" : "hexstr",
6763 "value" : "0x00"
6764 }
6765 }
6766 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006767 "true_next" : "tbl_act_25",
6768 "false_next" : "node_78"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006769 },
6770 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006771 "name" : "node_74",
6772 "id" : 26,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006773 "source_info" : {
6774 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006775 "line" : 329,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006776 "column" : 15,
6777 "source_fragment" : "hdr.ipv4.isValid()"
6778 },
6779 "expression" : {
6780 "type" : "expression",
6781 "value" : {
6782 "op" : "d2b",
6783 "left" : null,
6784 "right" : {
6785 "type" : "field",
6786 "value" : ["ipv4", "$valid$"]
6787 }
6788 }
6789 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006790 "true_next" : "tbl_act_26",
6791 "false_next" : "node_78"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006792 },
6793 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006794 "name" : "node_76",
6795 "id" : 27,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006796 "source_info" : {
6797 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006798 "line" : 331,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006799 "column" : 20,
6800 "source_fragment" : "hdr.ipv4.ttl == 0"
6801 },
6802 "expression" : {
6803 "type" : "expression",
6804 "value" : {
6805 "op" : "==",
6806 "left" : {
6807 "type" : "field",
6808 "value" : ["ipv4", "ttl"]
6809 },
6810 "right" : {
6811 "type" : "hexstr",
6812 "value" : "0x00"
6813 }
6814 }
6815 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006816 "true_next" : "tbl_act_27",
6817 "false_next" : "node_78"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006818 },
6819 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006820 "name" : "node_78",
6821 "id" : 28,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006822 "source_info" : {
6823 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006824 "line" : 227,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006825 "column" : 12,
6826 "source_fragment" : "fabric_meta.spgw.direction == SPGW_DIR_DOWNLINK"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006827 },
6828 "expression" : {
6829 "type" : "expression",
6830 "value" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006831 "op" : "==",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006832 "left" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006833 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006834 "value" : ["scalars", "fabric_metadata_t._spgw_direction16"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006835 },
6836 "right" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006837 "type" : "hexstr",
6838 "value" : "0x02"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006839 }
6840 }
6841 },
6842 "false_next" : null,
6843 "true_next" : "tbl_spgw_egress_gtpu_encap"
6844 }
6845 ]
6846 }
6847 ],
6848 "checksums" : [
6849 {
6850 "name" : "cksum",
6851 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006852 "source_info" : {
6853 "filename" : "include/checksum.p4",
6854 "line" : 28,
6855 "column" : 8,
6856 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
6857 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006858 "target" : ["ipv4", "hdr_checksum"],
6859 "type" : "generic",
6860 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006861 "verify" : false,
6862 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006863 "if_cond" : {
6864 "type" : "expression",
6865 "value" : {
6866 "op" : "d2b",
6867 "left" : null,
6868 "right" : {
6869 "type" : "field",
6870 "value" : ["ipv4", "$valid$"]
6871 }
6872 }
6873 }
6874 },
6875 {
6876 "name" : "cksum_0",
6877 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006878 "source_info" : {
6879 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006880 "line" : 243,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006881 "column" : 8,
6882 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
6883 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006884 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006885 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006886 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006887 "verify" : false,
6888 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006889 "if_cond" : {
6890 "type" : "expression",
6891 "value" : {
6892 "op" : "d2b",
6893 "left" : null,
6894 "right" : {
6895 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006896 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006897 }
6898 }
6899 }
6900 },
6901 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006902 "name" : "cksum_1",
6903 "id" : 2,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006904 "source_info" : {
6905 "filename" : "include/checksum.p4",
6906 "line" : 57,
6907 "column" : 8,
6908 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
6909 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006910 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006911 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006912 "calculation" : "calc_1",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006913 "verify" : true,
6914 "update" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006915 "if_cond" : {
6916 "type" : "expression",
6917 "value" : {
6918 "op" : "d2b",
6919 "left" : null,
6920 "right" : {
6921 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006922 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006923 }
6924 }
6925 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006926 }
6927 ],
6928 "force_arith" : [],
6929 "extern_instances" : [],
6930 "field_aliases" : [
6931 [
6932 "queueing_metadata.enq_timestamp",
6933 ["standard_metadata", "enq_timestamp"]
6934 ],
6935 [
6936 "queueing_metadata.enq_qdepth",
6937 ["standard_metadata", "enq_qdepth"]
6938 ],
6939 [
6940 "queueing_metadata.deq_timedelta",
6941 ["standard_metadata", "deq_timedelta"]
6942 ],
6943 [
6944 "queueing_metadata.deq_qdepth",
6945 ["standard_metadata", "deq_qdepth"]
6946 ],
6947 [
6948 "intrinsic_metadata.ingress_global_timestamp",
6949 ["standard_metadata", "ingress_global_timestamp"]
6950 ],
6951 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08006952 "intrinsic_metadata.egress_global_timestamp",
6953 ["standard_metadata", "egress_global_timestamp"]
6954 ],
6955 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006956 "intrinsic_metadata.lf_field_list",
6957 ["standard_metadata", "lf_field_list"]
6958 ],
6959 [
6960 "intrinsic_metadata.mcast_grp",
6961 ["standard_metadata", "mcast_grp"]
6962 ],
6963 [
6964 "intrinsic_metadata.resubmit_flag",
6965 ["standard_metadata", "resubmit_flag"]
6966 ],
6967 [
6968 "intrinsic_metadata.egress_rid",
6969 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08006970 ],
6971 [
6972 "intrinsic_metadata.recirculate_flag",
6973 ["standard_metadata", "recirculate_flag"]
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006974 ],
6975 [
6976 "intrinsic_metadata.priority",
6977 ["standard_metadata", "priority"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006978 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006979 ],
6980 "program" : "fabric.p4",
6981 "__meta__" : {
6982 "version" : [2, 18],
6983 "compiler" : "https://github.com/p4lang/p4c"
6984 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08006985}