blob: c068c361103d83a9754f4b03e515c7e16acf5c57 [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],
29 ["fabric_metadata_t._clone_to_cpu13", 1, false],
30 ["fabric_metadata_t._ip_proto14", 8, false],
31 ["fabric_metadata_t._l4_sport15", 16, false],
32 ["fabric_metadata_t._l4_dport16", 16, false],
33 ["fabric_metadata_t._spgw_direction17", 2, false],
34 ["fabric_metadata_t._spgw_ipv4_len18", 16, false],
35 ["fabric_metadata_t._spgw_teid19", 32, false],
36 ["fabric_metadata_t._spgw_s1u_enb_addr20", 32, false],
37 ["fabric_metadata_t._spgw_s1u_sgw_addr21", 32, false],
38 ["_padding_0", 1, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080039 ]
40 },
41 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020042 "name" : "standard_metadata",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080043 "id" : 1,
44 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020045 ["ingress_port", 9, false],
46 ["egress_spec", 9, false],
47 ["egress_port", 9, false],
48 ["clone_spec", 32, false],
49 ["instance_type", 32, false],
50 ["drop", 1, false],
51 ["recirculate_port", 16, false],
52 ["packet_length", 32, false],
53 ["enq_timestamp", 32, false],
54 ["enq_qdepth", 19, false],
55 ["deq_timedelta", 32, false],
56 ["deq_qdepth", 19, false],
57 ["ingress_global_timestamp", 48, false],
58 ["egress_global_timestamp", 48, false],
59 ["lf_field_list", 32, false],
60 ["mcast_grp", 16, false],
61 ["resubmit_flag", 32, false],
62 ["egress_rid", 16, false],
63 ["checksum_error", 1, false],
64 ["recirculate_flag", 32, false],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -070065 ["parser_error", 32, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020066 ["_padding", 5, false]
67 ]
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" : [],
313 "field_lists" : [],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700314 "errors" : [
315 ["NoError", 1],
316 ["PacketTooShort", 2],
317 ["NoMatch", 3],
318 ["StackOutOfBounds", 4],
319 ["HeaderTooShort", 5],
320 ["ParserTimeout", 6]
321 ],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800322 "enums" : [],
323 "parsers" : [
324 {
325 "name" : "parser",
326 "id" : 0,
327 "init_state" : "start",
328 "parse_states" : [
329 {
330 "name" : "start",
331 "id" : 0,
332 "parser_ops" : [],
333 "transitions" : [
334 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800335 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800336 "value" : "0x00ff",
337 "mask" : null,
338 "next_state" : "parse_packet_out"
339 },
340 {
341 "value" : "default",
342 "mask" : null,
343 "next_state" : "parse_ethernet"
344 }
345 ],
346 "transition_key" : [
347 {
348 "type" : "field",
349 "value" : ["standard_metadata", "ingress_port"]
350 }
351 ]
352 },
353 {
354 "name" : "parse_packet_out",
355 "id" : 1,
356 "parser_ops" : [
357 {
358 "parameters" : [
359 {
360 "type" : "regular",
361 "value" : "packet_out"
362 }
363 ],
364 "op" : "extract"
365 }
366 ],
367 "transitions" : [
368 {
369 "value" : "default",
370 "mask" : null,
371 "next_state" : "parse_ethernet"
372 }
373 ],
374 "transition_key" : []
375 },
376 {
377 "name" : "parse_ethernet",
378 "id" : 2,
379 "parser_ops" : [
380 {
381 "parameters" : [
382 {
383 "type" : "regular",
384 "value" : "ethernet"
385 }
386 ],
387 "op" : "extract"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800388 },
389 {
390 "parameters" : [
391 {
392 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800393 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800394 },
395 {
396 "type" : "field",
397 "value" : ["ethernet", "eth_type"]
398 }
399 ],
400 "op" : "set"
401 },
402 {
403 "parameters" : [
404 {
405 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800406 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800407 },
408 {
409 "type" : "hexstr",
410 "value" : "0x0ffe"
411 }
412 ],
413 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800414 }
415 ],
416 "transitions" : [
417 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800418 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800419 "value" : "0x8100",
420 "mask" : null,
421 "next_state" : "parse_vlan_tag"
422 },
423 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800424 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800425 "value" : "0x8847",
426 "mask" : null,
427 "next_state" : "parse_mpls"
428 },
429 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800430 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800431 "value" : "0x0800",
432 "mask" : null,
433 "next_state" : "parse_ipv4"
434 },
435 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800436 "value" : "default",
437 "mask" : null,
438 "next_state" : null
439 }
440 ],
441 "transition_key" : [
442 {
443 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800444 "value" : ["ethernet", "eth_type"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800445 }
446 ]
447 },
448 {
449 "name" : "parse_vlan_tag",
450 "id" : 3,
451 "parser_ops" : [
452 {
453 "parameters" : [
454 {
455 "type" : "regular",
456 "value" : "vlan_tag"
457 }
458 ],
459 "op" : "extract"
460 }
461 ],
462 "transitions" : [
463 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800464 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800465 "value" : "0x0800",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800466 "mask" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800467 "next_state" : "parse_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800468 },
469 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800470 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800471 "value" : "0x8847",
472 "mask" : null,
473 "next_state" : "parse_mpls"
474 },
475 {
476 "type" : "hexstr",
477 "value" : "0x8100",
478 "mask" : null,
479 "next_state" : "parse_inner_vlan_tag"
480 },
481 {
482 "value" : "default",
483 "mask" : null,
484 "next_state" : null
485 }
486 ],
487 "transition_key" : [
488 {
489 "type" : "field",
490 "value" : ["vlan_tag", "eth_type"]
491 }
492 ]
493 },
494 {
495 "name" : "parse_inner_vlan_tag",
496 "id" : 4,
497 "parser_ops" : [
498 {
499 "parameters" : [
500 {
501 "type" : "regular",
502 "value" : "inner_vlan_tag"
503 }
504 ],
505 "op" : "extract"
506 }
507 ],
508 "transitions" : [
509 {
510 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800511 "value" : "0x0800",
512 "mask" : null,
513 "next_state" : "parse_ipv4"
514 },
515 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800516 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800517 "value" : "0x8847",
518 "mask" : null,
519 "next_state" : "parse_mpls"
520 },
521 {
522 "value" : "default",
523 "mask" : null,
524 "next_state" : null
525 }
526 ],
527 "transition_key" : [
528 {
529 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800530 "value" : ["inner_vlan_tag", "eth_type"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800531 }
532 ]
533 },
534 {
535 "name" : "parse_mpls",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800536 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800537 "parser_ops" : [
538 {
539 "parameters" : [
540 {
541 "type" : "regular",
542 "value" : "mpls"
543 }
544 ],
545 "op" : "extract"
546 },
547 {
548 "parameters" : [
549 {
550 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800551 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800552 },
553 {
554 "type" : "field",
555 "value" : ["mpls", "label"]
556 }
557 ],
558 "op" : "set"
559 },
560 {
561 "parameters" : [
562 {
563 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800564 "value" : ["scalars", "fabric_metadata_t._mpls_ttl6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800565 },
566 {
567 "type" : "field",
568 "value" : ["mpls", "ttl"]
569 }
570 ],
571 "op" : "set"
572 },
573 {
574 "parameters" : [
575 {
576 "type" : "field",
577 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800578 },
579 {
580 "type" : "lookahead",
581 "value" : [0, 4]
582 }
583 ],
584 "op" : "set"
585 }
586 ],
587 "transitions" : [
588 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800589 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800590 "value" : "0x04",
591 "mask" : null,
592 "next_state" : "parse_ipv4"
593 },
594 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800595 "value" : "default",
596 "mask" : null,
597 "next_state" : "parse_ethernet"
598 }
599 ],
600 "transition_key" : [
601 {
602 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800603 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800604 }
605 ]
606 },
607 {
608 "name" : "parse_ipv4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800609 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800610 "parser_ops" : [
611 {
612 "parameters" : [
613 {
614 "type" : "regular",
615 "value" : "ipv4"
616 }
617 ],
618 "op" : "extract"
619 },
620 {
621 "parameters" : [
622 {
623 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800624 "value" : ["scalars", "fabric_metadata_t._ip_proto14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800625 },
626 {
627 "type" : "field",
628 "value" : ["ipv4", "protocol"]
629 }
630 ],
631 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800632 },
633 {
634 "parameters" : [
635 {
636 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800637 "value" : ["scalars", "fabric_metadata_t._ip_eth_type1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800638 },
639 {
640 "type" : "hexstr",
641 "value" : "0x0800"
642 }
643 ],
644 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800645 }
646 ],
647 "transitions" : [
648 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800649 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800650 "value" : "0x06",
651 "mask" : null,
652 "next_state" : "parse_tcp"
653 },
654 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800655 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800656 "value" : "0x11",
657 "mask" : null,
658 "next_state" : "parse_udp"
659 },
660 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800661 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800662 "value" : "0x01",
663 "mask" : null,
664 "next_state" : "parse_icmp"
665 },
666 {
667 "value" : "default",
668 "mask" : null,
669 "next_state" : null
670 }
671 ],
672 "transition_key" : [
673 {
674 "type" : "field",
675 "value" : ["ipv4", "protocol"]
676 }
677 ]
678 },
679 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800680 "name" : "parse_tcp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200681 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800682 "parser_ops" : [
683 {
684 "parameters" : [
685 {
686 "type" : "regular",
687 "value" : "tcp"
688 }
689 ],
690 "op" : "extract"
691 },
692 {
693 "parameters" : [
694 {
695 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800696 "value" : ["scalars", "fabric_metadata_t._l4_sport15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800697 },
698 {
699 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800700 "value" : ["tcp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800701 }
702 ],
703 "op" : "set"
704 },
705 {
706 "parameters" : [
707 {
708 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800709 "value" : ["scalars", "fabric_metadata_t._l4_dport16"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800710 },
711 {
712 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800713 "value" : ["tcp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800714 }
715 ],
716 "op" : "set"
717 }
718 ],
719 "transitions" : [
720 {
721 "value" : "default",
722 "mask" : null,
723 "next_state" : null
724 }
725 ],
726 "transition_key" : []
727 },
728 {
729 "name" : "parse_udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200730 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800731 "parser_ops" : [
732 {
733 "parameters" : [
734 {
735 "type" : "regular",
736 "value" : "udp"
737 }
738 ],
739 "op" : "extract"
740 },
741 {
742 "parameters" : [
743 {
744 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800745 "value" : ["scalars", "fabric_metadata_t._l4_sport15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800746 },
747 {
748 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800749 "value" : ["udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800750 }
751 ],
752 "op" : "set"
753 },
754 {
755 "parameters" : [
756 {
757 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800758 "value" : ["scalars", "fabric_metadata_t._l4_dport16"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800759 },
760 {
761 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800762 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800763 }
764 ],
765 "op" : "set"
766 }
767 ],
768 "transitions" : [
769 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800770 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800771 "value" : "0x0868",
772 "mask" : null,
773 "next_state" : "parse_gtpu"
774 },
775 {
776 "value" : "default",
777 "mask" : null,
778 "next_state" : null
779 }
780 ],
781 "transition_key" : [
782 {
783 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800784 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800785 }
786 ]
787 },
788 {
789 "name" : "parse_icmp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200790 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800791 "parser_ops" : [
792 {
793 "parameters" : [
794 {
795 "type" : "regular",
796 "value" : "icmp"
797 }
798 ],
799 "op" : "extract"
800 }
801 ],
802 "transitions" : [
803 {
804 "value" : "default",
805 "mask" : null,
806 "next_state" : null
807 }
808 ],
809 "transition_key" : []
810 },
811 {
812 "name" : "parse_gtpu",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200813 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800814 "parser_ops" : [
815 {
816 "parameters" : [
817 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700818 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800819 "value" : ["scalars", "tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700820 },
821 {
822 "type" : "expression",
823 "value" : {
824 "type" : "expression",
825 "value" : {
826 "op" : "&",
827 "left" : {
828 "type" : "expression",
829 "value" : {
830 "op" : "&",
831 "left" : {
832 "type" : "expression",
833 "value" : {
834 "op" : ">>",
835 "left" : {
836 "type" : "field",
837 "value" : ["ipv4", "dst_addr"]
838 },
839 "right" : {
840 "type" : "hexstr",
841 "value" : "0x18"
842 }
843 }
844 },
845 "right" : {
846 "type" : "hexstr",
847 "value" : "0xffffffff"
848 }
849 }
850 },
851 "right" : {
852 "type" : "hexstr",
853 "value" : "0xff"
854 }
855 }
856 }
857 }
858 ],
859 "op" : "set"
860 }
861 ],
862 "transitions" : [
863 {
864 "type" : "hexstr",
865 "value" : "0x8c",
866 "mask" : null,
867 "next_state" : "do_parse_gtpu"
868 },
869 {
870 "value" : "default",
871 "mask" : null,
872 "next_state" : null
873 }
874 ],
875 "transition_key" : [
876 {
877 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800878 "value" : ["scalars", "tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700879 }
880 ]
881 },
882 {
883 "name" : "do_parse_gtpu",
884 "id" : 11,
885 "parser_ops" : [
886 {
887 "parameters" : [
888 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800889 "type" : "regular",
890 "value" : "gtpu"
891 }
892 ],
893 "op" : "extract"
894 },
895 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800896 "parameters" : [
897 {
898 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700899 "value" : "inner_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800900 }
901 ],
902 "op" : "extract"
903 }
904 ],
905 "transitions" : [
906 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800907 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800908 "value" : "0x06",
909 "mask" : null,
910 "next_state" : "parse_tcp"
911 },
912 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800913 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800914 "value" : "0x11",
915 "mask" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700916 "next_state" : "parse_inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800917 },
918 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800919 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800920 "value" : "0x01",
921 "mask" : null,
922 "next_state" : "parse_icmp"
923 },
924 {
925 "value" : "default",
926 "mask" : null,
927 "next_state" : null
928 }
929 ],
930 "transition_key" : [
931 {
932 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700933 "value" : ["inner_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800934 }
935 ]
936 },
937 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700938 "name" : "parse_inner_udp",
939 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800940 "parser_ops" : [
941 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800942 "parameters" : [
943 {
944 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700945 "value" : "inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800946 }
947 ],
948 "op" : "extract"
949 },
950 {
951 "parameters" : [
952 {
953 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800954 "value" : ["scalars", "fabric_metadata_t._l4_sport15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800955 },
956 {
957 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800958 "value" : ["inner_udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800959 }
960 ],
961 "op" : "set"
962 },
963 {
964 "parameters" : [
965 {
966 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800967 "value" : ["scalars", "fabric_metadata_t._l4_dport16"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800968 },
969 {
970 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800971 "value" : ["inner_udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800972 }
973 ],
974 "op" : "set"
975 }
976 ],
977 "transitions" : [
978 {
979 "value" : "default",
980 "mask" : null,
981 "next_state" : null
982 }
983 ],
984 "transition_key" : []
985 }
986 ]
987 }
988 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800989 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800990 "deparsers" : [
991 {
992 "name" : "deparser",
993 "id" : 0,
994 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200995 "filename" : "include/parser.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800996 "line" : 243,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800997 "column" : 8,
998 "source_fragment" : "FabricDeparser"
999 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001000 "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 -08001001 }
1002 ],
1003 "meter_arrays" : [],
1004 "counter_arrays" : [
1005 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001006 "name" : "FabricIngress.spgw_ingress.ue_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001007 "id" : 0,
1008 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001009 "binding" : "FabricIngress.spgw_ingress.dl_sess_lookup",
1010 "source_info" : {
1011 "filename" : "include/spgw.p4",
1012 "line" : 51,
1013 "column" : 50,
1014 "source_fragment" : "ue_counter"
1015 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001016 },
1017 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001018 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001019 "id" : 1,
1020 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001021 "binding" : "FabricIngress.filtering.ingress_port_vlan",
1022 "source_info" : {
1023 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001024 "line" : 31,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001025 "column" : 50,
1026 "source_fragment" : "ingress_port_vlan_counter"
1027 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001028 },
1029 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001030 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001031 "id" : 2,
1032 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001033 "binding" : "FabricIngress.filtering.fwd_classifier",
1034 "source_info" : {
1035 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001036 "line" : 80,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001037 "column" : 50,
1038 "source_fragment" : "fwd_classifier_counter"
1039 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001040 },
1041 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001042 "name" : "FabricIngress.forwarding.bridging_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001043 "id" : 3,
1044 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001045 "binding" : "FabricIngress.forwarding.bridging",
1046 "source_info" : {
1047 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001048 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001049 "column" : 50,
1050 "source_fragment" : "bridging_counter"
1051 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001052 },
1053 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001054 "name" : "FabricIngress.forwarding.mpls_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001055 "id" : 4,
1056 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001057 "binding" : "FabricIngress.forwarding.mpls",
1058 "source_info" : {
1059 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001060 "line" : 63,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001061 "column" : 50,
1062 "source_fragment" : "mpls_counter"
1063 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001064 },
1065 {
Charles Chan384aea22018-08-23 22:08:02 -07001066 "name" : "FabricIngress.forwarding.routing_v4_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001067 "id" : 5,
1068 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001069 "binding" : "FabricIngress.forwarding.routing_v4",
1070 "source_info" : {
1071 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001072 "line" : 87,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001073 "column" : 50,
1074 "source_fragment" : "routing_v4_counter"
1075 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001076 },
1077 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001078 "name" : "FabricIngress.acl.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001079 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001080 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001081 "binding" : "FabricIngress.acl.acl",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001082 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001083 "filename" : "include/control/acl.p4",
1084 "line" : 30,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001085 "column" : 50,
1086 "source_fragment" : "acl_counter"
1087 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001088 },
1089 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001090 "name" : "FabricIngress.next.next_vlan_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001091 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001092 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001093 "binding" : "FabricIngress.next.next_vlan",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001094 "source_info" : {
1095 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001096 "line" : 67,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001097 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001098 "source_fragment" : "next_vlan_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001099 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001100 },
1101 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001102 "name" : "FabricIngress.next.xconnect_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001103 "id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001104 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001105 "binding" : "FabricIngress.next.xconnect",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001106 "source_info" : {
1107 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001108 "line" : 92,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001109 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001110 "source_fragment" : "xconnect_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001111 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001112 },
1113 {
1114 "name" : "FabricIngress.next.hashed_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001115 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001116 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001117 "binding" : "FabricIngress.next.hashed",
1118 "source_info" : {
1119 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001120 "line" : 166,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001121 "column" : 50,
1122 "source_fragment" : "hashed_counter"
1123 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001124 },
1125 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001126 "name" : "FabricIngress.next.multicast_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001127 "id" : 10,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001128 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001129 "binding" : "FabricIngress.next.multicast",
1130 "source_info" : {
1131 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001132 "line" : 210,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001133 "column" : 50,
1134 "source_fragment" : "multicast_counter"
1135 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00001136 },
1137 {
1138 "name" : "FabricIngress.port_counters_control.egress_port_counter",
1139 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001140 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001141 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001142 "line" : 26,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001143 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001144 "source_fragment" : "egress_port_counter"
1145 },
1146 "size" : 511,
1147 "is_direct" : false
1148 },
1149 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001150 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001151 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001152 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001153 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001154 "line" : 27,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001155 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001156 "source_fragment" : "ingress_port_counter"
1157 },
1158 "size" : 511,
1159 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08001160 },
1161 {
1162 "name" : "FabricEgress.egress_next.egress_vlan_counter",
1163 "id" : 13,
1164 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001165 "binding" : "FabricEgress.egress_next.egress_vlan",
1166 "source_info" : {
1167 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001168 "line" : 283,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001169 "column" : 50,
1170 "source_fragment" : "egress_vlan_counter"
1171 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001172 }
1173 ],
1174 "register_arrays" : [],
1175 "calculations" : [
1176 {
1177 "name" : "calc",
1178 "id" : 0,
1179 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001180 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001181 "line" : 28,
1182 "column" : 8,
1183 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1184 },
1185 "algo" : "csum16",
1186 "input" : [
1187 {
1188 "type" : "field",
1189 "value" : ["ipv4", "version"]
1190 },
1191 {
1192 "type" : "field",
1193 "value" : ["ipv4", "ihl"]
1194 },
1195 {
1196 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001197 "value" : ["ipv4", "dscp"]
1198 },
1199 {
1200 "type" : "field",
1201 "value" : ["ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001202 },
1203 {
1204 "type" : "field",
1205 "value" : ["ipv4", "total_len"]
1206 },
1207 {
1208 "type" : "field",
1209 "value" : ["ipv4", "identification"]
1210 },
1211 {
1212 "type" : "field",
1213 "value" : ["ipv4", "flags"]
1214 },
1215 {
1216 "type" : "field",
1217 "value" : ["ipv4", "frag_offset"]
1218 },
1219 {
1220 "type" : "field",
1221 "value" : ["ipv4", "ttl"]
1222 },
1223 {
1224 "type" : "field",
1225 "value" : ["ipv4", "protocol"]
1226 },
1227 {
1228 "type" : "field",
1229 "value" : ["ipv4", "src_addr"]
1230 },
1231 {
1232 "type" : "field",
1233 "value" : ["ipv4", "dst_addr"]
1234 }
1235 ]
1236 },
1237 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001238 "name" : "calc_0",
1239 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001240 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001241 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001242 "line" : 242,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001243 "column" : 8,
1244 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1245 },
1246 "algo" : "csum16",
1247 "input" : [
1248 {
1249 "type" : "field",
1250 "value" : ["gtpu_ipv4", "version"]
1251 },
1252 {
1253 "type" : "field",
1254 "value" : ["gtpu_ipv4", "ihl"]
1255 },
1256 {
1257 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001258 "value" : ["gtpu_ipv4", "dscp"]
1259 },
1260 {
1261 "type" : "field",
1262 "value" : ["gtpu_ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001263 },
1264 {
1265 "type" : "field",
1266 "value" : ["gtpu_ipv4", "total_len"]
1267 },
1268 {
1269 "type" : "field",
1270 "value" : ["gtpu_ipv4", "identification"]
1271 },
1272 {
1273 "type" : "field",
1274 "value" : ["gtpu_ipv4", "flags"]
1275 },
1276 {
1277 "type" : "field",
1278 "value" : ["gtpu_ipv4", "frag_offset"]
1279 },
1280 {
1281 "type" : "field",
1282 "value" : ["gtpu_ipv4", "ttl"]
1283 },
1284 {
1285 "type" : "field",
1286 "value" : ["gtpu_ipv4", "protocol"]
1287 },
1288 {
1289 "type" : "field",
1290 "value" : ["gtpu_ipv4", "src_addr"]
1291 },
1292 {
1293 "type" : "field",
1294 "value" : ["gtpu_ipv4", "dst_addr"]
1295 }
1296 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001297 },
1298 {
1299 "name" : "calc_1",
1300 "id" : 2,
1301 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001302 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001303 "line" : 57,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001304 "column" : 8,
1305 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1306 },
1307 "algo" : "csum16",
1308 "input" : [
1309 {
1310 "type" : "field",
1311 "value" : ["ipv4", "version"]
1312 },
1313 {
1314 "type" : "field",
1315 "value" : ["ipv4", "ihl"]
1316 },
1317 {
1318 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001319 "value" : ["ipv4", "dscp"]
1320 },
1321 {
1322 "type" : "field",
1323 "value" : ["ipv4", "ecn"]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001324 },
1325 {
1326 "type" : "field",
1327 "value" : ["ipv4", "total_len"]
1328 },
1329 {
1330 "type" : "field",
1331 "value" : ["ipv4", "identification"]
1332 },
1333 {
1334 "type" : "field",
1335 "value" : ["ipv4", "flags"]
1336 },
1337 {
1338 "type" : "field",
1339 "value" : ["ipv4", "frag_offset"]
1340 },
1341 {
1342 "type" : "field",
1343 "value" : ["ipv4", "ttl"]
1344 },
1345 {
1346 "type" : "field",
1347 "value" : ["ipv4", "protocol"]
1348 },
1349 {
1350 "type" : "field",
1351 "value" : ["ipv4", "src_addr"]
1352 },
1353 {
1354 "type" : "field",
1355 "value" : ["ipv4", "dst_addr"]
1356 }
1357 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001358 }
1359 ],
1360 "learn_lists" : [],
1361 "actions" : [
1362 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001363 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001364 "id" : 0,
1365 "runtime_data" : [],
1366 "primitives" : []
1367 },
1368 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001369 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001370 "id" : 1,
1371 "runtime_data" : [],
1372 "primitives" : []
1373 },
1374 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001375 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001376 "id" : 2,
1377 "runtime_data" : [],
1378 "primitives" : []
1379 },
1380 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001381 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001382 "id" : 3,
1383 "runtime_data" : [],
1384 "primitives" : []
1385 },
1386 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001387 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001388 "id" : 4,
1389 "runtime_data" : [],
1390 "primitives" : []
1391 },
1392 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001393 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001394 "id" : 5,
1395 "runtime_data" : [],
1396 "primitives" : []
1397 },
1398 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001399 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001400 "id" : 6,
1401 "runtime_data" : [],
1402 "primitives" : []
1403 },
1404 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001405 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001406 "id" : 7,
1407 "runtime_data" : [],
1408 "primitives" : []
1409 },
1410 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001411 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001412 "id" : 8,
1413 "runtime_data" : [],
1414 "primitives" : []
1415 },
1416 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001417 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001418 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001419 "runtime_data" : [],
1420 "primitives" : [
1421 {
1422 "op" : "remove_header",
1423 "parameters" : [
1424 {
1425 "type" : "header",
1426 "value" : "gtpu_ipv4"
1427 }
1428 ],
1429 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001430 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001431 "line" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001432 "column" : 8,
1433 "source_fragment" : "gtpu_ipv4.setInvalid()"
1434 }
1435 },
1436 {
1437 "op" : "remove_header",
1438 "parameters" : [
1439 {
1440 "type" : "header",
1441 "value" : "gtpu_udp"
1442 }
1443 ],
1444 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001445 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001446 "line" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001447 "column" : 8,
1448 "source_fragment" : "gtpu_udp.setInvalid()"
1449 }
1450 },
1451 {
1452 "op" : "remove_header",
1453 "parameters" : [
1454 {
1455 "type" : "header",
1456 "value" : "gtpu"
1457 }
1458 ],
1459 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001460 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001461 "line" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001462 "column" : 8,
1463 "source_fragment" : "gtpu.setInvalid()"
1464 }
1465 }
1466 ]
1467 },
1468 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001469 "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001470 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001471 "runtime_data" : [
1472 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001473 "name" : "teid",
1474 "bitwidth" : 32
1475 },
1476 {
1477 "name" : "s1u_enb_addr",
1478 "bitwidth" : 32
1479 },
1480 {
1481 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001482 "bitwidth" : 32
1483 }
1484 ],
1485 "primitives" : [
1486 {
1487 "op" : "assign",
1488 "parameters" : [
1489 {
1490 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001491 "value" : ["scalars", "fabric_metadata_t._spgw_teid19"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001492 },
1493 {
1494 "type" : "runtime_data",
1495 "value" : 0
1496 }
1497 ],
1498 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001499 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001500 "line" : 63,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001501 "column" : 30,
1502 "source_fragment" : "= teid; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001503 }
1504 },
1505 {
1506 "op" : "assign",
1507 "parameters" : [
1508 {
1509 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001510 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr20"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001511 },
1512 {
1513 "type" : "runtime_data",
1514 "value" : 1
1515 }
1516 ],
1517 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001518 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001519 "line" : 64,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001520 "column" : 38,
1521 "source_fragment" : "= s1u_enb_addr; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001522 }
1523 },
1524 {
1525 "op" : "assign",
1526 "parameters" : [
1527 {
1528 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001529 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr21"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001530 },
1531 {
1532 "type" : "runtime_data",
1533 "value" : 2
1534 }
1535 ],
1536 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001537 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001538 "line" : 65,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001539 "column" : 38,
1540 "source_fragment" : "= s1u_sgw_addr; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001541 }
1542 }
1543 ]
1544 },
1545 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001546 "name" : "FabricIngress.filtering.deny",
1547 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001548 "runtime_data" : [],
1549 "primitives" : [
1550 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001551 "op" : "assign",
1552 "parameters" : [
1553 {
1554 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001555 "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001556 },
1557 {
1558 "type" : "expression",
1559 "value" : {
1560 "type" : "expression",
1561 "value" : {
1562 "op" : "b2d",
1563 "left" : null,
1564 "right" : {
1565 "type" : "bool",
1566 "value" : true
1567 }
1568 }
1569 }
1570 }
1571 ],
1572 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001573 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001574 "line" : 36,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001575 "column" : 40,
1576 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001577 }
1578 },
1579 {
1580 "op" : "assign",
1581 "parameters" : [
1582 {
1583 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001584 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001585 },
1586 {
1587 "type" : "expression",
1588 "value" : {
1589 "type" : "expression",
1590 "value" : {
1591 "op" : "b2d",
1592 "left" : null,
1593 "right" : {
1594 "type" : "bool",
1595 "value" : true
1596 }
1597 }
1598 }
1599 }
1600 ],
1601 "source_info" : {
1602 "filename" : "include/control/filtering.p4",
1603 "line" : 37,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001604 "column" : 34,
1605 "source_fragment" : "= true; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001606 }
1607 }
1608 ]
1609 },
1610 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001611 "name" : "FabricIngress.filtering.permit",
1612 "id" : 12,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001613 "runtime_data" : [],
1614 "primitives" : []
1615 },
1616 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001617 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
1618 "id" : 13,
1619 "runtime_data" : [
1620 {
1621 "name" : "vlan_id",
1622 "bitwidth" : 12
1623 }
1624 ],
1625 "primitives" : [
1626 {
1627 "op" : "assign",
1628 "parameters" : [
1629 {
1630 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001631 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001632 },
1633 {
1634 "type" : "runtime_data",
1635 "value" : 0
1636 }
1637 ],
1638 "source_info" : {
1639 "filename" : "include/control/filtering.p4",
1640 "line" : 47,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001641 "column" : 32,
1642 "source_fragment" : "= vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001643 }
1644 }
1645 ]
1646 },
1647 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001648 "name" : "FabricIngress.filtering.set_forwarding_type",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001649 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001650 "runtime_data" : [
1651 {
1652 "name" : "fwd_type",
1653 "bitwidth" : 3
1654 }
1655 ],
1656 "primitives" : [
1657 {
1658 "op" : "assign",
1659 "parameters" : [
1660 {
1661 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001662 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001663 },
1664 {
1665 "type" : "runtime_data",
1666 "value" : 0
1667 }
1668 ],
1669 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001670 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001671 "line" : 83,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001672 "column" : 33,
1673 "source_fragment" : "= fwd_type; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001674 }
1675 }
1676 ]
1677 },
1678 {
Yi Tseng47eac892018-07-11 02:17:04 +08001679 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001680 "id" : 15,
1681 "runtime_data" : [
1682 {
1683 "name" : "next_id",
1684 "bitwidth" : 32
1685 }
1686 ],
1687 "primitives" : [
1688 {
1689 "op" : "assign",
1690 "parameters" : [
1691 {
1692 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001693 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001694 },
1695 {
1696 "type" : "runtime_data",
1697 "value" : 0
1698 }
1699 ],
1700 "source_info" : {
1701 "filename" : "include/control/forwarding.p4",
1702 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001703 "column" : 32,
1704 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001705 }
1706 }
1707 ]
1708 },
1709 {
1710 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
1711 "id" : 16,
1712 "runtime_data" : [
1713 {
1714 "name" : "next_id",
1715 "bitwidth" : 32
1716 }
1717 ],
1718 "primitives" : [
1719 {
1720 "op" : "assign",
1721 "parameters" : [
1722 {
1723 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001724 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001725 },
1726 {
1727 "type" : "hexstr",
1728 "value" : "0x000000"
1729 }
1730 ],
1731 "source_info" : {
1732 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001733 "line" : 66,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001734 "column" : 35,
1735 "source_fragment" : "= 0; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001736 }
1737 },
1738 {
1739 "op" : "assign",
1740 "parameters" : [
1741 {
1742 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001743 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001744 },
1745 {
1746 "type" : "runtime_data",
1747 "value" : 0
1748 }
1749 ],
1750 "source_info" : {
1751 "filename" : "include/control/forwarding.p4",
1752 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001753 "column" : 32,
1754 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001755 }
1756 }
1757 ]
1758 },
1759 {
1760 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001761 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001762 "runtime_data" : [
1763 {
1764 "name" : "next_id",
1765 "bitwidth" : 32
1766 }
1767 ],
1768 "primitives" : [
1769 {
1770 "op" : "assign",
1771 "parameters" : [
1772 {
1773 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001774 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001775 },
1776 {
1777 "type" : "runtime_data",
1778 "value" : 0
1779 }
1780 ],
1781 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001782 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001783 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001784 "column" : 32,
1785 "source_fragment" : "= next_id; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001786 }
1787 }
1788 ]
1789 },
1790 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001791 "name" : "FabricIngress.forwarding.nop_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001792 "id" : 18,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001793 "runtime_data" : [],
1794 "primitives" : []
Yi Tseng47eac892018-07-11 02:17:04 +08001795 },
1796 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001797 "name" : "FabricIngress.acl.set_next_id_acl",
Charles Chancf696e52018-08-16 16:25:13 -07001798 "id" : 19,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001799 "runtime_data" : [
1800 {
1801 "name" : "next_id",
1802 "bitwidth" : 32
1803 }
1804 ],
1805 "primitives" : [
1806 {
1807 "op" : "assign",
1808 "parameters" : [
1809 {
1810 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001811 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08001812 },
1813 {
1814 "type" : "runtime_data",
1815 "value" : 0
1816 }
1817 ],
1818 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001819 "filename" : "include/control/acl.p4",
1820 "line" : 33,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001821 "column" : 32,
1822 "source_fragment" : "= next_id; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001823 }
1824 }
1825 ]
1826 },
1827 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001828 "name" : "FabricIngress.acl.punt_to_cpu",
Charles Chancf696e52018-08-16 16:25:13 -07001829 "id" : 20,
Charles Chancd03f072018-08-31 17:46:37 -07001830 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001831 "primitives" : [
1832 {
1833 "op" : "assign",
1834 "parameters" : [
1835 {
1836 "type" : "field",
1837 "value" : ["standard_metadata", "egress_spec"]
1838 },
1839 {
1840 "type" : "hexstr",
1841 "value" : "0x00ff"
1842 }
1843 ],
1844 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001845 "filename" : "include/control/acl.p4",
1846 "line" : 39,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001847 "column" : 8,
1848 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001849 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001850 },
1851 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001852 "op" : "assign",
1853 "parameters" : [
1854 {
1855 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001856 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001857 },
1858 {
1859 "type" : "expression",
1860 "value" : {
1861 "type" : "expression",
1862 "value" : {
1863 "op" : "b2d",
1864 "left" : null,
1865 "right" : {
1866 "type" : "bool",
1867 "value" : true
1868 }
1869 }
1870 }
1871 }
1872 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001873 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001874 "filename" : "include/control/acl.p4",
1875 "line" : 40,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001876 "column" : 34,
1877 "source_fragment" : "= true; ..."
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001878 }
1879 }
1880 ]
1881 },
1882 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001883 "name" : "FabricIngress.acl.clone_to_cpu",
1884 "id" : 21,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001885 "runtime_data" : [],
1886 "primitives" : [
1887 {
1888 "op" : "assign",
1889 "parameters" : [
1890 {
1891 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001892 "value" : ["scalars", "fabric_metadata_t._clone_to_cpu13"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001893 },
1894 {
1895 "type" : "expression",
1896 "value" : {
1897 "type" : "expression",
1898 "value" : {
1899 "op" : "b2d",
1900 "left" : null,
1901 "right" : {
1902 "type" : "bool",
1903 "value" : true
1904 }
1905 }
1906 }
1907 }
1908 ],
1909 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001910 "filename" : "include/control/acl.p4",
1911 "line" : 46,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001912 "column" : 37,
1913 "source_fragment" : "= true; ..."
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001914 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001915 }
1916 ]
1917 },
1918 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001919 "name" : "FabricIngress.acl.drop",
1920 "id" : 22,
Yi Tseng47eac892018-07-11 02:17:04 +08001921 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001922 "primitives" : [
1923 {
Yi Tseng47eac892018-07-11 02:17:04 +08001924 "op" : "drop",
1925 "parameters" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001926 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001927 "filename" : "include/control/acl.p4",
1928 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001929 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001930 "source_fragment" : "mark_to_drop()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001931 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001932 },
1933 {
1934 "op" : "assign",
1935 "parameters" : [
1936 {
1937 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001938 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001939 },
1940 {
1941 "type" : "expression",
1942 "value" : {
1943 "type" : "expression",
1944 "value" : {
1945 "op" : "b2d",
1946 "left" : null,
1947 "right" : {
1948 "type" : "bool",
1949 "value" : true
1950 }
1951 }
1952 }
1953 }
1954 ],
1955 "source_info" : {
1956 "filename" : "include/control/acl.p4",
1957 "line" : 52,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001958 "column" : 34,
1959 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001960 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001961 }
1962 ]
1963 },
1964 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001965 "name" : "FabricIngress.acl.nop_acl",
1966 "id" : 23,
Charles Chancf696e52018-08-16 16:25:13 -07001967 "runtime_data" : [],
1968 "primitives" : []
1969 },
1970 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001971 "name" : "FabricIngress.next.set_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001972 "id" : 24,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001973 "runtime_data" : [
1974 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001975 "name" : "vlan_id",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001976 "bitwidth" : 12
1977 }
1978 ],
1979 "primitives" : [
1980 {
1981 "op" : "assign",
1982 "parameters" : [
1983 {
1984 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001985 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001986 },
1987 {
1988 "type" : "runtime_data",
1989 "value" : 0
1990 }
1991 ],
1992 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001993 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001994 "line" : 70,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001995 "column" : 32,
1996 "source_fragment" : "= vlan_id; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001997 }
1998 }
1999 ]
2000 },
2001 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002002 "name" : "FabricIngress.next.output_xconnect",
2003 "id" : 25,
2004 "runtime_data" : [
2005 {
2006 "name" : "port_num",
2007 "bitwidth" : 9
2008 }
2009 ],
2010 "primitives" : [
2011 {
2012 "op" : "assign",
2013 "parameters" : [
2014 {
2015 "type" : "field",
2016 "value" : ["standard_metadata", "egress_spec"]
2017 },
2018 {
2019 "type" : "runtime_data",
2020 "value" : 0
2021 }
2022 ],
2023 "source_info" : {
2024 "filename" : "include/control/next.p4",
2025 "line" : 31,
2026 "column" : 5,
2027 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2028 }
2029 }
2030 ]
2031 },
2032 {
2033 "name" : "FabricIngress.next.set_next_id_xconnect",
2034 "id" : 26,
2035 "runtime_data" : [
2036 {
2037 "name" : "next_id",
2038 "bitwidth" : 32
2039 }
2040 ],
2041 "primitives" : [
2042 {
2043 "op" : "assign",
2044 "parameters" : [
2045 {
2046 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002047 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002048 },
2049 {
2050 "type" : "runtime_data",
2051 "value" : 0
2052 }
2053 ],
2054 "source_info" : {
2055 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002056 "line" : 100,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002057 "column" : 32,
2058 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002059 }
2060 }
2061 ]
2062 },
2063 {
2064 "name" : "FabricIngress.next.output_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002065 "id" : 27,
Yi Tseng47eac892018-07-11 02:17:04 +08002066 "runtime_data" : [
2067 {
2068 "name" : "port_num",
2069 "bitwidth" : 9
2070 }
2071 ],
2072 "primitives" : [
2073 {
2074 "op" : "assign",
2075 "parameters" : [
2076 {
2077 "type" : "field",
2078 "value" : ["standard_metadata", "egress_spec"]
2079 },
2080 {
2081 "type" : "runtime_data",
2082 "value" : 0
2083 }
2084 ],
2085 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002086 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002087 "line" : 31,
2088 "column" : 5,
2089 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng47eac892018-07-11 02:17:04 +08002090 }
2091 }
2092 ]
2093 },
2094 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002095 "name" : "FabricIngress.next.routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002096 "id" : 28,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002097 "runtime_data" : [
2098 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002099 "name" : "port_num",
2100 "bitwidth" : 9
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002101 },
2102 {
2103 "name" : "smac",
2104 "bitwidth" : 48
2105 },
2106 {
2107 "name" : "dmac",
2108 "bitwidth" : 48
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002109 }
2110 ],
2111 "primitives" : [
2112 {
2113 "op" : "assign",
2114 "parameters" : [
2115 {
2116 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002117 "value" : ["ethernet", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002118 },
2119 {
2120 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002121 "value" : 1
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002122 }
2123 ],
2124 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002125 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002126 "line" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002127 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002128 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2129 }
2130 },
2131 {
2132 "op" : "assign",
2133 "parameters" : [
2134 {
2135 "type" : "field",
2136 "value" : ["ethernet", "dst_addr"]
2137 },
2138 {
2139 "type" : "runtime_data",
2140 "value" : 2
2141 }
2142 ],
2143 "source_info" : {
2144 "filename" : "include/control/next.p4",
2145 "line" : 41,
2146 "column" : 8,
2147 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002148 }
2149 },
2150 {
2151 "op" : "assign",
2152 "parameters" : [
2153 {
2154 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002155 "value" : ["standard_metadata", "egress_spec"]
2156 },
2157 {
2158 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002159 "value" : 0
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002160 }
2161 ],
2162 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002163 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002164 "line" : 31,
2165 "column" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002166 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2167 }
2168 }
2169 ]
2170 },
2171 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002172 "name" : "FabricIngress.next.mpls_routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002173 "id" : 29,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002174 "runtime_data" : [
2175 {
2176 "name" : "port_num",
2177 "bitwidth" : 9
2178 },
2179 {
2180 "name" : "smac",
2181 "bitwidth" : 48
2182 },
2183 {
2184 "name" : "dmac",
2185 "bitwidth" : 48
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002186 },
2187 {
2188 "name" : "label",
2189 "bitwidth" : 20
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002190 }
2191 ],
2192 "primitives" : [
2193 {
2194 "op" : "assign",
2195 "parameters" : [
2196 {
2197 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002198 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002199 },
2200 {
2201 "type" : "runtime_data",
2202 "value" : 3
2203 }
2204 ],
2205 "source_info" : {
2206 "filename" : "include/control/next.p4",
2207 "line" : 46,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002208 "column" : 35,
2209 "source_fragment" : "= label; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002210 }
2211 },
2212 {
2213 "op" : "assign",
2214 "parameters" : [
2215 {
2216 "type" : "field",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002217 "value" : ["ethernet", "src_addr"]
2218 },
2219 {
2220 "type" : "runtime_data",
2221 "value" : 1
2222 }
2223 ],
2224 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002225 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002226 "line" : 36,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002227 "column" : 8,
2228 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2229 }
2230 },
2231 {
2232 "op" : "assign",
2233 "parameters" : [
2234 {
2235 "type" : "field",
2236 "value" : ["ethernet", "dst_addr"]
2237 },
2238 {
2239 "type" : "runtime_data",
2240 "value" : 2
2241 }
2242 ],
2243 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002244 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002245 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002246 "column" : 8,
2247 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2248 }
2249 },
2250 {
2251 "op" : "assign",
2252 "parameters" : [
2253 {
2254 "type" : "field",
2255 "value" : ["standard_metadata", "egress_spec"]
2256 },
2257 {
2258 "type" : "runtime_data",
2259 "value" : 0
2260 }
2261 ],
2262 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002263 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002264 "line" : 31,
2265 "column" : 5,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002266 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2267 }
2268 }
2269 ]
2270 },
2271 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002272 "name" : "FabricIngress.next.set_mcast_group_id",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002273 "id" : 30,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002274 "runtime_data" : [
2275 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002276 "name" : "group_id",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002277 "bitwidth" : 16
2278 }
2279 ],
2280 "primitives" : [
2281 {
2282 "op" : "assign",
2283 "parameters" : [
2284 {
2285 "type" : "field",
2286 "value" : ["standard_metadata", "mcast_grp"]
2287 },
2288 {
2289 "type" : "runtime_data",
2290 "value" : 0
2291 }
2292 ],
2293 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002294 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002295 "line" : 213,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002296 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002297 "source_fragment" : "standard_metadata.mcast_grp = group_id"
Esin Karaman971fb7f2017-12-28 13:44:52 +00002298 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002299 },
2300 {
2301 "op" : "assign",
2302 "parameters" : [
2303 {
2304 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002305 "value" : ["scalars", "fabric_metadata_t._is_multicast11"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002306 },
2307 {
2308 "type" : "expression",
2309 "value" : {
2310 "type" : "expression",
2311 "value" : {
2312 "op" : "b2d",
2313 "left" : null,
2314 "right" : {
2315 "type" : "bool",
2316 "value" : true
2317 }
2318 }
2319 }
2320 }
2321 ],
2322 "source_info" : {
2323 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002324 "line" : 214,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002325 "column" : 37,
2326 "source_fragment" : "= true; ..."
Carmelo Casconea5400af2018-07-17 22:11:54 +02002327 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002328 }
2329 ]
2330 },
2331 {
2332 "name" : "act",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002333 "id" : 31,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002334 "runtime_data" : [],
2335 "primitives" : [
2336 {
2337 "op" : "assign",
2338 "parameters" : [
2339 {
2340 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002341 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002342 },
2343 {
2344 "type" : "expression",
2345 "value" : {
2346 "type" : "expression",
2347 "value" : {
2348 "op" : "b2d",
2349 "left" : null,
2350 "right" : {
2351 "type" : "bool",
2352 "value" : true
2353 }
2354 }
2355 }
2356 }
2357 ],
2358 "source_info" : {
2359 "filename" : "include/spgw.p4",
2360 "line" : 30,
2361 "column" : 32,
2362 "source_fragment" : "return"
2363 }
2364 }
2365 ]
2366 },
2367 {
2368 "name" : "act_0",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002369 "id" : 32,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002370 "runtime_data" : [],
2371 "primitives" : [
2372 {
2373 "op" : "remove_header",
2374 "parameters" : [
2375 {
2376 "type" : "header",
2377 "value" : "gtpu_ipv4"
2378 }
2379 ],
2380 "source_info" : {
2381 "filename" : "fabric.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002382 "line" : 58,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002383 "column" : 50,
2384 "source_fragment" : "hdr.gtpu_ipv4"
2385 }
2386 },
2387 {
2388 "op" : "remove_header",
2389 "parameters" : [
2390 {
2391 "type" : "header",
2392 "value" : "gtpu_udp"
2393 }
2394 ],
2395 "source_info" : {
2396 "filename" : "fabric.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002397 "line" : 58,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002398 "column" : 65,
2399 "source_fragment" : "hdr.gtpu_udp"
2400 }
2401 },
2402 {
2403 "op" : "assign",
2404 "parameters" : [
2405 {
2406 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002407 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002408 },
2409 {
2410 "type" : "expression",
2411 "value" : {
2412 "type" : "expression",
2413 "value" : {
2414 "op" : "b2d",
2415 "left" : null,
2416 "right" : {
2417 "type" : "bool",
2418 "value" : false
2419 }
2420 }
2421 }
2422 }
2423 ]
2424 }
2425 ]
2426 },
2427 {
2428 "name" : "act_1",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002429 "id" : 33,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002430 "runtime_data" : [],
2431 "primitives" : [
2432 {
2433 "op" : "assign_header",
2434 "parameters" : [
2435 {
2436 "type" : "header",
2437 "value" : "udp"
2438 },
2439 {
2440 "type" : "header",
2441 "value" : "inner_udp"
2442 }
2443 ],
2444 "source_info" : {
2445 "filename" : "include/spgw.p4",
2446 "line" : 35,
2447 "column" : 16,
2448 "source_fragment" : "= inner_udp; ..."
2449 }
2450 }
2451 ]
2452 },
2453 {
2454 "name" : "act_2",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002455 "id" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002456 "runtime_data" : [],
2457 "primitives" : [
2458 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002459 "op" : "remove_header",
2460 "parameters" : [
2461 {
2462 "type" : "header",
2463 "value" : "udp"
2464 }
2465 ],
2466 "source_info" : {
2467 "filename" : "include/spgw.p4",
2468 "line" : 37,
2469 "column" : 12,
2470 "source_fragment" : "udp.setInvalid()"
2471 }
2472 }
2473 ]
2474 },
2475 {
2476 "name" : "act_3",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002477 "id" : 35,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002478 "runtime_data" : [],
2479 "primitives" : [
2480 {
2481 "op" : "assign_header",
2482 "parameters" : [
2483 {
2484 "type" : "header",
2485 "value" : "gtpu_ipv4"
2486 },
2487 {
2488 "type" : "header",
2489 "value" : "ipv4"
2490 }
2491 ],
2492 "source_info" : {
2493 "filename" : "include/spgw.p4",
2494 "line" : 31,
2495 "column" : 18,
2496 "source_fragment" : "= ipv4; ..."
2497 }
2498 },
2499 {
2500 "op" : "assign_header",
2501 "parameters" : [
2502 {
2503 "type" : "header",
2504 "value" : "ipv4"
2505 },
2506 {
2507 "type" : "header",
2508 "value" : "inner_ipv4"
2509 }
2510 ],
2511 "source_info" : {
2512 "filename" : "include/spgw.p4",
2513 "line" : 32,
2514 "column" : 13,
2515 "source_fragment" : "= inner_ipv4; ..."
2516 }
2517 },
2518 {
2519 "op" : "assign_header",
2520 "parameters" : [
2521 {
2522 "type" : "header",
2523 "value" : "gtpu_udp"
2524 },
2525 {
2526 "type" : "header",
2527 "value" : "udp"
2528 }
2529 ],
2530 "source_info" : {
2531 "filename" : "include/spgw.p4",
2532 "line" : 33,
2533 "column" : 17,
2534 "source_fragment" : "= udp; ..."
2535 }
2536 }
2537 ]
2538 },
2539 {
2540 "name" : "act_4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002541 "id" : 36,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002542 "runtime_data" : [],
2543 "primitives" : [
2544 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002545 "op" : "assign",
2546 "parameters" : [
2547 {
2548 "type" : "field",
2549 "value" : ["standard_metadata", "egress_spec"]
2550 },
2551 {
2552 "type" : "field",
2553 "value" : ["packet_out", "egress_port"]
2554 }
2555 ],
2556 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002557 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002558 "line" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002559 "column" : 12,
2560 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2561 }
2562 },
2563 {
2564 "op" : "remove_header",
2565 "parameters" : [
2566 {
2567 "type" : "header",
2568 "value" : "packet_out"
2569 }
2570 ],
2571 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002572 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002573 "line" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002574 "column" : 12,
2575 "source_fragment" : "hdr.packet_out.setInvalid()"
2576 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002577 },
2578 {
2579 "op" : "assign",
2580 "parameters" : [
2581 {
2582 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002583 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out12"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002584 },
2585 {
2586 "type" : "expression",
2587 "value" : {
2588 "type" : "expression",
2589 "value" : {
2590 "op" : "b2d",
2591 "left" : null,
2592 "right" : {
2593 "type" : "bool",
2594 "value" : true
2595 }
2596 }
2597 }
2598 }
2599 ],
2600 "source_info" : {
2601 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002602 "line" : 27,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002603 "column" : 53,
2604 "source_fragment" : "= true; ..."
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002605 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002606 }
2607 ]
2608 },
2609 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002610 "name" : "act_5",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002611 "id" : 37,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002612 "runtime_data" : [],
2613 "primitives" : [
2614 {
2615 "op" : "assign",
2616 "parameters" : [
2617 {
2618 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002619 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002620 },
2621 {
2622 "type" : "field",
2623 "value" : ["vlan_tag", "eth_type"]
2624 }
2625 ],
2626 "source_info" : {
2627 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002628 "line" : 105,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002629 "column" : 37,
2630 "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002631 }
2632 },
2633 {
2634 "op" : "assign",
2635 "parameters" : [
2636 {
2637 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002638 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002639 },
2640 {
2641 "type" : "field",
2642 "value" : ["vlan_tag", "vlan_id"]
2643 }
2644 ],
2645 "source_info" : {
2646 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002647 "line" : 106,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002648 "column" : 36,
2649 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002650 }
2651 },
2652 {
2653 "op" : "assign",
2654 "parameters" : [
2655 {
2656 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002657 "value" : ["scalars", "fabric_metadata_t._vlan_pri3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002658 },
2659 {
2660 "type" : "field",
2661 "value" : ["vlan_tag", "pri"]
2662 }
2663 ],
2664 "source_info" : {
2665 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002666 "line" : 107,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002667 "column" : 37,
2668 "source_fragment" : "= hdr.vlan_tag.pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002669 }
2670 },
2671 {
2672 "op" : "assign",
2673 "parameters" : [
2674 {
2675 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002676 "value" : ["scalars", "fabric_metadata_t._vlan_cfi4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002677 },
2678 {
2679 "type" : "field",
2680 "value" : ["vlan_tag", "cfi"]
2681 }
2682 ],
2683 "source_info" : {
2684 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002685 "line" : 108,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002686 "column" : 37,
2687 "source_fragment" : "= hdr.vlan_tag.cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002688 }
2689 }
2690 ]
2691 },
2692 {
2693 "name" : "act_6",
2694 "id" : 38,
2695 "runtime_data" : [],
2696 "primitives" : [
2697 {
2698 "op" : "assign",
2699 "parameters" : [
2700 {
2701 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002702 "value" : ["scalars", "fabric_metadata_t._mpls_ttl6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002703 },
2704 {
2705 "type" : "hexstr",
2706 "value" : "0x41"
2707 }
2708 ],
2709 "source_info" : {
2710 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002711 "line" : 115,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002712 "column" : 37,
2713 "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002714 }
2715 }
2716 ]
2717 },
2718 {
2719 "name" : "act_7",
2720 "id" : 39,
2721 "runtime_data" : [],
2722 "primitives" : [
2723 {
2724 "op" : "assign",
2725 "parameters" : [
2726 {
2727 "type" : "field",
2728 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002729 },
2730 {
2731 "type" : "expression",
2732 "value" : {
2733 "type" : "expression",
2734 "value" : {
2735 "op" : "b2d",
2736 "left" : null,
2737 "right" : {
2738 "type" : "bool",
2739 "value" : true
2740 }
2741 }
2742 }
2743 }
2744 ]
2745 }
2746 ]
2747 },
2748 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002749 "name" : "act_8",
2750 "id" : 40,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002751 "runtime_data" : [],
2752 "primitives" : [
2753 {
2754 "op" : "assign",
2755 "parameters" : [
2756 {
2757 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002758 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002759 },
2760 {
2761 "type" : "expression",
2762 "value" : {
2763 "type" : "expression",
2764 "value" : {
2765 "op" : "b2d",
2766 "left" : null,
2767 "right" : {
2768 "type" : "bool",
2769 "value" : false
2770 }
2771 }
2772 }
2773 }
2774 ]
2775 }
2776 ]
2777 },
2778 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002779 "name" : "act_9",
2780 "id" : 41,
2781 "runtime_data" : [],
2782 "primitives" : [
2783 {
2784 "op" : "drop",
2785 "parameters" : [],
2786 "source_info" : {
2787 "filename" : "include/spgw.p4",
2788 "line" : 148,
2789 "column" : 16,
2790 "source_fragment" : "mark_to_drop()"
2791 }
2792 }
2793 ]
2794 },
2795 {
2796 "name" : "act_10",
2797 "id" : 42,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002798 "runtime_data" : [],
2799 "primitives" : [
2800 {
2801 "op" : "assign",
2802 "parameters" : [
2803 {
2804 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002805 "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002806 },
2807 {
2808 "type" : "hexstr",
2809 "value" : "0x01"
2810 }
2811 ],
2812 "source_info" : {
2813 "filename" : "include/control/../define.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002814 "line" : 137,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002815 "column" : 36,
2816 "source_fragment" : "2w1; ..."
2817 }
2818 }
2819 ]
2820 },
2821 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002822 "name" : "act_11",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002823 "id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002824 "runtime_data" : [],
2825 "primitives" : [
2826 {
2827 "op" : "assign",
2828 "parameters" : [
2829 {
2830 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002831 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002832 },
2833 {
2834 "type" : "expression",
2835 "value" : {
2836 "type" : "expression",
2837 "value" : {
2838 "op" : "b2d",
2839 "left" : null,
2840 "right" : {
2841 "type" : "bool",
2842 "value" : true
2843 }
2844 }
2845 }
2846 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002847 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002848 }
2849 ]
2850 },
2851 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002852 "name" : "act_12",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002853 "id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002854 "runtime_data" : [],
2855 "primitives" : [
2856 {
2857 "op" : "assign",
2858 "parameters" : [
2859 {
2860 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002861 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002862 },
2863 {
2864 "type" : "expression",
2865 "value" : {
2866 "type" : "expression",
2867 "value" : {
2868 "op" : "b2d",
2869 "left" : null,
2870 "right" : {
2871 "type" : "bool",
2872 "value" : false
2873 }
2874 }
2875 }
2876 }
2877 ]
2878 }
2879 ]
2880 },
2881 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002882 "name" : "act_13",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002883 "id" : 45,
Yi Tseng27b9bc02018-04-12 14:52:40 +08002884 "runtime_data" : [],
2885 "primitives" : [
2886 {
2887 "op" : "assign",
2888 "parameters" : [
2889 {
2890 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002891 "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08002892 },
2893 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002894 "type" : "hexstr",
2895 "value" : "0x02"
Yi Tseng27b9bc02018-04-12 14:52:40 +08002896 }
2897 ],
2898 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002899 "filename" : "include/control/../define.p4",
2900 "line" : 138,
2901 "column" : 38,
2902 "source_fragment" : "2w2; ..."
Yi Tseng27b9bc02018-04-12 14:52:40 +08002903 }
2904 }
2905 ]
2906 },
2907 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002908 "name" : "act_14",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002909 "id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002910 "runtime_data" : [],
2911 "primitives" : [
2912 {
2913 "op" : "assign",
2914 "parameters" : [
2915 {
2916 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002917 "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002918 },
2919 {
2920 "type" : "hexstr",
2921 "value" : "0x00"
2922 }
2923 ],
2924 "source_info" : {
2925 "filename" : "include/control/../define.p4",
2926 "line" : 136,
2927 "column" : 37,
2928 "source_fragment" : "2w0; ..."
2929 }
2930 },
2931 {
2932 "op" : "assign",
2933 "parameters" : [
2934 {
2935 "type" : "field",
2936 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002937 },
2938 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002939 "type" : "expression",
2940 "value" : {
2941 "type" : "expression",
2942 "value" : {
2943 "op" : "b2d",
2944 "left" : null,
2945 "right" : {
2946 "type" : "bool",
2947 "value" : true
2948 }
2949 }
2950 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002951 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002952 ],
2953 "source_info" : {
2954 "filename" : "include/spgw.p4",
2955 "line" : 157,
2956 "column" : 12,
2957 "source_fragment" : "return"
2958 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002959 }
2960 ]
2961 },
2962 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002963 "name" : "act_15",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002964 "id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002965 "runtime_data" : [],
2966 "primitives" : [
2967 {
2968 "op" : "assign",
2969 "parameters" : [
2970 {
2971 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002972 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002973 },
2974 {
2975 "type" : "expression",
2976 "value" : {
2977 "type" : "expression",
2978 "value" : {
2979 "op" : "b2d",
2980 "left" : null,
2981 "right" : {
2982 "type" : "bool",
2983 "value" : false
2984 }
2985 }
2986 }
2987 }
2988 ]
2989 }
2990 ]
2991 },
2992 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02002993 "name" : "act_16",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002994 "id" : 48,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002995 "runtime_data" : [],
2996 "primitives" : [
2997 {
2998 "op" : "assign",
2999 "parameters" : [
3000 {
3001 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003002 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len18"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003003 },
3004 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003005 "type" : "field",
3006 "value" : ["ipv4", "total_len"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003007 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003008 ],
3009 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003010 "filename" : "include/spgw.p4",
3011 "line" : 174,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003012 "column" : 34,
3013 "source_fragment" : "= ipv4.total_len; ..."
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003014 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003015 }
3016 ]
3017 },
3018 {
3019 "name" : "act_17",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003020 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003021 "runtime_data" : [],
3022 "primitives" : [
3023 {
3024 "op" : "assign",
3025 "parameters" : [
3026 {
3027 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003028 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003029 },
3030 {
3031 "type" : "expression",
3032 "value" : {
3033 "type" : "expression",
3034 "value" : {
3035 "op" : "&",
3036 "left" : {
3037 "type" : "field",
3038 "value" : ["standard_metadata", "egress_spec"]
3039 },
3040 "right" : {
3041 "type" : "hexstr",
3042 "value" : "0xffffffff"
3043 }
3044 }
3045 }
3046 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003047 ],
3048 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003049 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003050 "line" : 31,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003051 "column" : 38,
3052 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3053 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003054 },
3055 {
3056 "op" : "count",
3057 "parameters" : [
3058 {
3059 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003060 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003061 },
3062 {
3063 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003064 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003065 }
3066 ],
3067 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003068 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003069 "line" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003070 "column" : 12,
3071 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3072 }
3073 }
3074 ]
3075 },
3076 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003077 "name" : "act_18",
3078 "id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003079 "runtime_data" : [],
3080 "primitives" : [
3081 {
3082 "op" : "assign",
3083 "parameters" : [
3084 {
3085 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003086 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003087 },
3088 {
3089 "type" : "expression",
3090 "value" : {
3091 "type" : "expression",
3092 "value" : {
3093 "op" : "&",
3094 "left" : {
3095 "type" : "field",
3096 "value" : ["standard_metadata", "ingress_port"]
3097 },
3098 "right" : {
3099 "type" : "hexstr",
3100 "value" : "0xffffffff"
3101 }
3102 }
3103 }
3104 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003105 ],
3106 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003107 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003108 "line" : 34,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003109 "column" : 39,
3110 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3111 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003112 },
3113 {
3114 "op" : "count",
3115 "parameters" : [
3116 {
3117 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003118 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003119 },
3120 {
3121 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003122 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003123 }
3124 ],
3125 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003126 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003127 "line" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003128 "column" : 12,
3129 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3130 }
3131 }
3132 ]
3133 },
3134 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003135 "name" : "nop",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003136 "id" : 51,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003137 "runtime_data" : [],
Charles Chancd03f072018-08-31 17:46:37 -07003138 "primitives" : []
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003139 },
3140 {
Charles Chancd03f072018-08-31 17:46:37 -07003141 "name" : "FabricEgress.spgw_egress.gtpu_encap",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003142 "id" : 52,
Charles Chancd03f072018-08-31 17:46:37 -07003143 "runtime_data" : [],
3144 "primitives" : [
3145 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003146 "op" : "add_header",
3147 "parameters" : [
3148 {
3149 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003150 "value" : "gtpu_ipv4"
3151 }
3152 ],
3153 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003154 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003155 "line" : 190,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003156 "column" : 8,
3157 "source_fragment" : "gtpu_ipv4.setValid()"
3158 }
3159 },
3160 {
3161 "op" : "assign",
3162 "parameters" : [
3163 {
3164 "type" : "field",
3165 "value" : ["gtpu_ipv4", "version"]
3166 },
3167 {
3168 "type" : "hexstr",
3169 "value" : "0x04"
3170 }
3171 ],
3172 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003173 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003174 "line" : 191,
Yi Tseng3d3956d2018-01-31 17:28:05 -08003175 "column" : 8,
3176 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003177 }
3178 },
3179 {
3180 "op" : "assign",
3181 "parameters" : [
3182 {
3183 "type" : "field",
3184 "value" : ["gtpu_ipv4", "ihl"]
3185 },
3186 {
3187 "type" : "hexstr",
3188 "value" : "0x05"
3189 }
3190 ],
3191 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003192 "filename" : "include/control/../define.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003193 "line" : 119,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003194 "column" : 28,
3195 "source_fragment" : "5; ..."
3196 }
3197 },
3198 {
3199 "op" : "assign",
3200 "parameters" : [
3201 {
3202 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003203 "value" : ["gtpu_ipv4", "dscp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003204 },
3205 {
3206 "type" : "hexstr",
3207 "value" : "0x00"
3208 }
3209 ],
3210 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003211 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003212 "line" : 193,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003213 "column" : 8,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003214 "source_fragment" : "gtpu_ipv4.dscp = 0"
3215 }
3216 },
3217 {
3218 "op" : "assign",
3219 "parameters" : [
3220 {
3221 "type" : "field",
3222 "value" : ["gtpu_ipv4", "ecn"]
3223 },
3224 {
3225 "type" : "hexstr",
3226 "value" : "0x00"
3227 }
3228 ],
3229 "source_info" : {
3230 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003231 "line" : 194,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003232 "column" : 8,
3233 "source_fragment" : "gtpu_ipv4.ecn = 0"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003234 }
3235 },
3236 {
3237 "op" : "assign",
3238 "parameters" : [
3239 {
3240 "type" : "field",
3241 "value" : ["gtpu_ipv4", "total_len"]
3242 },
3243 {
3244 "type" : "expression",
3245 "value" : {
3246 "type" : "expression",
3247 "value" : {
3248 "op" : "&",
3249 "left" : {
3250 "type" : "expression",
3251 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003252 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003253 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003254 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003255 "value" : ["ipv4", "total_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003256 },
3257 "right" : {
3258 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003259 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003260 }
3261 }
3262 },
3263 "right" : {
3264 "type" : "hexstr",
3265 "value" : "0xffff"
3266 }
3267 }
3268 }
3269 }
3270 ],
3271 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003272 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003273 "line" : 195,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003274 "column" : 8,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003275 "source_fragment" : "gtpu_ipv4.total_len = ipv4.total_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003276 }
3277 },
3278 {
3279 "op" : "assign",
3280 "parameters" : [
3281 {
3282 "type" : "field",
3283 "value" : ["gtpu_ipv4", "identification"]
3284 },
3285 {
3286 "type" : "hexstr",
3287 "value" : "0x1513"
3288 }
3289 ],
3290 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003291 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003292 "line" : 197,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003293 "column" : 8,
3294 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
3295 }
3296 },
3297 {
3298 "op" : "assign",
3299 "parameters" : [
3300 {
3301 "type" : "field",
3302 "value" : ["gtpu_ipv4", "flags"]
3303 },
3304 {
3305 "type" : "hexstr",
3306 "value" : "0x00"
3307 }
3308 ],
3309 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003310 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003311 "line" : 198,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003312 "column" : 8,
3313 "source_fragment" : "gtpu_ipv4.flags = 0"
3314 }
3315 },
3316 {
3317 "op" : "assign",
3318 "parameters" : [
3319 {
3320 "type" : "field",
3321 "value" : ["gtpu_ipv4", "frag_offset"]
3322 },
3323 {
3324 "type" : "hexstr",
3325 "value" : "0x0000"
3326 }
3327 ],
3328 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003329 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003330 "line" : 199,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003331 "column" : 8,
3332 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
3333 }
3334 },
3335 {
3336 "op" : "assign",
3337 "parameters" : [
3338 {
3339 "type" : "field",
3340 "value" : ["gtpu_ipv4", "ttl"]
3341 },
3342 {
3343 "type" : "hexstr",
3344 "value" : "0x40"
3345 }
3346 ],
3347 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003348 "filename" : "include/control/../define.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003349 "line" : 132,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003350 "column" : 32,
3351 "source_fragment" : "64; ..."
3352 }
3353 },
3354 {
3355 "op" : "assign",
3356 "parameters" : [
3357 {
3358 "type" : "field",
3359 "value" : ["gtpu_ipv4", "protocol"]
3360 },
3361 {
3362 "type" : "hexstr",
3363 "value" : "0x11"
3364 }
3365 ],
3366 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003367 "filename" : "include/control/../define.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003368 "line" : 116,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003369 "column" : 25,
3370 "source_fragment" : "17; ..."
3371 }
3372 },
3373 {
3374 "op" : "assign",
3375 "parameters" : [
3376 {
3377 "type" : "field",
3378 "value" : ["gtpu_ipv4", "dst_addr"]
3379 },
3380 {
3381 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003382 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr20"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003383 }
3384 ],
3385 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003386 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003387 "line" : 202,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003388 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003389 "source_fragment" : "gtpu_ipv4.dst_addr = fabric_meta.spgw.s1u_enb_addr; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003390 }
3391 },
3392 {
3393 "op" : "assign",
3394 "parameters" : [
3395 {
3396 "type" : "field",
3397 "value" : ["gtpu_ipv4", "src_addr"]
3398 },
3399 {
3400 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003401 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr21"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003402 }
3403 ],
3404 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003405 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003406 "line" : 203,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003407 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003408 "source_fragment" : "gtpu_ipv4.src_addr = fabric_meta.spgw.s1u_sgw_addr; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003409 }
3410 },
3411 {
3412 "op" : "assign",
3413 "parameters" : [
3414 {
3415 "type" : "field",
3416 "value" : ["gtpu_ipv4", "hdr_checksum"]
3417 },
3418 {
3419 "type" : "hexstr",
3420 "value" : "0x0000"
3421 }
3422 ],
3423 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003424 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003425 "line" : 204,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003426 "column" : 8,
3427 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
3428 }
3429 },
3430 {
3431 "op" : "add_header",
3432 "parameters" : [
3433 {
3434 "type" : "header",
3435 "value" : "gtpu_udp"
3436 }
3437 ],
3438 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003439 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003440 "line" : 206,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003441 "column" : 8,
3442 "source_fragment" : "gtpu_udp.setValid()"
3443 }
3444 },
3445 {
3446 "op" : "assign",
3447 "parameters" : [
3448 {
3449 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003450 "value" : ["gtpu_udp", "sport"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003451 },
3452 {
3453 "type" : "hexstr",
3454 "value" : "0x0868"
3455 }
3456 ],
3457 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003458 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003459 "line" : 207,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003460 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003461 "source_fragment" : "gtpu_udp.sport = 2152"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003462 }
3463 },
3464 {
3465 "op" : "assign",
3466 "parameters" : [
3467 {
3468 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003469 "value" : ["gtpu_udp", "dport"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003470 },
3471 {
3472 "type" : "hexstr",
3473 "value" : "0x0868"
3474 }
3475 ],
3476 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003477 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003478 "line" : 208,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003479 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003480 "source_fragment" : "gtpu_udp.dport = 2152"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003481 }
3482 },
3483 {
3484 "op" : "assign",
3485 "parameters" : [
3486 {
3487 "type" : "field",
3488 "value" : ["gtpu_udp", "len"]
3489 },
3490 {
3491 "type" : "expression",
3492 "value" : {
3493 "type" : "expression",
3494 "value" : {
3495 "op" : "&",
3496 "left" : {
3497 "type" : "expression",
3498 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003499 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003500 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003501 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003502 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len18"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003503 },
3504 "right" : {
3505 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003506 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003507 }
3508 }
3509 },
3510 "right" : {
3511 "type" : "hexstr",
3512 "value" : "0xffff"
3513 }
3514 }
3515 }
3516 }
3517 ],
3518 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003519 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003520 "line" : 209,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003521 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003522 "source_fragment" : "gtpu_udp.len = fabric_meta.spgw.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003523 }
3524 },
3525 {
3526 "op" : "assign",
3527 "parameters" : [
3528 {
3529 "type" : "field",
3530 "value" : ["gtpu_udp", "checksum"]
3531 },
3532 {
3533 "type" : "hexstr",
3534 "value" : "0x0000"
3535 }
3536 ],
3537 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003538 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003539 "line" : 211,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003540 "column" : 8,
3541 "source_fragment" : "gtpu_udp.checksum = 0"
3542 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08003543 },
3544 {
3545 "op" : "add_header",
3546 "parameters" : [
3547 {
3548 "type" : "header",
3549 "value" : "gtpu"
3550 }
3551 ],
3552 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003553 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003554 "line" : 213,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003555 "column" : 8,
3556 "source_fragment" : "gtpu.setValid()"
3557 }
3558 },
3559 {
3560 "op" : "assign",
3561 "parameters" : [
3562 {
3563 "type" : "field",
3564 "value" : ["gtpu", "version"]
3565 },
3566 {
3567 "type" : "hexstr",
3568 "value" : "0x01"
3569 }
3570 ],
3571 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003572 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003573 "line" : 214,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003574 "column" : 8,
3575 "source_fragment" : "gtpu.version = 0x01"
3576 }
3577 },
3578 {
3579 "op" : "assign",
3580 "parameters" : [
3581 {
3582 "type" : "field",
3583 "value" : ["gtpu", "pt"]
3584 },
3585 {
3586 "type" : "hexstr",
3587 "value" : "0x01"
3588 }
3589 ],
3590 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003591 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003592 "line" : 215,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003593 "column" : 8,
3594 "source_fragment" : "gtpu.pt = 0x01"
3595 }
3596 },
3597 {
3598 "op" : "assign",
3599 "parameters" : [
3600 {
3601 "type" : "field",
3602 "value" : ["gtpu", "spare"]
3603 },
3604 {
3605 "type" : "hexstr",
3606 "value" : "0x00"
3607 }
3608 ],
3609 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003610 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003611 "line" : 216,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003612 "column" : 8,
3613 "source_fragment" : "gtpu.spare = 0"
3614 }
3615 },
3616 {
3617 "op" : "assign",
3618 "parameters" : [
3619 {
3620 "type" : "field",
3621 "value" : ["gtpu", "ex_flag"]
3622 },
3623 {
3624 "type" : "hexstr",
3625 "value" : "0x00"
3626 }
3627 ],
3628 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003629 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003630 "line" : 217,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003631 "column" : 8,
3632 "source_fragment" : "gtpu.ex_flag = 0"
3633 }
3634 },
3635 {
3636 "op" : "assign",
3637 "parameters" : [
3638 {
3639 "type" : "field",
3640 "value" : ["gtpu", "seq_flag"]
3641 },
3642 {
3643 "type" : "hexstr",
3644 "value" : "0x00"
3645 }
3646 ],
3647 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003648 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003649 "line" : 218,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003650 "column" : 8,
3651 "source_fragment" : "gtpu.seq_flag = 0"
3652 }
3653 },
3654 {
3655 "op" : "assign",
3656 "parameters" : [
3657 {
3658 "type" : "field",
3659 "value" : ["gtpu", "npdu_flag"]
3660 },
3661 {
3662 "type" : "hexstr",
3663 "value" : "0x00"
3664 }
3665 ],
3666 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003667 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003668 "line" : 219,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003669 "column" : 8,
3670 "source_fragment" : "gtpu.npdu_flag = 0"
3671 }
3672 },
3673 {
3674 "op" : "assign",
3675 "parameters" : [
3676 {
3677 "type" : "field",
3678 "value" : ["gtpu", "msgtype"]
3679 },
3680 {
3681 "type" : "hexstr",
3682 "value" : "0xff"
3683 }
3684 ],
3685 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003686 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003687 "line" : 220,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003688 "column" : 8,
3689 "source_fragment" : "gtpu.msgtype = 0xff"
3690 }
3691 },
3692 {
3693 "op" : "assign",
3694 "parameters" : [
3695 {
3696 "type" : "field",
3697 "value" : ["gtpu", "msglen"]
3698 },
3699 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003700 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003701 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len18"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003702 }
3703 ],
3704 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003705 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003706 "line" : 221,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003707 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003708 "source_fragment" : "gtpu.msglen = fabric_meta.spgw.ipv4_len; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003709 }
3710 },
3711 {
3712 "op" : "assign",
3713 "parameters" : [
3714 {
3715 "type" : "field",
3716 "value" : ["gtpu", "teid"]
3717 },
3718 {
3719 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003720 "value" : ["scalars", "fabric_metadata_t._spgw_teid19"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003721 }
3722 ],
3723 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003724 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003725 "line" : 222,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003726 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003727 "source_fragment" : "gtpu.teid = fabric_meta.spgw.teid; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003728 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003729 }
3730 ]
3731 },
3732 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003733 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
3734 "id" : 53,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003735 "runtime_data" : [],
3736 "primitives" : [
3737 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003738 "op" : "remove_header",
3739 "parameters" : [
3740 {
3741 "type" : "header",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003742 "value" : "mpls"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003743 }
3744 ],
3745 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003746 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003747 "line" : 252,
Yi Tseng47eac892018-07-11 02:17:04 +08003748 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003749 "source_fragment" : "hdr.mpls.setInvalid()"
Yi Tseng47eac892018-07-11 02:17:04 +08003750 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003751 },
Yi Tseng47eac892018-07-11 02:17:04 +08003752 {
3753 "op" : "assign",
3754 "parameters" : [
3755 {
3756 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003757 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Yi Tseng47eac892018-07-11 02:17:04 +08003758 },
3759 {
3760 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003761 "value" : ["scalars", "fabric_metadata_t._ip_eth_type1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003762 }
3763 ],
3764 "source_info" : {
3765 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003766 "line" : 254,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003767 "column" : 33,
3768 "source_fragment" : "= fabric_metadata.ip_eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003769 }
3770 }
3771 ]
3772 },
3773 {
3774 "name" : "FabricEgress.egress_next.set_mpls",
3775 "id" : 54,
3776 "runtime_data" : [],
3777 "primitives" : [
3778 {
3779 "op" : "add_header",
3780 "parameters" : [
3781 {
3782 "type" : "header",
3783 "value" : "mpls"
Yi Tseng47eac892018-07-11 02:17:04 +08003784 }
3785 ],
3786 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003787 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003788 "line" : 259,
Yi Tseng47eac892018-07-11 02:17:04 +08003789 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003790 "source_fragment" : "hdr.mpls.setValid()"
3791 }
3792 },
3793 {
3794 "op" : "assign",
3795 "parameters" : [
3796 {
3797 "type" : "field",
3798 "value" : ["mpls", "label"]
3799 },
3800 {
3801 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003802 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003803 }
3804 ],
3805 "source_info" : {
3806 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003807 "line" : 260,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003808 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003809 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003810 }
3811 },
3812 {
3813 "op" : "assign",
3814 "parameters" : [
3815 {
3816 "type" : "field",
3817 "value" : ["mpls", "tc"]
3818 },
3819 {
3820 "type" : "hexstr",
3821 "value" : "0x00"
3822 }
3823 ],
3824 "source_info" : {
3825 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003826 "line" : 261,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003827 "column" : 8,
3828 "source_fragment" : "hdr.mpls.tc = 3w0"
3829 }
3830 },
3831 {
3832 "op" : "assign",
3833 "parameters" : [
3834 {
3835 "type" : "field",
3836 "value" : ["mpls", "bos"]
3837 },
3838 {
3839 "type" : "hexstr",
3840 "value" : "0x01"
3841 }
3842 ],
3843 "source_info" : {
3844 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003845 "line" : 262,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003846 "column" : 8,
3847 "source_fragment" : "hdr.mpls.bos = 1w1"
3848 }
3849 },
3850 {
3851 "op" : "assign",
3852 "parameters" : [
3853 {
3854 "type" : "field",
3855 "value" : ["mpls", "ttl"]
3856 },
3857 {
3858 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003859 "value" : ["scalars", "fabric_metadata_t._mpls_ttl6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003860 }
3861 ],
3862 "source_info" : {
3863 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003864 "line" : 263,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003865 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003866 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003867 }
3868 },
3869 {
3870 "op" : "assign",
3871 "parameters" : [
3872 {
3873 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003874 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003875 },
3876 {
3877 "type" : "hexstr",
3878 "value" : "0x8847"
3879 }
3880 ],
3881 "source_info" : {
3882 "filename" : "include/control/../define.p4",
3883 "line" : 108,
3884 "column" : 31,
3885 "source_fragment" : "0x8847; ..."
3886 }
3887 }
3888 ]
3889 },
3890 {
3891 "name" : "FabricEgress.egress_next.push_vlan",
3892 "id" : 55,
3893 "runtime_data" : [],
3894 "primitives" : [
3895 {
3896 "op" : "add_header",
3897 "parameters" : [
3898 {
3899 "type" : "header",
3900 "value" : "vlan_tag"
3901 }
3902 ],
3903 "source_info" : {
3904 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003905 "line" : 271,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003906 "column" : 8,
3907 "source_fragment" : "hdr.vlan_tag.setValid()"
3908 }
3909 },
3910 {
3911 "op" : "assign",
3912 "parameters" : [
3913 {
3914 "type" : "field",
3915 "value" : ["vlan_tag", "cfi"]
3916 },
3917 {
3918 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003919 "value" : ["scalars", "fabric_metadata_t._vlan_cfi4"]
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" : 272,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003925 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003926 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003927 }
3928 },
3929 {
3930 "op" : "assign",
3931 "parameters" : [
3932 {
3933 "type" : "field",
3934 "value" : ["vlan_tag", "pri"]
3935 },
3936 {
3937 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003938 "value" : ["scalars", "fabric_metadata_t._vlan_pri3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003939 }
3940 ],
3941 "source_info" : {
3942 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003943 "line" : 273,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003944 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003945 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003946 }
3947 },
3948 {
3949 "op" : "assign",
3950 "parameters" : [
3951 {
3952 "type" : "field",
3953 "value" : ["vlan_tag", "eth_type"]
3954 },
3955 {
3956 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003957 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003958 }
3959 ],
3960 "source_info" : {
3961 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003962 "line" : 274,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003963 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003964 "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003965 }
3966 },
3967 {
3968 "op" : "assign",
3969 "parameters" : [
3970 {
3971 "type" : "field",
3972 "value" : ["vlan_tag", "vlan_id"]
3973 },
3974 {
3975 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003976 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
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" : 275,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003982 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003983 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003984 }
3985 },
3986 {
3987 "op" : "assign",
3988 "parameters" : [
3989 {
3990 "type" : "field",
3991 "value" : ["ethernet", "eth_type"]
3992 },
3993 {
3994 "type" : "hexstr",
3995 "value" : "0x8100"
3996 }
3997 ],
3998 "source_info" : {
3999 "filename" : "include/control/../define.p4",
4000 "line" : 107,
4001 "column" : 31,
4002 "source_fragment" : "0x8100; ..."
4003 }
4004 }
4005 ]
4006 },
4007 {
4008 "name" : "FabricEgress.egress_next.pop_vlan",
4009 "id" : 56,
4010 "runtime_data" : [],
4011 "primitives" : [
4012 {
4013 "op" : "assign",
4014 "parameters" : [
4015 {
4016 "type" : "field",
4017 "value" : ["ethernet", "eth_type"]
4018 },
4019 {
4020 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004021 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004022 }
4023 ],
4024 "source_info" : {
4025 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004026 "line" : 286,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004027 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004028 "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.eth_type; ..."
Yi Tseng47eac892018-07-11 02:17:04 +08004029 }
4030 },
4031 {
4032 "op" : "remove_header",
4033 "parameters" : [
4034 {
4035 "type" : "header",
4036 "value" : "vlan_tag"
4037 }
4038 ],
4039 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004040 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004041 "line" : 287,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004042 "column" : 8,
4043 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4044 }
4045 }
4046 ]
4047 },
4048 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004049 "name" : "act_19",
4050 "id" : 57,
4051 "runtime_data" : [],
4052 "primitives" : [
4053 {
4054 "op" : "drop",
4055 "parameters" : [],
4056 "source_info" : {
4057 "filename" : "include/control/packetio.p4",
4058 "line" : 47,
4059 "column" : 16,
4060 "source_fragment" : "mark_to_drop()"
4061 }
4062 }
4063 ]
4064 },
4065 {
4066 "name" : "act_20",
4067 "id" : 58,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004068 "runtime_data" : [],
4069 "primitives" : [
4070 {
4071 "op" : "add_header",
4072 "parameters" : [
4073 {
4074 "type" : "header",
4075 "value" : "packet_in"
4076 }
4077 ],
4078 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004079 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004080 "line" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004081 "column" : 12,
4082 "source_fragment" : "hdr.packet_in.setValid()"
4083 }
4084 },
4085 {
4086 "op" : "assign",
4087 "parameters" : [
4088 {
4089 "type" : "field",
4090 "value" : ["packet_in", "ingress_port"]
4091 },
4092 {
4093 "type" : "field",
4094 "value" : ["standard_metadata", "ingress_port"]
4095 }
4096 ],
4097 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004098 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004099 "line" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004100 "column" : 12,
4101 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4102 }
4103 }
4104 ]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004105 },
4106 {
4107 "name" : "act_21",
4108 "id" : 59,
4109 "runtime_data" : [],
4110 "primitives" : [
4111 {
4112 "op" : "drop",
4113 "parameters" : [],
4114 "source_info" : {
4115 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004116 "line" : 308,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004117 "column" : 12,
4118 "source_fragment" : "mark_to_drop()"
4119 }
4120 }
4121 ]
4122 },
4123 {
4124 "name" : "act_22",
4125 "id" : 60,
4126 "runtime_data" : [],
4127 "primitives" : [
4128 {
4129 "op" : "assign",
4130 "parameters" : [
4131 {
4132 "type" : "field",
4133 "value" : ["scalars", "egress_next_tmp"]
4134 },
4135 {
4136 "type" : "expression",
4137 "value" : {
4138 "type" : "expression",
4139 "value" : {
4140 "op" : "b2d",
4141 "left" : null,
4142 "right" : {
4143 "type" : "bool",
4144 "value" : true
4145 }
4146 }
4147 }
4148 }
4149 ]
4150 }
4151 ]
4152 },
4153 {
4154 "name" : "act_23",
4155 "id" : 61,
4156 "runtime_data" : [],
4157 "primitives" : [
4158 {
4159 "op" : "assign",
4160 "parameters" : [
4161 {
4162 "type" : "field",
4163 "value" : ["scalars", "egress_next_tmp"]
4164 },
4165 {
4166 "type" : "expression",
4167 "value" : {
4168 "type" : "expression",
4169 "value" : {
4170 "op" : "b2d",
4171 "left" : null,
4172 "right" : {
4173 "type" : "bool",
4174 "value" : false
4175 }
4176 }
4177 }
4178 }
4179 ]
4180 }
4181 ]
4182 },
4183 {
4184 "name" : "act_24",
4185 "id" : 62,
4186 "runtime_data" : [],
4187 "primitives" : [
4188 {
4189 "op" : "drop",
4190 "parameters" : [],
4191 "source_info" : {
4192 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004193 "line" : 327,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004194 "column" : 35,
4195 "source_fragment" : "mark_to_drop()"
4196 }
4197 }
4198 ]
4199 },
4200 {
4201 "name" : "act_25",
4202 "id" : 63,
4203 "runtime_data" : [],
4204 "primitives" : [
4205 {
4206 "op" : "assign",
4207 "parameters" : [
4208 {
4209 "type" : "field",
4210 "value" : ["mpls", "ttl"]
4211 },
4212 {
4213 "type" : "expression",
4214 "value" : {
4215 "type" : "expression",
4216 "value" : {
4217 "op" : "&",
4218 "left" : {
4219 "type" : "expression",
4220 "value" : {
4221 "op" : "+",
4222 "left" : {
4223 "type" : "field",
4224 "value" : ["mpls", "ttl"]
4225 },
4226 "right" : {
4227 "type" : "hexstr",
4228 "value" : "0xff"
4229 }
4230 }
4231 },
4232 "right" : {
4233 "type" : "hexstr",
4234 "value" : "0xff"
4235 }
4236 }
4237 }
4238 }
4239 ],
4240 "source_info" : {
4241 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004242 "line" : 326,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004243 "column" : 12,
4244 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
4245 }
4246 }
4247 ]
4248 },
4249 {
4250 "name" : "act_26",
4251 "id" : 64,
4252 "runtime_data" : [],
4253 "primitives" : [
4254 {
4255 "op" : "drop",
4256 "parameters" : [],
4257 "source_info" : {
4258 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004259 "line" : 331,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004260 "column" : 39,
4261 "source_fragment" : "mark_to_drop()"
4262 }
4263 }
4264 ]
4265 },
4266 {
4267 "name" : "act_27",
4268 "id" : 65,
4269 "runtime_data" : [],
4270 "primitives" : [
4271 {
4272 "op" : "assign",
4273 "parameters" : [
4274 {
4275 "type" : "field",
4276 "value" : ["ipv4", "ttl"]
4277 },
4278 {
4279 "type" : "expression",
4280 "value" : {
4281 "type" : "expression",
4282 "value" : {
4283 "op" : "&",
4284 "left" : {
4285 "type" : "expression",
4286 "value" : {
4287 "op" : "+",
4288 "left" : {
4289 "type" : "field",
4290 "value" : ["ipv4", "ttl"]
4291 },
4292 "right" : {
4293 "type" : "hexstr",
4294 "value" : "0xff"
4295 }
4296 }
4297 },
4298 "right" : {
4299 "type" : "hexstr",
4300 "value" : "0xff"
4301 }
4302 }
4303 }
4304 }
4305 ],
4306 "source_info" : {
4307 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004308 "line" : 330,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004309 "column" : 16,
4310 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
4311 }
4312 }
4313 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004314 }
4315 ],
4316 "pipelines" : [
4317 {
4318 "name" : "ingress",
4319 "id" : 0,
4320 "source_info" : {
4321 "filename" : "fabric.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004322 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004323 "column" : 8,
4324 "source_fragment" : "FabricIngress"
4325 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004326 "init_table" : "tbl_act",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004327 "tables" : [
4328 {
4329 "name" : "tbl_act",
4330 "id" : 0,
4331 "key" : [],
4332 "match_type" : "exact",
4333 "type" : "simple",
4334 "max_size" : 1024,
4335 "with_counters" : false,
4336 "support_timeout" : false,
4337 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004338 "action_ids" : [32],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004339 "actions" : ["act_0"],
4340 "base_default_next" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004341 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004342 "act_0" : "node_3"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004343 },
4344 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004345 "action_id" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004346 "action_const" : true,
4347 "action_data" : [],
4348 "action_entry_const" : true
4349 }
4350 },
4351 {
4352 "name" : "tbl_act_0",
4353 "id" : 1,
4354 "key" : [],
4355 "match_type" : "exact",
4356 "type" : "simple",
4357 "max_size" : 1024,
4358 "with_counters" : false,
4359 "support_timeout" : false,
4360 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004361 "action_ids" : [31],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004362 "actions" : ["act"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004363 "base_default_next" : "node_5",
4364 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004365 "act" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004366 },
4367 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004368 "action_id" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004369 "action_const" : true,
4370 "action_data" : [],
4371 "action_entry_const" : true
4372 }
4373 },
4374 {
4375 "name" : "tbl_act_1",
4376 "id" : 2,
4377 "key" : [],
4378 "match_type" : "exact",
4379 "type" : "simple",
4380 "max_size" : 1024,
4381 "with_counters" : false,
4382 "support_timeout" : false,
4383 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004384 "action_ids" : [35],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004385 "actions" : ["act_3"],
4386 "base_default_next" : "node_7",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004387 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004388 "act_3" : "node_7"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004389 },
4390 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004391 "action_id" : 35,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004392 "action_const" : true,
4393 "action_data" : [],
4394 "action_entry_const" : true
4395 }
4396 },
4397 {
4398 "name" : "tbl_act_2",
4399 "id" : 3,
4400 "key" : [],
4401 "match_type" : "exact",
4402 "type" : "simple",
4403 "max_size" : 1024,
4404 "with_counters" : false,
4405 "support_timeout" : false,
4406 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004407 "action_ids" : [33],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004408 "actions" : ["act_1"],
4409 "base_default_next" : "node_10",
4410 "next_tables" : {
4411 "act_1" : "node_10"
4412 },
4413 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004414 "action_id" : 33,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004415 "action_const" : true,
4416 "action_data" : [],
4417 "action_entry_const" : true
4418 }
4419 },
4420 {
4421 "name" : "tbl_act_3",
4422 "id" : 4,
4423 "key" : [],
4424 "match_type" : "exact",
4425 "type" : "simple",
4426 "max_size" : 1024,
4427 "with_counters" : false,
4428 "support_timeout" : false,
4429 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004430 "action_ids" : [34],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004431 "actions" : ["act_2"],
4432 "base_default_next" : "node_10",
4433 "next_tables" : {
4434 "act_2" : "node_10"
4435 },
4436 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004437 "action_id" : 34,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004438 "action_const" : true,
4439 "action_data" : [],
4440 "action_entry_const" : true
4441 }
4442 },
4443 {
4444 "name" : "tbl_act_4",
4445 "id" : 5,
4446 "key" : [],
4447 "match_type" : "exact",
4448 "type" : "simple",
4449 "max_size" : 1024,
4450 "with_counters" : false,
4451 "support_timeout" : false,
4452 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004453 "action_ids" : [36],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004454 "actions" : ["act_4"],
4455 "base_default_next" : null,
4456 "next_tables" : {
4457 "act_4" : null
4458 },
4459 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004460 "action_id" : 36,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004461 "action_const" : true,
4462 "action_data" : [],
4463 "action_entry_const" : true
4464 }
4465 },
4466 {
4467 "name" : "tbl_act_5",
4468 "id" : 6,
4469 "key" : [],
4470 "match_type" : "exact",
4471 "type" : "simple",
4472 "max_size" : 1024,
4473 "with_counters" : false,
4474 "support_timeout" : false,
4475 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004476 "action_ids" : [37],
4477 "actions" : ["act_5"],
4478 "base_default_next" : "node_14",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004479 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004480 "act_5" : "node_14"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004481 },
4482 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004483 "action_id" : 37,
4484 "action_const" : true,
4485 "action_data" : [],
4486 "action_entry_const" : true
4487 }
4488 },
4489 {
4490 "name" : "tbl_act_6",
4491 "id" : 7,
4492 "key" : [],
4493 "match_type" : "exact",
4494 "type" : "simple",
4495 "max_size" : 1024,
4496 "with_counters" : false,
4497 "support_timeout" : false,
4498 "direct_meters" : null,
4499 "action_ids" : [38],
4500 "actions" : ["act_6"],
4501 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
4502 "next_tables" : {
4503 "act_6" : "FabricIngress.filtering.ingress_port_vlan"
4504 },
4505 "default_entry" : {
4506 "action_id" : 38,
4507 "action_const" : true,
4508 "action_data" : [],
4509 "action_entry_const" : true
4510 }
4511 },
4512 {
4513 "name" : "FabricIngress.filtering.ingress_port_vlan",
4514 "id" : 8,
4515 "source_info" : {
4516 "filename" : "include/control/filtering.p4",
4517 "line" : 51,
4518 "column" : 10,
4519 "source_fragment" : "ingress_port_vlan"
4520 },
4521 "key" : [
4522 {
4523 "match_type" : "exact",
4524 "name" : "ig_port",
4525 "target" : ["standard_metadata", "ingress_port"],
4526 "mask" : null
4527 },
4528 {
4529 "match_type" : "exact",
4530 "name" : "vlan_is_valid",
4531 "target" : ["vlan_tag", "$valid$"],
4532 "mask" : null
4533 },
4534 {
4535 "match_type" : "ternary",
4536 "name" : "vlan_id",
4537 "target" : ["vlan_tag", "vlan_id"],
4538 "mask" : null
4539 }
4540 ],
4541 "match_type" : "ternary",
4542 "type" : "simple",
4543 "max_size" : 1024,
4544 "with_counters" : true,
4545 "support_timeout" : false,
4546 "direct_meters" : null,
4547 "action_ids" : [11, 12, 13],
4548 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
4549 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
4550 "next_tables" : {
4551 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
4552 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
4553 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
4554 },
4555 "default_entry" : {
4556 "action_id" : 11,
4557 "action_const" : true,
4558 "action_data" : [],
4559 "action_entry_const" : true
4560 }
4561 },
4562 {
4563 "name" : "FabricIngress.filtering.fwd_classifier",
4564 "id" : 9,
4565 "source_info" : {
4566 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004567 "line" : 87,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004568 "column" : 10,
4569 "source_fragment" : "fwd_classifier"
4570 },
4571 "key" : [
4572 {
4573 "match_type" : "exact",
4574 "name" : "ig_port",
4575 "target" : ["standard_metadata", "ingress_port"],
4576 "mask" : null
4577 },
4578 {
4579 "match_type" : "ternary",
4580 "name" : "eth_dst",
4581 "target" : ["ethernet", "dst_addr"],
4582 "mask" : null
4583 },
4584 {
4585 "match_type" : "exact",
4586 "name" : "eth_type",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004587 "target" : ["scalars", "fabric_metadata_t._eth_type0"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004588 "mask" : null
4589 }
4590 ],
4591 "match_type" : "ternary",
4592 "type" : "simple",
4593 "max_size" : 1024,
4594 "with_counters" : true,
4595 "support_timeout" : false,
4596 "direct_meters" : null,
4597 "action_ids" : [14],
4598 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
4599 "base_default_next" : "tbl_act_7",
4600 "next_tables" : {
4601 "FabricIngress.filtering.set_forwarding_type" : "tbl_act_7"
4602 },
4603 "default_entry" : {
4604 "action_id" : 14,
4605 "action_const" : true,
4606 "action_data" : ["0x0"],
4607 "action_entry_const" : true
4608 }
4609 },
4610 {
4611 "name" : "tbl_act_7",
4612 "id" : 10,
4613 "key" : [],
4614 "match_type" : "exact",
4615 "type" : "simple",
4616 "max_size" : 1024,
4617 "with_counters" : false,
4618 "support_timeout" : false,
4619 "direct_meters" : null,
4620 "action_ids" : [47],
4621 "actions" : ["act_15"],
4622 "base_default_next" : "node_19",
4623 "next_tables" : {
4624 "act_15" : "node_19"
4625 },
4626 "default_entry" : {
4627 "action_id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004628 "action_const" : true,
4629 "action_data" : [],
4630 "action_entry_const" : true
4631 }
4632 },
4633 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004634 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004635 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004636 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004637 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004638 "line" : 82,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004639 "column" : 10,
4640 "source_fragment" : "s1u_filter_table"
4641 },
4642 "key" : [
4643 {
4644 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004645 "name" : "gtp_ipv4_dst",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004646 "target" : ["gtpu_ipv4", "dst_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004647 "mask" : null
4648 }
4649 ],
4650 "match_type" : "exact",
4651 "type" : "simple",
4652 "max_size" : 1024,
4653 "with_counters" : false,
4654 "support_timeout" : false,
4655 "direct_meters" : null,
4656 "action_ids" : [1],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004657 "actions" : ["nop"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004658 "base_default_next" : null,
4659 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004660 "__HIT__" : "tbl_act_8",
4661 "__MISS__" : "tbl_act_9"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004662 },
4663 "default_entry" : {
4664 "action_id" : 1,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004665 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004666 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004667 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004668 }
4669 },
4670 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004671 "name" : "tbl_act_8",
4672 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004673 "key" : [],
4674 "match_type" : "exact",
4675 "type" : "simple",
4676 "max_size" : 1024,
4677 "with_counters" : false,
4678 "support_timeout" : false,
4679 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004680 "action_ids" : [39],
4681 "actions" : ["act_7"],
4682 "base_default_next" : "node_23",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004683 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004684 "act_7" : "node_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004685 },
4686 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004687 "action_id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004688 "action_const" : true,
4689 "action_data" : [],
4690 "action_entry_const" : true
4691 }
4692 },
4693 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004694 "name" : "tbl_act_9",
4695 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004696 "key" : [],
4697 "match_type" : "exact",
4698 "type" : "simple",
4699 "max_size" : 1024,
4700 "with_counters" : false,
4701 "support_timeout" : false,
4702 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004703 "action_ids" : [40],
4704 "actions" : ["act_8"],
4705 "base_default_next" : "node_23",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004706 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004707 "act_8" : "node_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004708 },
4709 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004710 "action_id" : 40,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004711 "action_const" : true,
4712 "action_data" : [],
4713 "action_entry_const" : true
4714 }
4715 },
4716 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004717 "name" : "tbl_act_10",
4718 "id" : 14,
4719 "key" : [],
4720 "match_type" : "exact",
4721 "type" : "simple",
4722 "max_size" : 1024,
4723 "with_counters" : false,
4724 "support_timeout" : false,
4725 "direct_meters" : null,
4726 "action_ids" : [41],
4727 "actions" : ["act_9"],
4728 "base_default_next" : "tbl_act_11",
4729 "next_tables" : {
4730 "act_9" : "tbl_act_11"
4731 },
4732 "default_entry" : {
4733 "action_id" : 41,
4734 "action_const" : true,
4735 "action_data" : [],
4736 "action_entry_const" : true
4737 }
4738 },
4739 {
4740 "name" : "tbl_act_11",
4741 "id" : 15,
4742 "key" : [],
4743 "match_type" : "exact",
4744 "type" : "simple",
4745 "max_size" : 1024,
4746 "with_counters" : false,
4747 "support_timeout" : false,
4748 "direct_meters" : null,
4749 "action_ids" : [42],
4750 "actions" : ["act_10"],
4751 "base_default_next" : "tbl_spgw_ingress_gtpu_decap",
4752 "next_tables" : {
4753 "act_10" : "tbl_spgw_ingress_gtpu_decap"
4754 },
4755 "default_entry" : {
4756 "action_id" : 42,
4757 "action_const" : true,
4758 "action_data" : [],
4759 "action_entry_const" : true
4760 }
4761 },
4762 {
4763 "name" : "tbl_spgw_ingress_gtpu_decap",
4764 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004765 "key" : [],
4766 "match_type" : "exact",
4767 "type" : "simple",
4768 "max_size" : 1024,
4769 "with_counters" : false,
4770 "support_timeout" : false,
4771 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004772 "action_ids" : [9],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004773 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
4774 "base_default_next" : "node_33",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004775 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004776 "FabricIngress.spgw_ingress.gtpu_decap" : "node_33"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004777 },
4778 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004779 "action_id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004780 "action_const" : true,
4781 "action_data" : [],
4782 "action_entry_const" : true
4783 }
4784 },
4785 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004786 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004787 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004788 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004789 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004790 "line" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004791 "column" : 10,
4792 "source_fragment" : "dl_sess_lookup"
4793 },
4794 "key" : [
4795 {
4796 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004797 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004798 "target" : ["ipv4", "dst_addr"],
4799 "mask" : null
4800 }
4801 ],
4802 "match_type" : "exact",
4803 "type" : "simple",
4804 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004805 "with_counters" : true,
4806 "support_timeout" : false,
4807 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004808 "action_ids" : [10, 0],
4809 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "nop"],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004810 "base_default_next" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004811 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004812 "__HIT__" : "tbl_act_12",
4813 "__MISS__" : "tbl_act_13"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004814 },
4815 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004816 "action_id" : 0,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004817 "action_const" : true,
4818 "action_data" : [],
4819 "action_entry_const" : true
4820 }
4821 },
4822 {
4823 "name" : "tbl_act_12",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004824 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004825 "key" : [],
4826 "match_type" : "exact",
4827 "type" : "simple",
4828 "max_size" : 1024,
4829 "with_counters" : false,
4830 "support_timeout" : false,
4831 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004832 "action_ids" : [43],
4833 "actions" : ["act_11"],
4834 "base_default_next" : "node_30",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004835 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004836 "act_11" : "node_30"
Yi Tseng27b9bc02018-04-12 14:52:40 +08004837 },
4838 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004839 "action_id" : 43,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004840 "action_const" : true,
4841 "action_data" : [],
4842 "action_entry_const" : true
4843 }
4844 },
4845 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004846 "name" : "tbl_act_13",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004847 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004848 "key" : [],
4849 "match_type" : "exact",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004850 "type" : "simple",
4851 "max_size" : 1024,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004852 "with_counters" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004853 "support_timeout" : false,
4854 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004855 "action_ids" : [44],
4856 "actions" : ["act_12"],
4857 "base_default_next" : "node_30",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004858 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004859 "act_12" : "node_30"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004860 },
4861 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004862 "action_id" : 44,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004863 "action_const" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004864 "action_data" : [],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004865 "action_entry_const" : true
4866 }
4867 },
4868 {
4869 "name" : "tbl_act_14",
4870 "id" : 20,
4871 "key" : [],
4872 "match_type" : "exact",
4873 "type" : "simple",
4874 "max_size" : 1024,
4875 "with_counters" : false,
4876 "support_timeout" : false,
4877 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004878 "action_ids" : [45],
4879 "actions" : ["act_13"],
4880 "base_default_next" : "node_33",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004881 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004882 "act_13" : "node_33"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004883 },
4884 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004885 "action_id" : 45,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004886 "action_const" : true,
4887 "action_data" : [],
4888 "action_entry_const" : true
4889 }
4890 },
4891 {
4892 "name" : "tbl_act_15",
4893 "id" : 21,
4894 "key" : [],
4895 "match_type" : "exact",
4896 "type" : "simple",
4897 "max_size" : 1024,
4898 "with_counters" : false,
4899 "support_timeout" : false,
4900 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004901 "action_ids" : [46],
4902 "actions" : ["act_14"],
4903 "base_default_next" : "node_33",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004904 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004905 "act_14" : "node_33"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004906 },
4907 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004908 "action_id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004909 "action_const" : true,
4910 "action_data" : [],
4911 "action_entry_const" : true
4912 }
4913 },
4914 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004915 "name" : "tbl_act_16",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004916 "id" : 22,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004917 "key" : [],
4918 "match_type" : "exact",
4919 "type" : "simple",
4920 "max_size" : 1024,
4921 "with_counters" : false,
4922 "support_timeout" : false,
4923 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004924 "action_ids" : [48],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004925 "actions" : ["act_16"],
4926 "base_default_next" : "node_35",
4927 "next_tables" : {
4928 "act_16" : "node_35"
4929 },
4930 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004931 "action_id" : 48,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004932 "action_const" : true,
4933 "action_data" : [],
4934 "action_entry_const" : true
4935 }
4936 },
4937 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004938 "name" : "FabricIngress.forwarding.bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004939 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004940 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004941 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004942 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004943 "column" : 10,
4944 "source_fragment" : "bridging"
4945 },
4946 "key" : [
4947 {
4948 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004949 "name" : "vlan_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004950 "target" : ["scalars", "fabric_metadata_t._vlan_id2"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004951 "mask" : null
4952 },
4953 {
4954 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004955 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004956 "target" : ["ethernet", "dst_addr"],
4957 "mask" : null
4958 }
4959 ],
4960 "match_type" : "ternary",
4961 "type" : "simple",
4962 "max_size" : 1024,
4963 "with_counters" : true,
4964 "support_timeout" : false,
4965 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004966 "action_ids" : [15, 2],
4967 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
4968 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004969 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004970 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.acl.acl",
4971 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004972 },
4973 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004974 "action_id" : 2,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004975 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004976 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004977 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004978 }
4979 },
4980 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004981 "name" : "FabricIngress.forwarding.mpls",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004982 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004983 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004984 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004985 "line" : 71,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004986 "column" : 10,
4987 "source_fragment" : "mpls"
4988 },
4989 "key" : [
4990 {
4991 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004992 "name" : "mpls_label",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004993 "target" : ["scalars", "fabric_metadata_t._mpls_label5"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004994 "mask" : null
4995 }
4996 ],
4997 "match_type" : "exact",
4998 "type" : "simple",
4999 "max_size" : 1024,
5000 "with_counters" : true,
5001 "support_timeout" : false,
5002 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005003 "action_ids" : [16, 3],
5004 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
5005 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005006 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005007 "FabricIngress.forwarding.pop_mpls_and_next" : "FabricIngress.acl.acl",
5008 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005009 },
5010 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005011 "action_id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005012 "action_const" : true,
5013 "action_data" : [],
5014 "action_entry_const" : true
5015 }
5016 },
5017 {
Charles Chan384aea22018-08-23 22:08:02 -07005018 "name" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005019 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005020 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005021 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005022 "line" : 101,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005023 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07005024 "source_fragment" : "routing_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005025 },
5026 "key" : [
5027 {
5028 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005029 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005030 "target" : ["ipv4", "dst_addr"],
5031 "mask" : null
5032 }
5033 ],
5034 "match_type" : "lpm",
5035 "type" : "simple",
5036 "max_size" : 1024,
5037 "with_counters" : true,
5038 "support_timeout" : false,
5039 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005040 "action_ids" : [17, 18, 4],
5041 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
5042 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005043 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005044 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.acl.acl",
5045 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.acl.acl",
5046 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005047 },
5048 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005049 "action_id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005050 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005051 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005052 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005053 }
5054 },
5055 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005056 "name" : "FabricIngress.acl.acl",
5057 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005058 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005059 "filename" : "include/control/acl.p4",
5060 "line" : 60,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005061 "column" : 10,
5062 "source_fragment" : "acl"
5063 },
5064 "key" : [
5065 {
5066 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005067 "name" : "ig_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005068 "target" : ["standard_metadata", "ingress_port"],
5069 "mask" : null
5070 },
5071 {
5072 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005073 "name" : "ip_proto",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005074 "target" : ["scalars", "fabric_metadata_t._ip_proto14"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005075 "mask" : null
5076 },
5077 {
5078 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005079 "name" : "l4_sport",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005080 "target" : ["scalars", "fabric_metadata_t._l4_sport15"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005081 "mask" : null
5082 },
5083 {
5084 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005085 "name" : "l4_dport",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005086 "target" : ["scalars", "fabric_metadata_t._l4_dport16"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005087 "mask" : null
5088 },
5089 {
5090 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005091 "name" : "eth_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005092 "target" : ["ethernet", "dst_addr"],
5093 "mask" : null
5094 },
5095 {
5096 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005097 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005098 "target" : ["ethernet", "src_addr"],
5099 "mask" : null
5100 },
5101 {
5102 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005103 "name" : "vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005104 "target" : ["vlan_tag", "vlan_id"],
5105 "mask" : null
5106 },
5107 {
5108 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005109 "name" : "eth_type",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005110 "target" : ["scalars", "fabric_metadata_t._eth_type0"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08005111 "mask" : null
5112 },
5113 {
5114 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005115 "name" : "ipv4_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005116 "target" : ["ipv4", "src_addr"],
5117 "mask" : null
5118 },
5119 {
5120 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005121 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005122 "target" : ["ipv4", "dst_addr"],
5123 "mask" : null
5124 },
5125 {
5126 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005127 "name" : "icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005128 "target" : ["icmp", "icmp_type"],
5129 "mask" : null
5130 },
5131 {
5132 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005133 "name" : "icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005134 "target" : ["icmp", "icmp_code"],
5135 "mask" : null
5136 }
5137 ],
5138 "match_type" : "ternary",
5139 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005140 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005141 "with_counters" : true,
5142 "support_timeout" : false,
5143 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005144 "action_ids" : [19, 20, 21, 22, 23],
5145 "actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.clone_to_cpu", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"],
5146 "base_default_next" : "node_43",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005147 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005148 "FabricIngress.acl.set_next_id_acl" : "node_43",
5149 "FabricIngress.acl.punt_to_cpu" : "node_43",
5150 "FabricIngress.acl.clone_to_cpu" : "node_43",
5151 "FabricIngress.acl.drop" : "node_43",
5152 "FabricIngress.acl.nop_acl" : "node_43"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005153 },
5154 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005155 "action_id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005156 "action_const" : true,
5157 "action_data" : [],
5158 "action_entry_const" : true
5159 }
5160 },
5161 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005162 "name" : "FabricIngress.next.xconnect",
5163 "id" : 27,
5164 "source_info" : {
5165 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005166 "line" : 104,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005167 "column" : 10,
5168 "source_fragment" : "xconnect"
5169 },
5170 "key" : [
5171 {
5172 "match_type" : "exact",
5173 "name" : "ig_port",
5174 "target" : ["standard_metadata", "ingress_port"],
5175 "mask" : null
5176 },
5177 {
5178 "match_type" : "exact",
5179 "name" : "next_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005180 "target" : ["scalars", "fabric_metadata_t._next_id10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005181 "mask" : null
5182 }
5183 ],
5184 "match_type" : "exact",
5185 "type" : "simple",
5186 "max_size" : 1024,
5187 "with_counters" : true,
5188 "support_timeout" : false,
5189 "direct_meters" : null,
5190 "action_ids" : [25, 26, 6],
5191 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
5192 "base_default_next" : "FabricIngress.next.hashed",
5193 "next_tables" : {
5194 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
5195 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
5196 "nop" : "FabricIngress.next.hashed"
5197 },
5198 "default_entry" : {
5199 "action_id" : 6,
5200 "action_const" : true,
5201 "action_data" : [],
5202 "action_entry_const" : true
5203 }
5204 },
5205 {
5206 "name" : "FabricIngress.next.hashed",
5207 "id" : 28,
5208 "source_info" : {
5209 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005210 "line" : 184,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005211 "column" : 10,
5212 "source_fragment" : "hashed"
5213 },
5214 "key" : [
5215 {
5216 "match_type" : "exact",
5217 "name" : "next_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005218 "target" : ["scalars", "fabric_metadata_t._next_id10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005219 "mask" : null
5220 }
5221 ],
5222 "match_type" : "exact",
5223 "type" : "indirect_ws",
5224 "action_profile" : "FabricIngress.next.hashed_selector",
5225 "max_size" : 1024,
5226 "with_counters" : true,
5227 "support_timeout" : false,
5228 "direct_meters" : null,
5229 "action_ids" : [27, 28, 29, 7],
5230 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
5231 "base_default_next" : "FabricIngress.next.multicast",
5232 "next_tables" : {
5233 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
5234 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
5235 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
5236 "nop" : "FabricIngress.next.multicast"
5237 }
5238 },
5239 {
5240 "name" : "FabricIngress.next.multicast",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005241 "id" : 29,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005242 "source_info" : {
5243 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005244 "line" : 218,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005245 "column" : 10,
5246 "source_fragment" : "multicast"
5247 },
5248 "key" : [
5249 {
5250 "match_type" : "exact",
5251 "name" : "next_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005252 "target" : ["scalars", "fabric_metadata_t._next_id10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005253 "mask" : null
5254 }
5255 ],
5256 "match_type" : "exact",
5257 "type" : "simple",
5258 "max_size" : 1024,
5259 "with_counters" : true,
5260 "support_timeout" : false,
5261 "direct_meters" : null,
5262 "action_ids" : [30, 8],
5263 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
5264 "base_default_next" : "FabricIngress.next.next_vlan",
5265 "next_tables" : {
5266 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
5267 "nop" : "FabricIngress.next.next_vlan"
5268 },
5269 "default_entry" : {
5270 "action_id" : 8,
5271 "action_const" : true,
5272 "action_data" : [],
5273 "action_entry_const" : true
5274 }
5275 },
5276 {
5277 "name" : "FabricIngress.next.next_vlan",
5278 "id" : 30,
5279 "source_info" : {
5280 "filename" : "include/control/next.p4",
5281 "line" : 74,
5282 "column" : 10,
5283 "source_fragment" : "next_vlan"
5284 },
5285 "key" : [
5286 {
5287 "match_type" : "exact",
5288 "name" : "next_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005289 "target" : ["scalars", "fabric_metadata_t._next_id10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005290 "mask" : null
5291 }
5292 ],
5293 "match_type" : "exact",
5294 "type" : "simple",
5295 "max_size" : 1024,
5296 "with_counters" : true,
5297 "support_timeout" : false,
5298 "direct_meters" : null,
5299 "action_ids" : [24, 5],
5300 "actions" : ["FabricIngress.next.set_vlan", "nop"],
5301 "base_default_next" : "node_48",
5302 "next_tables" : {
5303 "FabricIngress.next.set_vlan" : "node_48",
5304 "nop" : "node_48"
5305 },
5306 "default_entry" : {
5307 "action_id" : 5,
5308 "action_const" : true,
5309 "action_data" : [],
5310 "action_entry_const" : true
5311 }
5312 },
5313 {
5314 "name" : "tbl_act_17",
5315 "id" : 31,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005316 "key" : [],
5317 "match_type" : "exact",
5318 "type" : "simple",
5319 "max_size" : 1024,
5320 "with_counters" : false,
5321 "support_timeout" : false,
5322 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005323 "action_ids" : [49],
5324 "actions" : ["act_17"],
5325 "base_default_next" : "node_50",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005326 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005327 "act_17" : "node_50"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005328 },
5329 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005330 "action_id" : 49,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005331 "action_const" : true,
5332 "action_data" : [],
5333 "action_entry_const" : true
5334 }
5335 },
5336 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005337 "name" : "tbl_act_18",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005338 "id" : 32,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005339 "key" : [],
5340 "match_type" : "exact",
5341 "type" : "simple",
5342 "max_size" : 1024,
5343 "with_counters" : false,
5344 "support_timeout" : false,
5345 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005346 "action_ids" : [50],
5347 "actions" : ["act_18"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005348 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005349 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005350 "act_18" : null
Carmelo Casconea5400af2018-07-17 22:11:54 +02005351 },
5352 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005353 "action_id" : 50,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005354 "action_const" : true,
5355 "action_data" : [],
5356 "action_entry_const" : true
5357 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005358 }
5359 ],
5360 "action_profiles" : [
5361 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005362 "name" : "FabricIngress.next.hashed_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005363 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005364 "source_info" : {
5365 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005366 "line" : 165,
5367 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005368 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005369 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005370 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005371 "selector" : {
5372 "algo" : "crc16",
5373 "input" : [
5374 {
5375 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005376 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005377 },
5378 {
5379 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005380 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005381 },
5382 {
5383 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005384 "value" : ["scalars", "fabric_metadata_t._ip_proto14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005385 },
5386 {
5387 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005388 "value" : ["scalars", "fabric_metadata_t._l4_sport15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005389 },
5390 {
5391 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005392 "value" : ["scalars", "fabric_metadata_t._l4_dport16"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005393 }
5394 ]
5395 }
5396 }
5397 ],
5398 "conditionals" : [
5399 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005400 "name" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005401 "id" : 0,
5402 "source_info" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005403 "filename" : "include/spgw.p4",
5404 "line" : 30,
5405 "column" : 12,
5406 "source_fragment" : "! is_gtpu_encapped"
5407 },
5408 "expression" : {
5409 "type" : "expression",
5410 "value" : {
5411 "op" : "not",
5412 "left" : null,
5413 "right" : {
5414 "type" : "expression",
5415 "value" : {
5416 "op" : "d2b",
5417 "left" : null,
5418 "right" : {
5419 "type" : "field",
5420 "value" : ["gtpu", "$valid$"]
5421 }
5422 }
5423 }
5424 }
5425 },
5426 "true_next" : "tbl_act_0",
5427 "false_next" : "node_5"
5428 },
5429 {
5430 "name" : "node_5",
5431 "id" : 1,
5432 "expression" : {
5433 "type" : "expression",
5434 "value" : {
5435 "op" : "not",
5436 "left" : null,
5437 "right" : {
5438 "type" : "expression",
5439 "value" : {
5440 "op" : "d2b",
5441 "left" : null,
5442 "right" : {
5443 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005444 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005445 }
5446 }
5447 }
5448 }
5449 },
5450 "true_next" : "tbl_act_1",
5451 "false_next" : "node_10"
5452 },
5453 {
5454 "name" : "node_7",
5455 "id" : 2,
5456 "source_info" : {
5457 "filename" : "include/spgw.p4",
5458 "line" : 34,
5459 "column" : 12,
5460 "source_fragment" : "inner_udp.isValid()"
5461 },
5462 "expression" : {
5463 "type" : "expression",
5464 "value" : {
5465 "op" : "d2b",
5466 "left" : null,
5467 "right" : {
5468 "type" : "field",
5469 "value" : ["inner_udp", "$valid$"]
5470 }
5471 }
5472 },
5473 "true_next" : "tbl_act_2",
5474 "false_next" : "tbl_act_3"
5475 },
5476 {
5477 "name" : "node_10",
5478 "id" : 3,
5479 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005480 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005481 "line" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005482 "column" : 12,
5483 "source_fragment" : "hdr.packet_out.isValid()"
5484 },
5485 "expression" : {
5486 "type" : "expression",
5487 "value" : {
5488 "op" : "d2b",
5489 "left" : null,
5490 "right" : {
5491 "type" : "field",
5492 "value" : ["packet_out", "$valid$"]
5493 }
5494 }
5495 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005496 "true_next" : "tbl_act_4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005497 "false_next" : "node_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005498 },
5499 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005500 "name" : "node_12",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005501 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005502 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005503 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005504 "line" : 104,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005505 "column" : 12,
5506 "source_fragment" : "hdr.vlan_tag.isValid()"
5507 },
5508 "expression" : {
5509 "type" : "expression",
5510 "value" : {
5511 "op" : "d2b",
5512 "left" : null,
5513 "right" : {
5514 "type" : "field",
5515 "value" : ["vlan_tag", "$valid$"]
5516 }
5517 }
5518 },
5519 "true_next" : "tbl_act_5",
5520 "false_next" : "node_14"
5521 },
5522 {
5523 "name" : "node_14",
5524 "id" : 5,
5525 "source_info" : {
5526 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005527 "line" : 110,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005528 "column" : 12,
5529 "source_fragment" : "!hdr.mpls.isValid()"
5530 },
5531 "expression" : {
5532 "type" : "expression",
5533 "value" : {
5534 "op" : "not",
5535 "left" : null,
5536 "right" : {
5537 "type" : "expression",
5538 "value" : {
5539 "op" : "d2b",
5540 "left" : null,
5541 "right" : {
5542 "type" : "field",
5543 "value" : ["mpls", "$valid$"]
5544 }
5545 }
5546 }
5547 }
5548 },
5549 "true_next" : "tbl_act_6",
5550 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
5551 },
5552 {
5553 "name" : "node_19",
5554 "id" : 6,
5555 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005556 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005557 "line" : 143,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005558 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005559 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005560 },
5561 "expression" : {
5562 "type" : "expression",
5563 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005564 "op" : "d2b",
5565 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005566 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005567 "type" : "field",
5568 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005569 }
5570 }
5571 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005572 "true_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
5573 "false_next" : "FabricIngress.spgw_ingress.dl_sess_lookup"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005574 },
5575 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005576 "name" : "node_23",
5577 "id" : 7,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005578 "source_info" : {
5579 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005580 "line" : 147,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005581 "column" : 16,
5582 "source_fragment" : "!s1u_filter_table.apply().hit"
5583 },
5584 "expression" : {
5585 "type" : "expression",
5586 "value" : {
5587 "op" : "not",
5588 "left" : null,
5589 "right" : {
5590 "type" : "expression",
5591 "value" : {
5592 "op" : "d2b",
5593 "left" : null,
5594 "right" : {
5595 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005596 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005597 }
5598 }
5599 }
5600 }
5601 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005602 "true_next" : "tbl_act_10",
5603 "false_next" : "tbl_act_11"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005604 },
5605 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005606 "name" : "node_30",
5607 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005608 "expression" : {
5609 "type" : "expression",
5610 "value" : {
5611 "op" : "d2b",
5612 "left" : null,
5613 "right" : {
5614 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005615 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005616 }
5617 }
5618 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005619 "true_next" : "tbl_act_14",
5620 "false_next" : "tbl_act_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005621 },
5622 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005623 "name" : "node_33",
5624 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005625 "expression" : {
5626 "type" : "expression",
5627 "value" : {
5628 "op" : "not",
5629 "left" : null,
5630 "right" : {
5631 "type" : "expression",
5632 "value" : {
5633 "op" : "d2b",
5634 "left" : null,
5635 "right" : {
5636 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005637 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005638 }
5639 }
5640 }
5641 }
5642 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005643 "true_next" : "tbl_act_16",
5644 "false_next" : "node_35"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005645 },
5646 {
5647 "name" : "node_35",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005648 "id" : 10,
5649 "source_info" : {
5650 "filename" : "fabric.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005651 "line" : 67,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005652 "column" : 12,
5653 "source_fragment" : "fabric_metadata.skip_forwarding == false"
5654 },
5655 "expression" : {
5656 "type" : "expression",
5657 "value" : {
5658 "op" : "==",
5659 "left" : {
5660 "type" : "expression",
5661 "value" : {
5662 "op" : "d2b",
5663 "left" : null,
5664 "right" : {
5665 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005666 "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005667 }
5668 }
5669 },
5670 "right" : {
5671 "type" : "bool",
5672 "value" : false
5673 }
5674 }
5675 },
5676 "true_next" : "node_36",
5677 "false_next" : "FabricIngress.acl.acl"
5678 },
5679 {
5680 "name" : "node_36",
5681 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005682 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005683 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005684 "line" : 141,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005685 "column" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005686 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
5687 },
5688 "expression" : {
5689 "type" : "expression",
5690 "value" : {
5691 "op" : "==",
5692 "left" : {
5693 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005694 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005695 },
5696 "right" : {
5697 "type" : "hexstr",
5698 "value" : "0x00"
5699 }
5700 }
5701 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005702 "true_next" : "FabricIngress.forwarding.bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005703 "false_next" : "node_38"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005704 },
5705 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005706 "name" : "node_38",
5707 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005708 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005709 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005710 "line" : 142,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005711 "column" : 17,
5712 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
5713 },
5714 "expression" : {
5715 "type" : "expression",
5716 "value" : {
5717 "op" : "==",
5718 "left" : {
5719 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005720 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005721 },
5722 "right" : {
5723 "type" : "hexstr",
5724 "value" : "0x01"
5725 }
5726 }
5727 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005728 "true_next" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005729 "false_next" : "node_40"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005730 },
5731 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005732 "name" : "node_40",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005733 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005734 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005735 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005736 "line" : 143,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005737 "column" : 17,
5738 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
5739 },
5740 "expression" : {
5741 "type" : "expression",
5742 "value" : {
5743 "op" : "==",
5744 "left" : {
5745 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005746 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005747 },
5748 "right" : {
5749 "type" : "hexstr",
5750 "value" : "0x02"
5751 }
5752 }
5753 },
Charles Chan384aea22018-08-23 22:08:02 -07005754 "true_next" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005755 "false_next" : "FabricIngress.acl.acl"
5756 },
5757 {
5758 "name" : "node_43",
5759 "id" : 14,
5760 "source_info" : {
5761 "filename" : "fabric.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005762 "line" : 71,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005763 "column" : 12,
5764 "source_fragment" : "fabric_metadata.skip_next == false"
5765 },
5766 "expression" : {
5767 "type" : "expression",
5768 "value" : {
5769 "op" : "==",
5770 "left" : {
5771 "type" : "expression",
5772 "value" : {
5773 "op" : "d2b",
5774 "left" : null,
5775 "right" : {
5776 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005777 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005778 }
5779 }
5780 },
5781 "right" : {
5782 "type" : "bool",
5783 "value" : false
5784 }
5785 }
5786 },
5787 "false_next" : null,
5788 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005789 },
5790 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005791 "name" : "node_48",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005792 "id" : 15,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005793 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005794 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005795 "line" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005796 "column" : 12,
5797 "source_fragment" : "standard_metadata.egress_spec < 511"
5798 },
5799 "expression" : {
5800 "type" : "expression",
5801 "value" : {
5802 "op" : "<",
5803 "left" : {
5804 "type" : "field",
5805 "value" : ["standard_metadata", "egress_spec"]
5806 },
5807 "right" : {
5808 "type" : "hexstr",
5809 "value" : "0x01ff"
5810 }
5811 }
5812 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005813 "true_next" : "tbl_act_17",
5814 "false_next" : "node_50"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005815 },
5816 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005817 "name" : "node_50",
5818 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005819 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005820 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005821 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005822 "column" : 12,
5823 "source_fragment" : "standard_metadata.ingress_port < 511"
5824 },
5825 "expression" : {
5826 "type" : "expression",
5827 "value" : {
5828 "op" : "<",
5829 "left" : {
5830 "type" : "field",
5831 "value" : ["standard_metadata", "ingress_port"]
5832 },
5833 "right" : {
5834 "type" : "hexstr",
5835 "value" : "0x01ff"
5836 }
5837 }
5838 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005839 "false_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005840 "true_next" : "tbl_act_18"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005841 }
5842 ]
5843 },
5844 {
5845 "name" : "egress",
5846 "id" : 1,
5847 "source_info" : {
5848 "filename" : "fabric.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005849 "line" : 85,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005850 "column" : 8,
5851 "source_fragment" : "FabricEgress"
5852 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005853 "init_table" : "node_54",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005854 "tables" : [
5855 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005856 "name" : "tbl_act_19",
5857 "id" : 33,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005858 "key" : [],
5859 "match_type" : "exact",
5860 "type" : "simple",
5861 "max_size" : 1024,
5862 "with_counters" : false,
5863 "support_timeout" : false,
5864 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005865 "action_ids" : [57],
5866 "actions" : ["act_19"],
5867 "base_default_next" : "tbl_act_20",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005868 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005869 "act_19" : "tbl_act_20"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005870 },
5871 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005872 "action_id" : 57,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005873 "action_const" : true,
5874 "action_data" : [],
5875 "action_entry_const" : true
5876 }
5877 },
5878 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005879 "name" : "tbl_act_20",
5880 "id" : 34,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005881 "key" : [],
5882 "match_type" : "exact",
5883 "type" : "simple",
5884 "max_size" : 1024,
5885 "with_counters" : false,
5886 "support_timeout" : false,
5887 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005888 "action_ids" : [58],
5889 "actions" : ["act_20"],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005890 "base_default_next" : null,
5891 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005892 "act_20" : null
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005893 },
5894 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005895 "action_id" : 58,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005896 "action_const" : true,
5897 "action_data" : [],
5898 "action_entry_const" : true
5899 }
5900 },
5901 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005902 "name" : "tbl_act_21",
5903 "id" : 35,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005904 "key" : [],
5905 "match_type" : "exact",
5906 "type" : "simple",
5907 "max_size" : 1024,
5908 "with_counters" : false,
5909 "support_timeout" : false,
5910 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005911 "action_ids" : [59],
5912 "actions" : ["act_21"],
5913 "base_default_next" : "node_61",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005914 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005915 "act_21" : "node_61"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005916 },
5917 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005918 "action_id" : 59,
5919 "action_const" : true,
5920 "action_data" : [],
5921 "action_entry_const" : true
5922 }
5923 },
5924 {
5925 "name" : "tbl_egress_next_pop_mpls_if_present",
5926 "id" : 36,
5927 "key" : [],
5928 "match_type" : "exact",
5929 "type" : "simple",
5930 "max_size" : 1024,
5931 "with_counters" : false,
5932 "support_timeout" : false,
5933 "direct_meters" : null,
5934 "action_ids" : [53],
5935 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
5936 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
5937 "next_tables" : {
5938 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
5939 },
5940 "default_entry" : {
5941 "action_id" : 53,
5942 "action_const" : true,
5943 "action_data" : [],
5944 "action_entry_const" : true
5945 }
5946 },
5947 {
5948 "name" : "tbl_egress_next_set_mpls",
5949 "id" : 37,
5950 "key" : [],
5951 "match_type" : "exact",
5952 "type" : "simple",
5953 "max_size" : 1024,
5954 "with_counters" : false,
5955 "support_timeout" : false,
5956 "direct_meters" : null,
5957 "action_ids" : [54],
5958 "actions" : ["FabricEgress.egress_next.set_mpls"],
5959 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
5960 "next_tables" : {
5961 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
5962 },
5963 "default_entry" : {
5964 "action_id" : 54,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005965 "action_const" : true,
5966 "action_data" : [],
5967 "action_entry_const" : true
5968 }
5969 },
5970 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005971 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005972 "id" : 38,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005973 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005974 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005975 "line" : 291,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005976 "column" : 10,
5977 "source_fragment" : "egress_vlan"
5978 },
5979 "key" : [
5980 {
5981 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005982 "name" : "vlan_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005983 "target" : ["scalars", "fabric_metadata_t._vlan_id2"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005984 "mask" : null
5985 },
5986 {
5987 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005988 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005989 "target" : ["standard_metadata", "egress_port"],
5990 "mask" : null
5991 }
5992 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005993 "match_type" : "exact",
5994 "type" : "simple",
5995 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08005996 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005997 "support_timeout" : false,
5998 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005999 "action_ids" : [56, 51],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006000 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006001 "base_default_next" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006002 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006003 "__HIT__" : "tbl_act_22",
6004 "__MISS__" : "tbl_act_23"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006005 },
6006 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006007 "action_id" : 51,
6008 "action_const" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006009 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006010 "action_entry_const" : true
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006011 }
6012 },
6013 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006014 "name" : "tbl_act_22",
6015 "id" : 39,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006016 "key" : [],
6017 "match_type" : "exact",
6018 "type" : "simple",
6019 "max_size" : 1024,
6020 "with_counters" : false,
6021 "support_timeout" : false,
6022 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006023 "action_ids" : [60],
6024 "actions" : ["act_22"],
6025 "base_default_next" : "node_68",
6026 "next_tables" : {
6027 "act_22" : "node_68"
6028 },
6029 "default_entry" : {
6030 "action_id" : 60,
6031 "action_const" : true,
6032 "action_data" : [],
6033 "action_entry_const" : true
6034 }
6035 },
6036 {
6037 "name" : "tbl_act_23",
6038 "id" : 40,
6039 "key" : [],
6040 "match_type" : "exact",
6041 "type" : "simple",
6042 "max_size" : 1024,
6043 "with_counters" : false,
6044 "support_timeout" : false,
6045 "direct_meters" : null,
6046 "action_ids" : [61],
6047 "actions" : ["act_23"],
6048 "base_default_next" : "node_68",
6049 "next_tables" : {
6050 "act_23" : "node_68"
6051 },
6052 "default_entry" : {
6053 "action_id" : 61,
6054 "action_const" : true,
6055 "action_data" : [],
6056 "action_entry_const" : true
6057 }
6058 },
6059 {
6060 "name" : "tbl_egress_next_push_vlan",
6061 "id" : 41,
6062 "key" : [],
6063 "match_type" : "exact",
6064 "type" : "simple",
6065 "max_size" : 1024,
6066 "with_counters" : false,
6067 "support_timeout" : false,
6068 "direct_meters" : null,
6069 "action_ids" : [55],
6070 "actions" : ["FabricEgress.egress_next.push_vlan"],
6071 "base_default_next" : "node_71",
6072 "next_tables" : {
6073 "FabricEgress.egress_next.push_vlan" : "node_71"
6074 },
6075 "default_entry" : {
6076 "action_id" : 55,
6077 "action_const" : true,
6078 "action_data" : [],
6079 "action_entry_const" : true
6080 }
6081 },
6082 {
6083 "name" : "tbl_act_24",
6084 "id" : 42,
6085 "key" : [],
6086 "match_type" : "exact",
6087 "type" : "simple",
6088 "max_size" : 1024,
6089 "with_counters" : false,
6090 "support_timeout" : false,
6091 "direct_meters" : null,
6092 "action_ids" : [63],
6093 "actions" : ["act_25"],
6094 "base_default_next" : "node_73",
6095 "next_tables" : {
6096 "act_25" : "node_73"
6097 },
6098 "default_entry" : {
6099 "action_id" : 63,
6100 "action_const" : true,
6101 "action_data" : [],
6102 "action_entry_const" : true
6103 }
6104 },
6105 {
6106 "name" : "tbl_act_25",
6107 "id" : 43,
6108 "key" : [],
6109 "match_type" : "exact",
6110 "type" : "simple",
6111 "max_size" : 1024,
6112 "with_counters" : false,
6113 "support_timeout" : false,
6114 "direct_meters" : null,
6115 "action_ids" : [62],
6116 "actions" : ["act_24"],
6117 "base_default_next" : "node_79",
6118 "next_tables" : {
6119 "act_24" : "node_79"
6120 },
6121 "default_entry" : {
6122 "action_id" : 62,
6123 "action_const" : true,
6124 "action_data" : [],
6125 "action_entry_const" : true
6126 }
6127 },
6128 {
6129 "name" : "tbl_act_26",
6130 "id" : 44,
6131 "key" : [],
6132 "match_type" : "exact",
6133 "type" : "simple",
6134 "max_size" : 1024,
6135 "with_counters" : false,
6136 "support_timeout" : false,
6137 "direct_meters" : null,
6138 "action_ids" : [65],
6139 "actions" : ["act_27"],
6140 "base_default_next" : "node_77",
6141 "next_tables" : {
6142 "act_27" : "node_77"
6143 },
6144 "default_entry" : {
6145 "action_id" : 65,
6146 "action_const" : true,
6147 "action_data" : [],
6148 "action_entry_const" : true
6149 }
6150 },
6151 {
6152 "name" : "tbl_act_27",
6153 "id" : 45,
6154 "key" : [],
6155 "match_type" : "exact",
6156 "type" : "simple",
6157 "max_size" : 1024,
6158 "with_counters" : false,
6159 "support_timeout" : false,
6160 "direct_meters" : null,
6161 "action_ids" : [64],
6162 "actions" : ["act_26"],
6163 "base_default_next" : "node_79",
6164 "next_tables" : {
6165 "act_26" : "node_79"
6166 },
6167 "default_entry" : {
6168 "action_id" : 64,
6169 "action_const" : true,
6170 "action_data" : [],
6171 "action_entry_const" : true
6172 }
6173 },
6174 {
6175 "name" : "tbl_spgw_egress_gtpu_encap",
6176 "id" : 46,
6177 "key" : [],
6178 "match_type" : "exact",
6179 "type" : "simple",
6180 "max_size" : 1024,
6181 "with_counters" : false,
6182 "support_timeout" : false,
6183 "direct_meters" : null,
6184 "action_ids" : [52],
Yi Tseng27b9bc02018-04-12 14:52:40 +08006185 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006186 "base_default_next" : null,
6187 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006188 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006189 },
6190 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006191 "action_id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006192 "action_const" : true,
6193 "action_data" : [],
6194 "action_entry_const" : true
6195 }
6196 }
6197 ],
6198 "action_profiles" : [],
6199 "conditionals" : [
6200 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006201 "name" : "node_54",
6202 "id" : 17,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006203 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006204 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006205 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006206 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006207 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006208 },
6209 "expression" : {
6210 "type" : "expression",
6211 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006212 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006213 "left" : {
6214 "type" : "expression",
6215 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006216 "op" : "d2b",
6217 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006218 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006219 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006220 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out12"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02006221 }
6222 }
6223 },
6224 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006225 "type" : "bool",
6226 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02006227 }
6228 }
6229 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006230 "true_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006231 "false_next" : "node_55"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006232 },
6233 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006234 "name" : "node_55",
6235 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006236 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006237 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006238 "line" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006239 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08006240 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006241 },
6242 "expression" : {
6243 "type" : "expression",
6244 "value" : {
6245 "op" : "==",
6246 "left" : {
6247 "type" : "field",
6248 "value" : ["standard_metadata", "egress_port"]
6249 },
6250 "right" : {
6251 "type" : "hexstr",
6252 "value" : "0x00ff"
6253 }
6254 }
6255 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006256 "true_next" : "node_56",
6257 "false_next" : "node_59"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006258 },
6259 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006260 "name" : "node_56",
6261 "id" : 19,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006262 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006263 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006264 "line" : 44,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006265 "column" : 16,
6266 "source_fragment" : "fabric_metadata.is_multicast == true && ..."
6267 },
6268 "expression" : {
6269 "type" : "expression",
6270 "value" : {
6271 "op" : "and",
6272 "left" : {
6273 "type" : "expression",
6274 "value" : {
6275 "op" : "==",
6276 "left" : {
6277 "type" : "expression",
6278 "value" : {
6279 "op" : "d2b",
6280 "left" : null,
6281 "right" : {
6282 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006283 "value" : ["scalars", "fabric_metadata_t._is_multicast11"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006284 }
6285 }
6286 },
6287 "right" : {
6288 "type" : "bool",
6289 "value" : true
6290 }
6291 }
6292 },
6293 "right" : {
6294 "type" : "expression",
6295 "value" : {
6296 "op" : "==",
6297 "left" : {
6298 "type" : "expression",
6299 "value" : {
6300 "op" : "d2b",
6301 "left" : null,
6302 "right" : {
6303 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006304 "value" : ["scalars", "fabric_metadata_t._clone_to_cpu13"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006305 }
6306 }
6307 },
6308 "right" : {
6309 "type" : "bool",
6310 "value" : false
6311 }
6312 }
6313 }
6314 }
6315 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006316 "true_next" : "tbl_act_19",
6317 "false_next" : "tbl_act_20"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006318 },
6319 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006320 "name" : "node_59",
6321 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006322 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006323 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006324 "line" : 306,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006325 "column" : 12,
6326 "source_fragment" : "fabric_metadata.is_multicast == true ..."
6327 },
6328 "expression" : {
6329 "type" : "expression",
6330 "value" : {
6331 "op" : "and",
6332 "left" : {
6333 "type" : "expression",
6334 "value" : {
6335 "op" : "==",
6336 "left" : {
6337 "type" : "expression",
6338 "value" : {
6339 "op" : "d2b",
6340 "left" : null,
6341 "right" : {
6342 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006343 "value" : ["scalars", "fabric_metadata_t._is_multicast11"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006344 }
6345 }
6346 },
6347 "right" : {
6348 "type" : "bool",
6349 "value" : true
6350 }
6351 }
6352 },
6353 "right" : {
6354 "type" : "expression",
6355 "value" : {
6356 "op" : "==",
6357 "left" : {
6358 "type" : "field",
6359 "value" : ["standard_metadata", "ingress_port"]
6360 },
6361 "right" : {
6362 "type" : "field",
6363 "value" : ["standard_metadata", "egress_port"]
6364 }
6365 }
6366 }
6367 }
6368 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006369 "true_next" : "tbl_act_21",
6370 "false_next" : "node_61"
6371 },
6372 {
6373 "name" : "node_61",
6374 "id" : 21,
6375 "source_info" : {
6376 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006377 "line" : 311,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006378 "column" : 12,
6379 "source_fragment" : "fabric_metadata.mpls_label == 0"
6380 },
6381 "expression" : {
6382 "type" : "expression",
6383 "value" : {
6384 "op" : "==",
6385 "left" : {
6386 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006387 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006388 },
6389 "right" : {
6390 "type" : "hexstr",
6391 "value" : "0x000000"
6392 }
6393 }
6394 },
6395 "true_next" : "node_62",
6396 "false_next" : "tbl_egress_next_set_mpls"
6397 },
6398 {
6399 "name" : "node_62",
6400 "id" : 22,
6401 "source_info" : {
6402 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006403 "line" : 312,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006404 "column" : 16,
6405 "source_fragment" : "hdr.mpls.isValid()"
6406 },
6407 "expression" : {
6408 "type" : "expression",
6409 "value" : {
6410 "op" : "d2b",
6411 "left" : null,
6412 "right" : {
6413 "type" : "field",
6414 "value" : ["mpls", "$valid$"]
6415 }
6416 }
6417 },
6418 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006419 "false_next" : "FabricEgress.egress_next.egress_vlan"
6420 },
6421 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006422 "name" : "node_68",
6423 "id" : 23,
6424 "source_info" : {
6425 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006426 "line" : 317,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006427 "column" : 12,
6428 "source_fragment" : "!egress_vlan.apply().hit"
6429 },
6430 "expression" : {
6431 "type" : "expression",
6432 "value" : {
6433 "op" : "not",
6434 "left" : null,
6435 "right" : {
6436 "type" : "expression",
6437 "value" : {
6438 "op" : "d2b",
6439 "left" : null,
6440 "right" : {
6441 "type" : "field",
6442 "value" : ["scalars", "egress_next_tmp"]
6443 }
6444 }
6445 }
6446 }
6447 },
6448 "true_next" : "node_69",
6449 "false_next" : "node_71"
6450 },
6451 {
6452 "name" : "node_69",
6453 "id" : 24,
6454 "source_info" : {
6455 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006456 "line" : 319,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006457 "column" : 16,
6458 "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
6459 },
6460 "expression" : {
6461 "type" : "expression",
6462 "value" : {
6463 "op" : "!=",
6464 "left" : {
6465 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006466 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006467 },
6468 "right" : {
6469 "type" : "hexstr",
6470 "value" : "0x0ffe"
6471 }
6472 }
6473 },
6474 "true_next" : "tbl_egress_next_push_vlan",
6475 "false_next" : "node_71"
6476 },
6477 {
6478 "name" : "node_71",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006479 "id" : 25,
6480 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006481 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006482 "line" : 325,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006483 "column" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006484 "source_fragment" : "hdr.mpls.isValid()"
6485 },
6486 "expression" : {
6487 "type" : "expression",
6488 "value" : {
6489 "op" : "d2b",
6490 "left" : null,
6491 "right" : {
6492 "type" : "field",
6493 "value" : ["mpls", "$valid$"]
6494 }
6495 }
6496 },
6497 "true_next" : "tbl_act_24",
6498 "false_next" : "node_75"
6499 },
6500 {
6501 "name" : "node_73",
6502 "id" : 26,
6503 "source_info" : {
6504 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006505 "line" : 327,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006506 "column" : 16,
6507 "source_fragment" : "hdr.mpls.ttl == 0"
6508 },
6509 "expression" : {
6510 "type" : "expression",
6511 "value" : {
6512 "op" : "==",
6513 "left" : {
6514 "type" : "field",
6515 "value" : ["mpls", "ttl"]
6516 },
6517 "right" : {
6518 "type" : "hexstr",
6519 "value" : "0x00"
6520 }
6521 }
6522 },
6523 "true_next" : "tbl_act_25",
6524 "false_next" : "node_79"
6525 },
6526 {
6527 "name" : "node_75",
6528 "id" : 27,
6529 "source_info" : {
6530 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006531 "line" : 329,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006532 "column" : 15,
6533 "source_fragment" : "hdr.ipv4.isValid()"
6534 },
6535 "expression" : {
6536 "type" : "expression",
6537 "value" : {
6538 "op" : "d2b",
6539 "left" : null,
6540 "right" : {
6541 "type" : "field",
6542 "value" : ["ipv4", "$valid$"]
6543 }
6544 }
6545 },
6546 "true_next" : "tbl_act_26",
6547 "false_next" : "node_79"
6548 },
6549 {
6550 "name" : "node_77",
6551 "id" : 28,
6552 "source_info" : {
6553 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006554 "line" : 331,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006555 "column" : 20,
6556 "source_fragment" : "hdr.ipv4.ttl == 0"
6557 },
6558 "expression" : {
6559 "type" : "expression",
6560 "value" : {
6561 "op" : "==",
6562 "left" : {
6563 "type" : "field",
6564 "value" : ["ipv4", "ttl"]
6565 },
6566 "right" : {
6567 "type" : "hexstr",
6568 "value" : "0x00"
6569 }
6570 }
6571 },
6572 "true_next" : "tbl_act_27",
6573 "false_next" : "node_79"
6574 },
6575 {
6576 "name" : "node_79",
6577 "id" : 29,
6578 "source_info" : {
6579 "filename" : "include/spgw.p4",
6580 "line" : 226,
6581 "column" : 12,
6582 "source_fragment" : "fabric_meta.spgw.direction == SPGW_DIR_DOWNLINK"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006583 },
6584 "expression" : {
6585 "type" : "expression",
6586 "value" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006587 "op" : "==",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006588 "left" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006589 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006590 "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006591 },
6592 "right" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006593 "type" : "hexstr",
6594 "value" : "0x02"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006595 }
6596 }
6597 },
6598 "false_next" : null,
6599 "true_next" : "tbl_spgw_egress_gtpu_encap"
6600 }
6601 ]
6602 }
6603 ],
6604 "checksums" : [
6605 {
6606 "name" : "cksum",
6607 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006608 "source_info" : {
6609 "filename" : "include/checksum.p4",
6610 "line" : 28,
6611 "column" : 8,
6612 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
6613 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006614 "target" : ["ipv4", "hdr_checksum"],
6615 "type" : "generic",
6616 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006617 "verify" : false,
6618 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006619 "if_cond" : {
6620 "type" : "expression",
6621 "value" : {
6622 "op" : "d2b",
6623 "left" : null,
6624 "right" : {
6625 "type" : "field",
6626 "value" : ["ipv4", "$valid$"]
6627 }
6628 }
6629 }
6630 },
6631 {
6632 "name" : "cksum_0",
6633 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006634 "source_info" : {
6635 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006636 "line" : 242,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006637 "column" : 8,
6638 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
6639 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006640 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006641 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006642 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006643 "verify" : false,
6644 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006645 "if_cond" : {
6646 "type" : "expression",
6647 "value" : {
6648 "op" : "d2b",
6649 "left" : null,
6650 "right" : {
6651 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006652 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006653 }
6654 }
6655 }
6656 },
6657 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006658 "name" : "cksum_1",
6659 "id" : 2,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006660 "source_info" : {
6661 "filename" : "include/checksum.p4",
6662 "line" : 57,
6663 "column" : 8,
6664 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
6665 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006666 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006667 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006668 "calculation" : "calc_1",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006669 "verify" : true,
6670 "update" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006671 "if_cond" : {
6672 "type" : "expression",
6673 "value" : {
6674 "op" : "d2b",
6675 "left" : null,
6676 "right" : {
6677 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006678 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006679 }
6680 }
6681 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006682 }
6683 ],
6684 "force_arith" : [],
6685 "extern_instances" : [],
6686 "field_aliases" : [
6687 [
6688 "queueing_metadata.enq_timestamp",
6689 ["standard_metadata", "enq_timestamp"]
6690 ],
6691 [
6692 "queueing_metadata.enq_qdepth",
6693 ["standard_metadata", "enq_qdepth"]
6694 ],
6695 [
6696 "queueing_metadata.deq_timedelta",
6697 ["standard_metadata", "deq_timedelta"]
6698 ],
6699 [
6700 "queueing_metadata.deq_qdepth",
6701 ["standard_metadata", "deq_qdepth"]
6702 ],
6703 [
6704 "intrinsic_metadata.ingress_global_timestamp",
6705 ["standard_metadata", "ingress_global_timestamp"]
6706 ],
6707 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08006708 "intrinsic_metadata.egress_global_timestamp",
6709 ["standard_metadata", "egress_global_timestamp"]
6710 ],
6711 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006712 "intrinsic_metadata.lf_field_list",
6713 ["standard_metadata", "lf_field_list"]
6714 ],
6715 [
6716 "intrinsic_metadata.mcast_grp",
6717 ["standard_metadata", "mcast_grp"]
6718 ],
6719 [
6720 "intrinsic_metadata.resubmit_flag",
6721 ["standard_metadata", "resubmit_flag"]
6722 ],
6723 [
6724 "intrinsic_metadata.egress_rid",
6725 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08006726 ],
6727 [
6728 "intrinsic_metadata.recirculate_flag",
6729 ["standard_metadata", "recirculate_flag"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006730 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006731 ],
6732 "program" : "fabric.p4",
6733 "__meta__" : {
6734 "version" : [2, 18],
6735 "compiler" : "https://github.com/p4lang/p4c"
6736 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08006737}