blob: 795c06710225b1590a95e3aa182030aa86c19c10 [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],
16 ["fabric_metadata_t.eth_type", 16, false],
17 ["fabric_metadata_t.ip_eth_type", 16, false],
18 ["fabric_metadata_t.vlan_id", 12, false],
19 ["fabric_metadata_t.vlan_pri", 3, false],
20 ["fabric_metadata_t.vlan_cfi", 1, false],
21 ["fabric_metadata_t.mpls_label", 20, false],
22 ["fabric_metadata_t.mpls_ttl", 8, false],
23 ["fabric_metadata_t.skip_forwarding", 1, false],
24 ["fabric_metadata_t.skip_next", 1, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080025 ["fabric_metadata_t.fwd_type", 3, false],
26 ["fabric_metadata_t.next_id", 32, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020027 ["fabric_metadata_t.is_multicast", 1, false],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -070028 ["fabric_metadata_t.is_controller_packet_out", 1, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020029 ["fabric_metadata_t.clone_to_cpu", 1, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080030 ["fabric_metadata_t.ip_proto", 8, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080031 ["fabric_metadata_t.l4_sport", 16, false],
32 ["fabric_metadata_t.l4_dport", 16, false],
33 ["_padding_1", 3, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080034 ]
35 },
36 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020037 "name" : "standard_metadata",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080038 "id" : 1,
39 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020040 ["ingress_port", 9, false],
41 ["egress_spec", 9, false],
42 ["egress_port", 9, false],
43 ["clone_spec", 32, false],
44 ["instance_type", 32, false],
45 ["drop", 1, false],
46 ["recirculate_port", 16, false],
47 ["packet_length", 32, false],
48 ["enq_timestamp", 32, false],
49 ["enq_qdepth", 19, false],
50 ["deq_timedelta", 32, false],
51 ["deq_qdepth", 19, false],
52 ["ingress_global_timestamp", 48, false],
53 ["egress_global_timestamp", 48, false],
54 ["lf_field_list", 32, false],
55 ["mcast_grp", 16, false],
56 ["resubmit_flag", 32, false],
57 ["egress_rid", 16, false],
58 ["checksum_error", 1, false],
59 ["recirculate_flag", 32, false],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -070060 ["parser_error", 32, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020061 ["_padding", 5, false]
62 ]
63 },
64 {
65 "name" : "ethernet_t",
66 "id" : 2,
67 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080068 ["dst_addr", 48, false],
69 ["src_addr", 48, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080070 ["eth_type", 16, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080071 ]
72 },
73 {
74 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020075 "id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080076 "fields" : [
77 ["pri", 3, false],
78 ["cfi", 1, false],
79 ["vlan_id", 12, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080080 ["eth_type", 16, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080081 ]
82 },
83 {
84 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020085 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080086 "fields" : [
87 ["label", 20, false],
88 ["tc", 3, false],
89 ["bos", 1, false],
90 ["ttl", 8, false]
91 ]
92 },
93 {
94 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020095 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080096 "fields" : [
97 ["version", 4, false],
98 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +090099 ["dscp", 6, false],
100 ["ecn", 2, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800101 ["total_len", 16, false],
102 ["identification", 16, false],
103 ["flags", 3, false],
104 ["frag_offset", 13, false],
105 ["ttl", 8, false],
106 ["protocol", 8, false],
107 ["hdr_checksum", 16, false],
108 ["src_addr", 32, false],
109 ["dst_addr", 32, false]
110 ]
111 },
112 {
113 "name" : "udp_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200114 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800115 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800116 ["sport", 16, false],
117 ["dport", 16, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800118 ["len", 16, false],
119 ["checksum", 16, false]
120 ]
121 },
122 {
123 "name" : "gtpu_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200124 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800125 "fields" : [
126 ["version", 3, false],
127 ["pt", 1, false],
128 ["spare", 1, false],
129 ["ex_flag", 1, false],
130 ["seq_flag", 1, false],
131 ["npdu_flag", 1, false],
132 ["msgtype", 8, false],
133 ["msglen", 16, false],
134 ["teid", 32, false]
135 ]
136 },
137 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800138 "name" : "tcp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800139 "id" : 8,
140 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800141 ["sport", 16, false],
142 ["dport", 16, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800143 ["seq_no", 32, false],
144 ["ack_no", 32, false],
145 ["data_offset", 4, false],
146 ["res", 3, false],
147 ["ecn", 3, false],
148 ["ctrl", 6, false],
149 ["window", 16, false],
150 ["checksum", 16, false],
151 ["urgent_ptr", 16, false]
152 ]
153 },
154 {
155 "name" : "icmp_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800156 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800157 "fields" : [
158 ["icmp_type", 8, false],
159 ["icmp_code", 8, false],
160 ["checksum", 16, false],
161 ["identifier", 16, false],
162 ["sequence_number", 16, false],
163 ["timestamp", 64, false]
164 ]
165 },
166 {
167 "name" : "packet_out_header_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800168 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800169 "fields" : [
170 ["egress_port", 9, false],
171 ["_pad", 7, false]
172 ]
173 },
174 {
175 "name" : "packet_in_header_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800176 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800177 "fields" : [
178 ["ingress_port", 9, false],
179 ["_pad", 7, false]
180 ]
181 },
182 {
183 "name" : "spgw_meta_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800184 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800185 "fields" : [
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700186 ["direction", 2, false],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800187 ["ipv4_len", 16, false],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800188 ["teid", 32, false],
189 ["s1u_enb_addr", 32, false],
190 ["s1u_sgw_addr", 32, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200191 ["_padding_0", 6, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800192 ]
193 }
194 ],
195 "headers" : [
196 {
197 "name" : "scalars",
198 "id" : 0,
199 "header_type" : "scalars_0",
200 "metadata" : true,
201 "pi_omit" : true
202 },
203 {
204 "name" : "standard_metadata",
205 "id" : 1,
206 "header_type" : "standard_metadata",
207 "metadata" : true,
208 "pi_omit" : true
209 },
210 {
211 "name" : "ethernet",
212 "id" : 2,
213 "header_type" : "ethernet_t",
214 "metadata" : false,
215 "pi_omit" : true
216 },
217 {
218 "name" : "vlan_tag",
219 "id" : 3,
220 "header_type" : "vlan_tag_t",
221 "metadata" : false,
222 "pi_omit" : true
223 },
224 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800225 "name" : "inner_vlan_tag",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800226 "id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800227 "header_type" : "vlan_tag_t",
228 "metadata" : false,
229 "pi_omit" : true
230 },
231 {
232 "name" : "mpls",
233 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800234 "header_type" : "mpls_t",
235 "metadata" : false,
236 "pi_omit" : true
237 },
238 {
239 "name" : "gtpu_ipv4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800240 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800241 "header_type" : "ipv4_t",
242 "metadata" : false,
243 "pi_omit" : true
244 },
245 {
246 "name" : "gtpu_udp",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800247 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800248 "header_type" : "udp_t",
249 "metadata" : false,
250 "pi_omit" : true
251 },
252 {
253 "name" : "gtpu",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800254 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800255 "header_type" : "gtpu_t",
256 "metadata" : false,
257 "pi_omit" : true
258 },
259 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700260 "name" : "inner_ipv4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800261 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800262 "header_type" : "ipv4_t",
263 "metadata" : false,
264 "pi_omit" : true
265 },
266 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700267 "name" : "inner_udp",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800268 "id" : 10,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700269 "header_type" : "udp_t",
270 "metadata" : false,
271 "pi_omit" : true
272 },
273 {
274 "name" : "ipv4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700275 "id" : 11,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800276 "header_type" : "ipv4_t",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800277 "metadata" : false,
278 "pi_omit" : true
279 },
280 {
281 "name" : "tcp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700282 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800283 "header_type" : "tcp_t",
284 "metadata" : false,
285 "pi_omit" : true
286 },
287 {
288 "name" : "udp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700289 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800290 "header_type" : "udp_t",
291 "metadata" : false,
292 "pi_omit" : true
293 },
294 {
295 "name" : "icmp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700296 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800297 "header_type" : "icmp_t",
298 "metadata" : false,
299 "pi_omit" : true
300 },
301 {
302 "name" : "packet_out",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700303 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800304 "header_type" : "packet_out_header_t",
305 "metadata" : false,
306 "pi_omit" : true
307 },
308 {
309 "name" : "packet_in",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700310 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800311 "header_type" : "packet_in_header_t",
312 "metadata" : false,
313 "pi_omit" : true
314 },
315 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800316 "name" : "userMetadata.spgw",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700317 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800318 "header_type" : "spgw_meta_t",
319 "metadata" : true,
320 "pi_omit" : true
321 }
322 ],
323 "header_stacks" : [],
324 "header_union_types" : [],
325 "header_unions" : [],
326 "header_union_stacks" : [],
327 "field_lists" : [],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700328 "errors" : [
329 ["NoError", 1],
330 ["PacketTooShort", 2],
331 ["NoMatch", 3],
332 ["StackOutOfBounds", 4],
333 ["HeaderTooShort", 5],
334 ["ParserTimeout", 6]
335 ],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800336 "enums" : [],
337 "parsers" : [
338 {
339 "name" : "parser",
340 "id" : 0,
341 "init_state" : "start",
342 "parse_states" : [
343 {
344 "name" : "start",
345 "id" : 0,
346 "parser_ops" : [],
347 "transitions" : [
348 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800349 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800350 "value" : "0x00ff",
351 "mask" : null,
352 "next_state" : "parse_packet_out"
353 },
354 {
355 "value" : "default",
356 "mask" : null,
357 "next_state" : "parse_ethernet"
358 }
359 ],
360 "transition_key" : [
361 {
362 "type" : "field",
363 "value" : ["standard_metadata", "ingress_port"]
364 }
365 ]
366 },
367 {
368 "name" : "parse_packet_out",
369 "id" : 1,
370 "parser_ops" : [
371 {
372 "parameters" : [
373 {
374 "type" : "regular",
375 "value" : "packet_out"
376 }
377 ],
378 "op" : "extract"
379 }
380 ],
381 "transitions" : [
382 {
383 "value" : "default",
384 "mask" : null,
385 "next_state" : "parse_ethernet"
386 }
387 ],
388 "transition_key" : []
389 },
390 {
391 "name" : "parse_ethernet",
392 "id" : 2,
393 "parser_ops" : [
394 {
395 "parameters" : [
396 {
397 "type" : "regular",
398 "value" : "ethernet"
399 }
400 ],
401 "op" : "extract"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800402 },
403 {
404 "parameters" : [
405 {
406 "type" : "field",
407 "value" : ["scalars", "fabric_metadata_t.eth_type"]
408 },
409 {
410 "type" : "field",
411 "value" : ["ethernet", "eth_type"]
412 }
413 ],
414 "op" : "set"
415 },
416 {
417 "parameters" : [
418 {
419 "type" : "field",
420 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
421 },
422 {
423 "type" : "hexstr",
424 "value" : "0x0ffe"
425 }
426 ],
427 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800428 }
429 ],
430 "transitions" : [
431 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800432 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800433 "value" : "0x8100",
434 "mask" : null,
435 "next_state" : "parse_vlan_tag"
436 },
437 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800438 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800439 "value" : "0x8847",
440 "mask" : null,
441 "next_state" : "parse_mpls"
442 },
443 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800444 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800445 "value" : "0x0800",
446 "mask" : null,
447 "next_state" : "parse_ipv4"
448 },
449 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800450 "value" : "default",
451 "mask" : null,
452 "next_state" : null
453 }
454 ],
455 "transition_key" : [
456 {
457 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800458 "value" : ["ethernet", "eth_type"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800459 }
460 ]
461 },
462 {
463 "name" : "parse_vlan_tag",
464 "id" : 3,
465 "parser_ops" : [
466 {
467 "parameters" : [
468 {
469 "type" : "regular",
470 "value" : "vlan_tag"
471 }
472 ],
473 "op" : "extract"
474 }
475 ],
476 "transitions" : [
477 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800478 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800479 "value" : "0x0800",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800480 "mask" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800481 "next_state" : "parse_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800482 },
483 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800484 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800485 "value" : "0x8847",
486 "mask" : null,
487 "next_state" : "parse_mpls"
488 },
489 {
490 "type" : "hexstr",
491 "value" : "0x8100",
492 "mask" : null,
493 "next_state" : "parse_inner_vlan_tag"
494 },
495 {
496 "value" : "default",
497 "mask" : null,
498 "next_state" : null
499 }
500 ],
501 "transition_key" : [
502 {
503 "type" : "field",
504 "value" : ["vlan_tag", "eth_type"]
505 }
506 ]
507 },
508 {
509 "name" : "parse_inner_vlan_tag",
510 "id" : 4,
511 "parser_ops" : [
512 {
513 "parameters" : [
514 {
515 "type" : "regular",
516 "value" : "inner_vlan_tag"
517 }
518 ],
519 "op" : "extract"
520 }
521 ],
522 "transitions" : [
523 {
524 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800525 "value" : "0x0800",
526 "mask" : null,
527 "next_state" : "parse_ipv4"
528 },
529 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800530 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800531 "value" : "0x8847",
532 "mask" : null,
533 "next_state" : "parse_mpls"
534 },
535 {
536 "value" : "default",
537 "mask" : null,
538 "next_state" : null
539 }
540 ],
541 "transition_key" : [
542 {
543 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800544 "value" : ["inner_vlan_tag", "eth_type"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800545 }
546 ]
547 },
548 {
549 "name" : "parse_mpls",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800550 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800551 "parser_ops" : [
552 {
553 "parameters" : [
554 {
555 "type" : "regular",
556 "value" : "mpls"
557 }
558 ],
559 "op" : "extract"
560 },
561 {
562 "parameters" : [
563 {
564 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800565 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
566 },
567 {
568 "type" : "field",
569 "value" : ["mpls", "label"]
570 }
571 ],
572 "op" : "set"
573 },
574 {
575 "parameters" : [
576 {
577 "type" : "field",
578 "value" : ["scalars", "fabric_metadata_t.mpls_ttl"]
579 },
580 {
581 "type" : "field",
582 "value" : ["mpls", "ttl"]
583 }
584 ],
585 "op" : "set"
586 },
587 {
588 "parameters" : [
589 {
590 "type" : "field",
591 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800592 },
593 {
594 "type" : "lookahead",
595 "value" : [0, 4]
596 }
597 ],
598 "op" : "set"
599 }
600 ],
601 "transitions" : [
602 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800603 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800604 "value" : "0x04",
605 "mask" : null,
606 "next_state" : "parse_ipv4"
607 },
608 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800609 "value" : "default",
610 "mask" : null,
611 "next_state" : "parse_ethernet"
612 }
613 ],
614 "transition_key" : [
615 {
616 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800617 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800618 }
619 ]
620 },
621 {
622 "name" : "parse_ipv4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800623 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800624 "parser_ops" : [
625 {
626 "parameters" : [
627 {
628 "type" : "regular",
629 "value" : "ipv4"
630 }
631 ],
632 "op" : "extract"
633 },
634 {
635 "parameters" : [
636 {
637 "type" : "field",
638 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
639 },
640 {
641 "type" : "field",
642 "value" : ["ipv4", "protocol"]
643 }
644 ],
645 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800646 },
647 {
648 "parameters" : [
649 {
650 "type" : "field",
651 "value" : ["scalars", "fabric_metadata_t.ip_eth_type"]
652 },
653 {
654 "type" : "hexstr",
655 "value" : "0x0800"
656 }
657 ],
658 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800659 }
660 ],
661 "transitions" : [
662 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800663 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800664 "value" : "0x06",
665 "mask" : null,
666 "next_state" : "parse_tcp"
667 },
668 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800669 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800670 "value" : "0x11",
671 "mask" : null,
672 "next_state" : "parse_udp"
673 },
674 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800675 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800676 "value" : "0x01",
677 "mask" : null,
678 "next_state" : "parse_icmp"
679 },
680 {
681 "value" : "default",
682 "mask" : null,
683 "next_state" : null
684 }
685 ],
686 "transition_key" : [
687 {
688 "type" : "field",
689 "value" : ["ipv4", "protocol"]
690 }
691 ]
692 },
693 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800694 "name" : "parse_tcp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200695 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800696 "parser_ops" : [
697 {
698 "parameters" : [
699 {
700 "type" : "regular",
701 "value" : "tcp"
702 }
703 ],
704 "op" : "extract"
705 },
706 {
707 "parameters" : [
708 {
709 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800710 "value" : ["scalars", "fabric_metadata_t.l4_sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800711 },
712 {
713 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800714 "value" : ["tcp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800715 }
716 ],
717 "op" : "set"
718 },
719 {
720 "parameters" : [
721 {
722 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800723 "value" : ["scalars", "fabric_metadata_t.l4_dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800724 },
725 {
726 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800727 "value" : ["tcp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800728 }
729 ],
730 "op" : "set"
731 }
732 ],
733 "transitions" : [
734 {
735 "value" : "default",
736 "mask" : null,
737 "next_state" : null
738 }
739 ],
740 "transition_key" : []
741 },
742 {
743 "name" : "parse_udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200744 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800745 "parser_ops" : [
746 {
747 "parameters" : [
748 {
749 "type" : "regular",
750 "value" : "udp"
751 }
752 ],
753 "op" : "extract"
754 },
755 {
756 "parameters" : [
757 {
758 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800759 "value" : ["scalars", "fabric_metadata_t.l4_sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800760 },
761 {
762 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800763 "value" : ["udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800764 }
765 ],
766 "op" : "set"
767 },
768 {
769 "parameters" : [
770 {
771 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800772 "value" : ["scalars", "fabric_metadata_t.l4_dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800773 },
774 {
775 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800776 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800777 }
778 ],
779 "op" : "set"
780 }
781 ],
782 "transitions" : [
783 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800784 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800785 "value" : "0x0868",
786 "mask" : null,
787 "next_state" : "parse_gtpu"
788 },
789 {
790 "value" : "default",
791 "mask" : null,
792 "next_state" : null
793 }
794 ],
795 "transition_key" : [
796 {
797 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800798 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800799 }
800 ]
801 },
802 {
803 "name" : "parse_icmp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200804 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800805 "parser_ops" : [
806 {
807 "parameters" : [
808 {
809 "type" : "regular",
810 "value" : "icmp"
811 }
812 ],
813 "op" : "extract"
814 }
815 ],
816 "transitions" : [
817 {
818 "value" : "default",
819 "mask" : null,
820 "next_state" : null
821 }
822 ],
823 "transition_key" : []
824 },
825 {
826 "name" : "parse_gtpu",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200827 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800828 "parser_ops" : [
829 {
830 "parameters" : [
831 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700832 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800833 "value" : ["scalars", "tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700834 },
835 {
836 "type" : "expression",
837 "value" : {
838 "type" : "expression",
839 "value" : {
840 "op" : "&",
841 "left" : {
842 "type" : "expression",
843 "value" : {
844 "op" : "&",
845 "left" : {
846 "type" : "expression",
847 "value" : {
848 "op" : ">>",
849 "left" : {
850 "type" : "field",
851 "value" : ["ipv4", "dst_addr"]
852 },
853 "right" : {
854 "type" : "hexstr",
855 "value" : "0x18"
856 }
857 }
858 },
859 "right" : {
860 "type" : "hexstr",
861 "value" : "0xffffffff"
862 }
863 }
864 },
865 "right" : {
866 "type" : "hexstr",
867 "value" : "0xff"
868 }
869 }
870 }
871 }
872 ],
873 "op" : "set"
874 }
875 ],
876 "transitions" : [
877 {
878 "type" : "hexstr",
879 "value" : "0x8c",
880 "mask" : null,
881 "next_state" : "do_parse_gtpu"
882 },
883 {
884 "value" : "default",
885 "mask" : null,
886 "next_state" : null
887 }
888 ],
889 "transition_key" : [
890 {
891 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800892 "value" : ["scalars", "tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700893 }
894 ]
895 },
896 {
897 "name" : "do_parse_gtpu",
898 "id" : 11,
899 "parser_ops" : [
900 {
901 "parameters" : [
902 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800903 "type" : "regular",
904 "value" : "gtpu"
905 }
906 ],
907 "op" : "extract"
908 },
909 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800910 "parameters" : [
911 {
912 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700913 "value" : "inner_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800914 }
915 ],
916 "op" : "extract"
917 }
918 ],
919 "transitions" : [
920 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800921 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800922 "value" : "0x06",
923 "mask" : null,
924 "next_state" : "parse_tcp"
925 },
926 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800927 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800928 "value" : "0x11",
929 "mask" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700930 "next_state" : "parse_inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800931 },
932 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800933 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800934 "value" : "0x01",
935 "mask" : null,
936 "next_state" : "parse_icmp"
937 },
938 {
939 "value" : "default",
940 "mask" : null,
941 "next_state" : null
942 }
943 ],
944 "transition_key" : [
945 {
946 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700947 "value" : ["inner_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800948 }
949 ]
950 },
951 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700952 "name" : "parse_inner_udp",
953 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800954 "parser_ops" : [
955 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800956 "parameters" : [
957 {
958 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700959 "value" : "inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800960 }
961 ],
962 "op" : "extract"
963 },
964 {
965 "parameters" : [
966 {
967 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800968 "value" : ["scalars", "fabric_metadata_t.l4_sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800969 },
970 {
971 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800972 "value" : ["inner_udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800973 }
974 ],
975 "op" : "set"
976 },
977 {
978 "parameters" : [
979 {
980 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800981 "value" : ["scalars", "fabric_metadata_t.l4_dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800982 },
983 {
984 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800985 "value" : ["inner_udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800986 }
987 ],
988 "op" : "set"
989 }
990 ],
991 "transitions" : [
992 {
993 "value" : "default",
994 "mask" : null,
995 "next_state" : null
996 }
997 ],
998 "transition_key" : []
999 }
1000 ]
1001 }
1002 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001003 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001004 "deparsers" : [
1005 {
1006 "name" : "deparser",
1007 "id" : 0,
1008 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001009 "filename" : "include/parser.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001010 "line" : 243,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001011 "column" : 8,
1012 "source_fragment" : "FabricDeparser"
1013 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001014 "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 -08001015 }
1016 ],
1017 "meter_arrays" : [],
1018 "counter_arrays" : [
1019 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001020 "name" : "FabricIngress.spgw_ingress.ue_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001021 "id" : 0,
1022 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001023 "binding" : "FabricIngress.spgw_ingress.dl_sess_lookup",
1024 "source_info" : {
1025 "filename" : "include/spgw.p4",
1026 "line" : 51,
1027 "column" : 50,
1028 "source_fragment" : "ue_counter"
1029 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001030 },
1031 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001032 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001033 "id" : 1,
1034 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001035 "binding" : "FabricIngress.filtering.ingress_port_vlan",
1036 "source_info" : {
1037 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001038 "line" : 31,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001039 "column" : 50,
1040 "source_fragment" : "ingress_port_vlan_counter"
1041 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001042 },
1043 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001044 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001045 "id" : 2,
1046 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001047 "binding" : "FabricIngress.filtering.fwd_classifier",
1048 "source_info" : {
1049 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001050 "line" : 79,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001051 "column" : 50,
1052 "source_fragment" : "fwd_classifier_counter"
1053 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001054 },
1055 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001056 "name" : "FabricIngress.forwarding.bridging_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001057 "id" : 3,
1058 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001059 "binding" : "FabricIngress.forwarding.bridging",
1060 "source_info" : {
1061 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001062 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001063 "column" : 50,
1064 "source_fragment" : "bridging_counter"
1065 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001066 },
1067 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001068 "name" : "FabricIngress.forwarding.mpls_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001069 "id" : 4,
1070 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001071 "binding" : "FabricIngress.forwarding.mpls",
1072 "source_info" : {
1073 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001074 "line" : 59,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001075 "column" : 50,
1076 "source_fragment" : "mpls_counter"
1077 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001078 },
1079 {
Charles Chan384aea22018-08-23 22:08:02 -07001080 "name" : "FabricIngress.forwarding.routing_v4_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001081 "id" : 5,
1082 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001083 "binding" : "FabricIngress.forwarding.routing_v4",
1084 "source_info" : {
1085 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001086 "line" : 82,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001087 "column" : 50,
1088 "source_fragment" : "routing_v4_counter"
1089 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001090 },
1091 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001092 "name" : "FabricIngress.acl.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001093 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001094 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001095 "binding" : "FabricIngress.acl.acl",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001096 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001097 "filename" : "include/control/acl.p4",
1098 "line" : 30,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001099 "column" : 50,
1100 "source_fragment" : "acl_counter"
1101 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001102 },
1103 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001104 "name" : "FabricIngress.next.next_vlan_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001105 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001106 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001107 "binding" : "FabricIngress.next.next_vlan",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001108 "source_info" : {
1109 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001110 "line" : 67,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001111 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001112 "source_fragment" : "next_vlan_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001113 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001114 },
1115 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001116 "name" : "FabricIngress.next.xconnect_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001117 "id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001118 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001119 "binding" : "FabricIngress.next.xconnect",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001120 "source_info" : {
1121 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001122 "line" : 91,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001123 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001124 "source_fragment" : "xconnect_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001125 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001126 },
1127 {
1128 "name" : "FabricIngress.next.hashed_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001129 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001130 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001131 "binding" : "FabricIngress.next.hashed",
1132 "source_info" : {
1133 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001134 "line" : 162,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001135 "column" : 50,
1136 "source_fragment" : "hashed_counter"
1137 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001138 },
1139 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001140 "name" : "FabricIngress.next.multicast_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001141 "id" : 10,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001142 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001143 "binding" : "FabricIngress.next.multicast",
1144 "source_info" : {
1145 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001146 "line" : 205,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001147 "column" : 50,
1148 "source_fragment" : "multicast_counter"
1149 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00001150 },
1151 {
1152 "name" : "FabricIngress.port_counters_control.egress_port_counter",
1153 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001154 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001155 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001156 "line" : 26,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001157 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001158 "source_fragment" : "egress_port_counter"
1159 },
1160 "size" : 511,
1161 "is_direct" : false
1162 },
1163 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001164 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001165 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001166 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001167 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001168 "line" : 27,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001169 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001170 "source_fragment" : "ingress_port_counter"
1171 },
1172 "size" : 511,
1173 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08001174 },
1175 {
1176 "name" : "FabricEgress.egress_next.egress_vlan_counter",
1177 "id" : 13,
1178 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001179 "binding" : "FabricEgress.egress_next.egress_vlan",
1180 "source_info" : {
1181 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001182 "line" : 277,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001183 "column" : 50,
1184 "source_fragment" : "egress_vlan_counter"
1185 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001186 }
1187 ],
1188 "register_arrays" : [],
1189 "calculations" : [
1190 {
1191 "name" : "calc",
1192 "id" : 0,
1193 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001194 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001195 "line" : 28,
1196 "column" : 8,
1197 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1198 },
1199 "algo" : "csum16",
1200 "input" : [
1201 {
1202 "type" : "field",
1203 "value" : ["ipv4", "version"]
1204 },
1205 {
1206 "type" : "field",
1207 "value" : ["ipv4", "ihl"]
1208 },
1209 {
1210 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001211 "value" : ["ipv4", "dscp"]
1212 },
1213 {
1214 "type" : "field",
1215 "value" : ["ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001216 },
1217 {
1218 "type" : "field",
1219 "value" : ["ipv4", "total_len"]
1220 },
1221 {
1222 "type" : "field",
1223 "value" : ["ipv4", "identification"]
1224 },
1225 {
1226 "type" : "field",
1227 "value" : ["ipv4", "flags"]
1228 },
1229 {
1230 "type" : "field",
1231 "value" : ["ipv4", "frag_offset"]
1232 },
1233 {
1234 "type" : "field",
1235 "value" : ["ipv4", "ttl"]
1236 },
1237 {
1238 "type" : "field",
1239 "value" : ["ipv4", "protocol"]
1240 },
1241 {
1242 "type" : "field",
1243 "value" : ["ipv4", "src_addr"]
1244 },
1245 {
1246 "type" : "field",
1247 "value" : ["ipv4", "dst_addr"]
1248 }
1249 ]
1250 },
1251 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001252 "name" : "calc_0",
1253 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001254 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001255 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001256 "line" : 242,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001257 "column" : 8,
1258 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1259 },
1260 "algo" : "csum16",
1261 "input" : [
1262 {
1263 "type" : "field",
1264 "value" : ["gtpu_ipv4", "version"]
1265 },
1266 {
1267 "type" : "field",
1268 "value" : ["gtpu_ipv4", "ihl"]
1269 },
1270 {
1271 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001272 "value" : ["gtpu_ipv4", "dscp"]
1273 },
1274 {
1275 "type" : "field",
1276 "value" : ["gtpu_ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001277 },
1278 {
1279 "type" : "field",
1280 "value" : ["gtpu_ipv4", "total_len"]
1281 },
1282 {
1283 "type" : "field",
1284 "value" : ["gtpu_ipv4", "identification"]
1285 },
1286 {
1287 "type" : "field",
1288 "value" : ["gtpu_ipv4", "flags"]
1289 },
1290 {
1291 "type" : "field",
1292 "value" : ["gtpu_ipv4", "frag_offset"]
1293 },
1294 {
1295 "type" : "field",
1296 "value" : ["gtpu_ipv4", "ttl"]
1297 },
1298 {
1299 "type" : "field",
1300 "value" : ["gtpu_ipv4", "protocol"]
1301 },
1302 {
1303 "type" : "field",
1304 "value" : ["gtpu_ipv4", "src_addr"]
1305 },
1306 {
1307 "type" : "field",
1308 "value" : ["gtpu_ipv4", "dst_addr"]
1309 }
1310 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001311 },
1312 {
1313 "name" : "calc_1",
1314 "id" : 2,
1315 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001316 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001317 "line" : 57,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001318 "column" : 8,
1319 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1320 },
1321 "algo" : "csum16",
1322 "input" : [
1323 {
1324 "type" : "field",
1325 "value" : ["ipv4", "version"]
1326 },
1327 {
1328 "type" : "field",
1329 "value" : ["ipv4", "ihl"]
1330 },
1331 {
1332 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001333 "value" : ["ipv4", "dscp"]
1334 },
1335 {
1336 "type" : "field",
1337 "value" : ["ipv4", "ecn"]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001338 },
1339 {
1340 "type" : "field",
1341 "value" : ["ipv4", "total_len"]
1342 },
1343 {
1344 "type" : "field",
1345 "value" : ["ipv4", "identification"]
1346 },
1347 {
1348 "type" : "field",
1349 "value" : ["ipv4", "flags"]
1350 },
1351 {
1352 "type" : "field",
1353 "value" : ["ipv4", "frag_offset"]
1354 },
1355 {
1356 "type" : "field",
1357 "value" : ["ipv4", "ttl"]
1358 },
1359 {
1360 "type" : "field",
1361 "value" : ["ipv4", "protocol"]
1362 },
1363 {
1364 "type" : "field",
1365 "value" : ["ipv4", "src_addr"]
1366 },
1367 {
1368 "type" : "field",
1369 "value" : ["ipv4", "dst_addr"]
1370 }
1371 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001372 }
1373 ],
1374 "learn_lists" : [],
1375 "actions" : [
1376 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001377 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001378 "id" : 0,
1379 "runtime_data" : [],
1380 "primitives" : []
1381 },
1382 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001383 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001384 "id" : 1,
1385 "runtime_data" : [],
1386 "primitives" : []
1387 },
1388 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001389 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001390 "id" : 2,
1391 "runtime_data" : [],
1392 "primitives" : []
1393 },
1394 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001395 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001396 "id" : 3,
1397 "runtime_data" : [],
1398 "primitives" : []
1399 },
1400 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001401 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001402 "id" : 4,
1403 "runtime_data" : [],
1404 "primitives" : []
1405 },
1406 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001407 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001408 "id" : 5,
1409 "runtime_data" : [],
1410 "primitives" : []
1411 },
1412 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001413 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001414 "id" : 6,
1415 "runtime_data" : [],
1416 "primitives" : []
1417 },
1418 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001419 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001420 "id" : 7,
1421 "runtime_data" : [],
1422 "primitives" : []
1423 },
1424 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001425 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001426 "id" : 8,
1427 "runtime_data" : [],
1428 "primitives" : []
1429 },
1430 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001431 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001432 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001433 "runtime_data" : [],
1434 "primitives" : [
1435 {
1436 "op" : "remove_header",
1437 "parameters" : [
1438 {
1439 "type" : "header",
1440 "value" : "gtpu_ipv4"
1441 }
1442 ],
1443 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001444 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001445 "line" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001446 "column" : 8,
1447 "source_fragment" : "gtpu_ipv4.setInvalid()"
1448 }
1449 },
1450 {
1451 "op" : "remove_header",
1452 "parameters" : [
1453 {
1454 "type" : "header",
1455 "value" : "gtpu_udp"
1456 }
1457 ],
1458 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001459 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001460 "line" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001461 "column" : 8,
1462 "source_fragment" : "gtpu_udp.setInvalid()"
1463 }
1464 },
1465 {
1466 "op" : "remove_header",
1467 "parameters" : [
1468 {
1469 "type" : "header",
1470 "value" : "gtpu"
1471 }
1472 ],
1473 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001474 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001475 "line" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001476 "column" : 8,
1477 "source_fragment" : "gtpu.setInvalid()"
1478 }
1479 }
1480 ]
1481 },
1482 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001483 "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001484 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001485 "runtime_data" : [
1486 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001487 "name" : "teid",
1488 "bitwidth" : 32
1489 },
1490 {
1491 "name" : "s1u_enb_addr",
1492 "bitwidth" : 32
1493 },
1494 {
1495 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001496 "bitwidth" : 32
1497 }
1498 ],
1499 "primitives" : [
1500 {
1501 "op" : "assign",
1502 "parameters" : [
1503 {
1504 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001505 "value" : ["userMetadata.spgw", "teid"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001506 },
1507 {
1508 "type" : "runtime_data",
1509 "value" : 0
1510 }
1511 ],
1512 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001513 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001514 "line" : 63,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001515 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001516 "source_fragment" : "fabric_meta.spgw.teid = teid"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001517 }
1518 },
1519 {
1520 "op" : "assign",
1521 "parameters" : [
1522 {
1523 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001524 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001525 },
1526 {
1527 "type" : "runtime_data",
1528 "value" : 1
1529 }
1530 ],
1531 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001532 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001533 "line" : 64,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001534 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001535 "source_fragment" : "fabric_meta.spgw.s1u_enb_addr = s1u_enb_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001536 }
1537 },
1538 {
1539 "op" : "assign",
1540 "parameters" : [
1541 {
1542 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001543 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001544 },
1545 {
1546 "type" : "runtime_data",
1547 "value" : 2
1548 }
1549 ],
1550 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001551 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001552 "line" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001553 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001554 "source_fragment" : "fabric_meta.spgw.s1u_sgw_addr = s1u_sgw_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001555 }
1556 }
1557 ]
1558 },
1559 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001560 "name" : "FabricIngress.filtering.deny",
1561 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001562 "runtime_data" : [],
1563 "primitives" : [
1564 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001565 "op" : "assign",
1566 "parameters" : [
1567 {
1568 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001569 "value" : ["scalars", "fabric_metadata_t.skip_forwarding"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001570 },
1571 {
1572 "type" : "expression",
1573 "value" : {
1574 "type" : "expression",
1575 "value" : {
1576 "op" : "b2d",
1577 "left" : null,
1578 "right" : {
1579 "type" : "bool",
1580 "value" : true
1581 }
1582 }
1583 }
1584 }
1585 ],
1586 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001587 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001588 "line" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001589 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001590 "source_fragment" : "fabric_metadata.skip_forwarding = true"
1591 }
1592 },
1593 {
1594 "op" : "assign",
1595 "parameters" : [
1596 {
1597 "type" : "field",
1598 "value" : ["scalars", "fabric_metadata_t.skip_next"]
1599 },
1600 {
1601 "type" : "expression",
1602 "value" : {
1603 "type" : "expression",
1604 "value" : {
1605 "op" : "b2d",
1606 "left" : null,
1607 "right" : {
1608 "type" : "bool",
1609 "value" : true
1610 }
1611 }
1612 }
1613 }
1614 ],
1615 "source_info" : {
1616 "filename" : "include/control/filtering.p4",
1617 "line" : 37,
1618 "column" : 8,
1619 "source_fragment" : "fabric_metadata.skip_next = true"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001620 }
1621 }
1622 ]
1623 },
1624 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001625 "name" : "FabricIngress.filtering.permit",
1626 "id" : 12,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001627 "runtime_data" : [],
1628 "primitives" : []
1629 },
1630 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001631 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
1632 "id" : 13,
1633 "runtime_data" : [
1634 {
1635 "name" : "vlan_id",
1636 "bitwidth" : 12
1637 }
1638 ],
1639 "primitives" : [
1640 {
1641 "op" : "assign",
1642 "parameters" : [
1643 {
1644 "type" : "field",
1645 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
1646 },
1647 {
1648 "type" : "runtime_data",
1649 "value" : 0
1650 }
1651 ],
1652 "source_info" : {
1653 "filename" : "include/control/filtering.p4",
1654 "line" : 47,
1655 "column" : 8,
1656 "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
1657 }
1658 }
1659 ]
1660 },
1661 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001662 "name" : "FabricIngress.filtering.set_forwarding_type",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001663 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001664 "runtime_data" : [
1665 {
1666 "name" : "fwd_type",
1667 "bitwidth" : 3
1668 }
1669 ],
1670 "primitives" : [
1671 {
1672 "op" : "assign",
1673 "parameters" : [
1674 {
1675 "type" : "field",
1676 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1677 },
1678 {
1679 "type" : "runtime_data",
1680 "value" : 0
1681 }
1682 ],
1683 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001684 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001685 "line" : 82,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001686 "column" : 8,
1687 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1688 }
1689 }
1690 ]
1691 },
1692 {
Yi Tseng47eac892018-07-11 02:17:04 +08001693 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001694 "id" : 15,
1695 "runtime_data" : [
1696 {
1697 "name" : "next_id",
1698 "bitwidth" : 32
1699 }
1700 ],
1701 "primitives" : [
1702 {
1703 "op" : "assign",
1704 "parameters" : [
1705 {
1706 "type" : "field",
1707 "value" : ["scalars", "fabric_metadata_t.next_id"]
1708 },
1709 {
1710 "type" : "runtime_data",
1711 "value" : 0
1712 }
1713 ],
1714 "source_info" : {
1715 "filename" : "include/control/forwarding.p4",
1716 "line" : 30,
1717 "column" : 8,
1718 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
1719 }
1720 }
1721 ]
1722 },
1723 {
1724 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
1725 "id" : 16,
1726 "runtime_data" : [
1727 {
1728 "name" : "next_id",
1729 "bitwidth" : 32
1730 }
1731 ],
1732 "primitives" : [
1733 {
1734 "op" : "assign",
1735 "parameters" : [
1736 {
1737 "type" : "field",
1738 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
1739 },
1740 {
1741 "type" : "hexstr",
1742 "value" : "0x000000"
1743 }
1744 ],
1745 "source_info" : {
1746 "filename" : "include/control/forwarding.p4",
1747 "line" : 62,
1748 "column" : 8,
1749 "source_fragment" : "fabric_metadata.mpls_label = 0"
1750 }
1751 },
1752 {
1753 "op" : "assign",
1754 "parameters" : [
1755 {
1756 "type" : "field",
1757 "value" : ["scalars", "fabric_metadata_t.next_id"]
1758 },
1759 {
1760 "type" : "runtime_data",
1761 "value" : 0
1762 }
1763 ],
1764 "source_info" : {
1765 "filename" : "include/control/forwarding.p4",
1766 "line" : 30,
1767 "column" : 8,
1768 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
1769 }
1770 }
1771 ]
1772 },
1773 {
1774 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001775 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001776 "runtime_data" : [
1777 {
1778 "name" : "next_id",
1779 "bitwidth" : 32
1780 }
1781 ],
1782 "primitives" : [
1783 {
1784 "op" : "assign",
1785 "parameters" : [
1786 {
1787 "type" : "field",
1788 "value" : ["scalars", "fabric_metadata_t.next_id"]
1789 },
1790 {
1791 "type" : "runtime_data",
1792 "value" : 0
1793 }
1794 ],
1795 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001796 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001797 "line" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001798 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001799 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001800 }
1801 }
1802 ]
1803 },
1804 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001805 "name" : "FabricIngress.forwarding.nop_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001806 "id" : 18,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001807 "runtime_data" : [],
1808 "primitives" : []
Yi Tseng47eac892018-07-11 02:17:04 +08001809 },
1810 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001811 "name" : "FabricIngress.acl.set_next_id_acl",
Charles Chancf696e52018-08-16 16:25:13 -07001812 "id" : 19,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001813 "runtime_data" : [
1814 {
1815 "name" : "next_id",
1816 "bitwidth" : 32
1817 }
1818 ],
1819 "primitives" : [
1820 {
1821 "op" : "assign",
1822 "parameters" : [
1823 {
1824 "type" : "field",
1825 "value" : ["scalars", "fabric_metadata_t.next_id"]
1826 },
1827 {
1828 "type" : "runtime_data",
1829 "value" : 0
1830 }
1831 ],
1832 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001833 "filename" : "include/control/acl.p4",
1834 "line" : 33,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001835 "column" : 8,
1836 "source_fragment" : "fabric_metadata.next_id = next_id"
1837 }
1838 }
1839 ]
1840 },
1841 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001842 "name" : "FabricIngress.acl.punt_to_cpu",
Charles Chancf696e52018-08-16 16:25:13 -07001843 "id" : 20,
Charles Chancd03f072018-08-31 17:46:37 -07001844 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001845 "primitives" : [
1846 {
1847 "op" : "assign",
1848 "parameters" : [
1849 {
1850 "type" : "field",
1851 "value" : ["standard_metadata", "egress_spec"]
1852 },
1853 {
1854 "type" : "hexstr",
1855 "value" : "0x00ff"
1856 }
1857 ],
1858 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001859 "filename" : "include/control/acl.p4",
1860 "line" : 39,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001861 "column" : 8,
1862 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001863 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001864 },
1865 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001866 "op" : "assign",
1867 "parameters" : [
1868 {
1869 "type" : "field",
1870 "value" : ["scalars", "fabric_metadata_t.skip_next"]
1871 },
1872 {
1873 "type" : "expression",
1874 "value" : {
1875 "type" : "expression",
1876 "value" : {
1877 "op" : "b2d",
1878 "left" : null,
1879 "right" : {
1880 "type" : "bool",
1881 "value" : true
1882 }
1883 }
1884 }
1885 }
1886 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001887 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001888 "filename" : "include/control/acl.p4",
1889 "line" : 40,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001890 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001891 "source_fragment" : "fabric_metadata.skip_next = true"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001892 }
1893 }
1894 ]
1895 },
1896 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001897 "name" : "FabricIngress.acl.clone_to_cpu",
1898 "id" : 21,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001899 "runtime_data" : [],
1900 "primitives" : [
1901 {
1902 "op" : "assign",
1903 "parameters" : [
1904 {
1905 "type" : "field",
1906 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
1907 },
1908 {
1909 "type" : "expression",
1910 "value" : {
1911 "type" : "expression",
1912 "value" : {
1913 "op" : "b2d",
1914 "left" : null,
1915 "right" : {
1916 "type" : "bool",
1917 "value" : true
1918 }
1919 }
1920 }
1921 }
1922 ],
1923 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001924 "filename" : "include/control/acl.p4",
1925 "line" : 46,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001926 "column" : 8,
1927 "source_fragment" : "fabric_metadata.clone_to_cpu = true"
1928 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001929 }
1930 ]
1931 },
1932 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001933 "name" : "FabricIngress.acl.drop",
1934 "id" : 22,
Yi Tseng47eac892018-07-11 02:17:04 +08001935 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001936 "primitives" : [
1937 {
Yi Tseng47eac892018-07-11 02:17:04 +08001938 "op" : "drop",
1939 "parameters" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001940 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001941 "filename" : "include/control/acl.p4",
1942 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001943 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001944 "source_fragment" : "mark_to_drop()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001945 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001946 },
1947 {
1948 "op" : "assign",
1949 "parameters" : [
1950 {
1951 "type" : "field",
1952 "value" : ["scalars", "fabric_metadata_t.skip_next"]
1953 },
1954 {
1955 "type" : "expression",
1956 "value" : {
1957 "type" : "expression",
1958 "value" : {
1959 "op" : "b2d",
1960 "left" : null,
1961 "right" : {
1962 "type" : "bool",
1963 "value" : true
1964 }
1965 }
1966 }
1967 }
1968 ],
1969 "source_info" : {
1970 "filename" : "include/control/acl.p4",
1971 "line" : 52,
1972 "column" : 8,
1973 "source_fragment" : "fabric_metadata.skip_next = true"
1974 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001975 }
1976 ]
1977 },
1978 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001979 "name" : "FabricIngress.acl.nop_acl",
1980 "id" : 23,
Charles Chancf696e52018-08-16 16:25:13 -07001981 "runtime_data" : [],
1982 "primitives" : []
1983 },
1984 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001985 "name" : "FabricIngress.next.set_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001986 "id" : 24,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001987 "runtime_data" : [
1988 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001989 "name" : "vlan_id",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001990 "bitwidth" : 12
1991 }
1992 ],
1993 "primitives" : [
1994 {
1995 "op" : "assign",
1996 "parameters" : [
1997 {
1998 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001999 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002000 },
2001 {
2002 "type" : "runtime_data",
2003 "value" : 0
2004 }
2005 ],
2006 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002007 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002008 "line" : 70,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002009 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002010 "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002011 }
2012 }
2013 ]
2014 },
2015 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002016 "name" : "FabricIngress.next.output_xconnect",
2017 "id" : 25,
2018 "runtime_data" : [
2019 {
2020 "name" : "port_num",
2021 "bitwidth" : 9
2022 }
2023 ],
2024 "primitives" : [
2025 {
2026 "op" : "assign",
2027 "parameters" : [
2028 {
2029 "type" : "field",
2030 "value" : ["standard_metadata", "egress_spec"]
2031 },
2032 {
2033 "type" : "runtime_data",
2034 "value" : 0
2035 }
2036 ],
2037 "source_info" : {
2038 "filename" : "include/control/next.p4",
2039 "line" : 31,
2040 "column" : 5,
2041 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2042 }
2043 }
2044 ]
2045 },
2046 {
2047 "name" : "FabricIngress.next.set_next_id_xconnect",
2048 "id" : 26,
2049 "runtime_data" : [
2050 {
2051 "name" : "next_id",
2052 "bitwidth" : 32
2053 }
2054 ],
2055 "primitives" : [
2056 {
2057 "op" : "assign",
2058 "parameters" : [
2059 {
2060 "type" : "field",
2061 "value" : ["scalars", "fabric_metadata_t.next_id"]
2062 },
2063 {
2064 "type" : "runtime_data",
2065 "value" : 0
2066 }
2067 ],
2068 "source_info" : {
2069 "filename" : "include/control/next.p4",
2070 "line" : 99,
2071 "column" : 8,
2072 "source_fragment" : "fabric_metadata.next_id = next_id"
2073 }
2074 }
2075 ]
2076 },
2077 {
2078 "name" : "FabricIngress.next.output_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002079 "id" : 27,
Yi Tseng47eac892018-07-11 02:17:04 +08002080 "runtime_data" : [
2081 {
2082 "name" : "port_num",
2083 "bitwidth" : 9
2084 }
2085 ],
2086 "primitives" : [
2087 {
2088 "op" : "assign",
2089 "parameters" : [
2090 {
2091 "type" : "field",
2092 "value" : ["standard_metadata", "egress_spec"]
2093 },
2094 {
2095 "type" : "runtime_data",
2096 "value" : 0
2097 }
2098 ],
2099 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002100 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002101 "line" : 31,
2102 "column" : 5,
2103 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng47eac892018-07-11 02:17:04 +08002104 }
2105 }
2106 ]
2107 },
2108 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002109 "name" : "FabricIngress.next.routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002110 "id" : 28,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002111 "runtime_data" : [
2112 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002113 "name" : "port_num",
2114 "bitwidth" : 9
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002115 },
2116 {
2117 "name" : "smac",
2118 "bitwidth" : 48
2119 },
2120 {
2121 "name" : "dmac",
2122 "bitwidth" : 48
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002123 }
2124 ],
2125 "primitives" : [
2126 {
2127 "op" : "assign",
2128 "parameters" : [
2129 {
2130 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002131 "value" : ["ethernet", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002132 },
2133 {
2134 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002135 "value" : 1
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002136 }
2137 ],
2138 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002139 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002140 "line" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002141 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002142 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2143 }
2144 },
2145 {
2146 "op" : "assign",
2147 "parameters" : [
2148 {
2149 "type" : "field",
2150 "value" : ["ethernet", "dst_addr"]
2151 },
2152 {
2153 "type" : "runtime_data",
2154 "value" : 2
2155 }
2156 ],
2157 "source_info" : {
2158 "filename" : "include/control/next.p4",
2159 "line" : 41,
2160 "column" : 8,
2161 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002162 }
2163 },
2164 {
2165 "op" : "assign",
2166 "parameters" : [
2167 {
2168 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002169 "value" : ["standard_metadata", "egress_spec"]
2170 },
2171 {
2172 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002173 "value" : 0
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002174 }
2175 ],
2176 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002177 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002178 "line" : 31,
2179 "column" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002180 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2181 }
2182 }
2183 ]
2184 },
2185 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002186 "name" : "FabricIngress.next.mpls_routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002187 "id" : 29,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002188 "runtime_data" : [
2189 {
2190 "name" : "port_num",
2191 "bitwidth" : 9
2192 },
2193 {
2194 "name" : "smac",
2195 "bitwidth" : 48
2196 },
2197 {
2198 "name" : "dmac",
2199 "bitwidth" : 48
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002200 },
2201 {
2202 "name" : "label",
2203 "bitwidth" : 20
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002204 }
2205 ],
2206 "primitives" : [
2207 {
2208 "op" : "assign",
2209 "parameters" : [
2210 {
2211 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002212 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
2213 },
2214 {
2215 "type" : "runtime_data",
2216 "value" : 3
2217 }
2218 ],
2219 "source_info" : {
2220 "filename" : "include/control/next.p4",
2221 "line" : 46,
2222 "column" : 8,
2223 "source_fragment" : "fabric_metadata.mpls_label = label; ..."
2224 }
2225 },
2226 {
2227 "op" : "assign",
2228 "parameters" : [
2229 {
2230 "type" : "field",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002231 "value" : ["ethernet", "src_addr"]
2232 },
2233 {
2234 "type" : "runtime_data",
2235 "value" : 1
2236 }
2237 ],
2238 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002239 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002240 "line" : 36,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002241 "column" : 8,
2242 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2243 }
2244 },
2245 {
2246 "op" : "assign",
2247 "parameters" : [
2248 {
2249 "type" : "field",
2250 "value" : ["ethernet", "dst_addr"]
2251 },
2252 {
2253 "type" : "runtime_data",
2254 "value" : 2
2255 }
2256 ],
2257 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002258 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002259 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002260 "column" : 8,
2261 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2262 }
2263 },
2264 {
2265 "op" : "assign",
2266 "parameters" : [
2267 {
2268 "type" : "field",
2269 "value" : ["standard_metadata", "egress_spec"]
2270 },
2271 {
2272 "type" : "runtime_data",
2273 "value" : 0
2274 }
2275 ],
2276 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002277 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002278 "line" : 31,
2279 "column" : 5,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002280 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2281 }
2282 }
2283 ]
2284 },
2285 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002286 "name" : "FabricIngress.next.set_mcast_group_id",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002287 "id" : 30,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002288 "runtime_data" : [
2289 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002290 "name" : "group_id",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002291 "bitwidth" : 16
2292 }
2293 ],
2294 "primitives" : [
2295 {
2296 "op" : "assign",
2297 "parameters" : [
2298 {
2299 "type" : "field",
2300 "value" : ["standard_metadata", "mcast_grp"]
2301 },
2302 {
2303 "type" : "runtime_data",
2304 "value" : 0
2305 }
2306 ],
2307 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002308 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002309 "line" : 208,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002310 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002311 "source_fragment" : "standard_metadata.mcast_grp = group_id"
Esin Karaman971fb7f2017-12-28 13:44:52 +00002312 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002313 },
2314 {
2315 "op" : "assign",
2316 "parameters" : [
2317 {
2318 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002319 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002320 },
2321 {
2322 "type" : "expression",
2323 "value" : {
2324 "type" : "expression",
2325 "value" : {
2326 "op" : "b2d",
2327 "left" : null,
2328 "right" : {
2329 "type" : "bool",
2330 "value" : true
2331 }
2332 }
2333 }
2334 }
2335 ],
2336 "source_info" : {
2337 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002338 "line" : 209,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002339 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002340 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002341 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002342 }
2343 ]
2344 },
2345 {
2346 "name" : "act",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002347 "id" : 31,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002348 "runtime_data" : [],
2349 "primitives" : [
2350 {
2351 "op" : "assign",
2352 "parameters" : [
2353 {
2354 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002355 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002356 },
2357 {
2358 "type" : "expression",
2359 "value" : {
2360 "type" : "expression",
2361 "value" : {
2362 "op" : "b2d",
2363 "left" : null,
2364 "right" : {
2365 "type" : "bool",
2366 "value" : true
2367 }
2368 }
2369 }
2370 }
2371 ],
2372 "source_info" : {
2373 "filename" : "include/spgw.p4",
2374 "line" : 30,
2375 "column" : 32,
2376 "source_fragment" : "return"
2377 }
2378 }
2379 ]
2380 },
2381 {
2382 "name" : "act_0",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002383 "id" : 32,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002384 "runtime_data" : [],
2385 "primitives" : [
2386 {
2387 "op" : "remove_header",
2388 "parameters" : [
2389 {
2390 "type" : "header",
2391 "value" : "gtpu_ipv4"
2392 }
2393 ],
2394 "source_info" : {
2395 "filename" : "fabric.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002396 "line" : 57,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002397 "column" : 50,
2398 "source_fragment" : "hdr.gtpu_ipv4"
2399 }
2400 },
2401 {
2402 "op" : "remove_header",
2403 "parameters" : [
2404 {
2405 "type" : "header",
2406 "value" : "gtpu_udp"
2407 }
2408 ],
2409 "source_info" : {
2410 "filename" : "fabric.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002411 "line" : 57,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002412 "column" : 65,
2413 "source_fragment" : "hdr.gtpu_udp"
2414 }
2415 },
2416 {
2417 "op" : "assign",
2418 "parameters" : [
2419 {
2420 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002421 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002422 },
2423 {
2424 "type" : "expression",
2425 "value" : {
2426 "type" : "expression",
2427 "value" : {
2428 "op" : "b2d",
2429 "left" : null,
2430 "right" : {
2431 "type" : "bool",
2432 "value" : false
2433 }
2434 }
2435 }
2436 }
2437 ]
2438 }
2439 ]
2440 },
2441 {
2442 "name" : "act_1",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002443 "id" : 33,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002444 "runtime_data" : [],
2445 "primitives" : [
2446 {
2447 "op" : "assign_header",
2448 "parameters" : [
2449 {
2450 "type" : "header",
2451 "value" : "udp"
2452 },
2453 {
2454 "type" : "header",
2455 "value" : "inner_udp"
2456 }
2457 ],
2458 "source_info" : {
2459 "filename" : "include/spgw.p4",
2460 "line" : 35,
2461 "column" : 16,
2462 "source_fragment" : "= inner_udp; ..."
2463 }
2464 }
2465 ]
2466 },
2467 {
2468 "name" : "act_2",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002469 "id" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002470 "runtime_data" : [],
2471 "primitives" : [
2472 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002473 "op" : "remove_header",
2474 "parameters" : [
2475 {
2476 "type" : "header",
2477 "value" : "udp"
2478 }
2479 ],
2480 "source_info" : {
2481 "filename" : "include/spgw.p4",
2482 "line" : 37,
2483 "column" : 12,
2484 "source_fragment" : "udp.setInvalid()"
2485 }
2486 }
2487 ]
2488 },
2489 {
2490 "name" : "act_3",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002491 "id" : 35,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002492 "runtime_data" : [],
2493 "primitives" : [
2494 {
2495 "op" : "assign_header",
2496 "parameters" : [
2497 {
2498 "type" : "header",
2499 "value" : "gtpu_ipv4"
2500 },
2501 {
2502 "type" : "header",
2503 "value" : "ipv4"
2504 }
2505 ],
2506 "source_info" : {
2507 "filename" : "include/spgw.p4",
2508 "line" : 31,
2509 "column" : 18,
2510 "source_fragment" : "= ipv4; ..."
2511 }
2512 },
2513 {
2514 "op" : "assign_header",
2515 "parameters" : [
2516 {
2517 "type" : "header",
2518 "value" : "ipv4"
2519 },
2520 {
2521 "type" : "header",
2522 "value" : "inner_ipv4"
2523 }
2524 ],
2525 "source_info" : {
2526 "filename" : "include/spgw.p4",
2527 "line" : 32,
2528 "column" : 13,
2529 "source_fragment" : "= inner_ipv4; ..."
2530 }
2531 },
2532 {
2533 "op" : "assign_header",
2534 "parameters" : [
2535 {
2536 "type" : "header",
2537 "value" : "gtpu_udp"
2538 },
2539 {
2540 "type" : "header",
2541 "value" : "udp"
2542 }
2543 ],
2544 "source_info" : {
2545 "filename" : "include/spgw.p4",
2546 "line" : 33,
2547 "column" : 17,
2548 "source_fragment" : "= udp; ..."
2549 }
2550 }
2551 ]
2552 },
2553 {
2554 "name" : "act_4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002555 "id" : 36,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002556 "runtime_data" : [],
2557 "primitives" : [
2558 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002559 "op" : "assign",
2560 "parameters" : [
2561 {
2562 "type" : "field",
2563 "value" : ["standard_metadata", "egress_spec"]
2564 },
2565 {
2566 "type" : "field",
2567 "value" : ["packet_out", "egress_port"]
2568 }
2569 ],
2570 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002571 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002572 "line" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002573 "column" : 12,
2574 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2575 }
2576 },
2577 {
2578 "op" : "remove_header",
2579 "parameters" : [
2580 {
2581 "type" : "header",
2582 "value" : "packet_out"
2583 }
2584 ],
2585 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002586 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002587 "line" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002588 "column" : 12,
2589 "source_fragment" : "hdr.packet_out.setInvalid()"
2590 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002591 },
2592 {
2593 "op" : "assign",
2594 "parameters" : [
2595 {
2596 "type" : "field",
2597 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
2598 },
2599 {
2600 "type" : "expression",
2601 "value" : {
2602 "type" : "expression",
2603 "value" : {
2604 "op" : "b2d",
2605 "left" : null,
2606 "right" : {
2607 "type" : "bool",
2608 "value" : true
2609 }
2610 }
2611 }
2612 }
2613 ],
2614 "source_info" : {
2615 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002616 "line" : 27,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002617 "column" : 12,
2618 "source_fragment" : "fabric_metadata.is_controller_packet_out = true"
2619 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002620 }
2621 ]
2622 },
2623 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002624 "name" : "act_5",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002625 "id" : 37,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002626 "runtime_data" : [],
2627 "primitives" : [
2628 {
2629 "op" : "assign",
2630 "parameters" : [
2631 {
2632 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002633 "value" : ["scalars", "fabric_metadata_t.eth_type"]
2634 },
2635 {
2636 "type" : "field",
2637 "value" : ["vlan_tag", "eth_type"]
2638 }
2639 ],
2640 "source_info" : {
2641 "filename" : "include/control/filtering.p4",
2642 "line" : 103,
2643 "column" : 12,
2644 "source_fragment" : "fabric_metadata.eth_type = hdr.vlan_tag.eth_type"
2645 }
2646 },
2647 {
2648 "op" : "assign",
2649 "parameters" : [
2650 {
2651 "type" : "field",
2652 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
2653 },
2654 {
2655 "type" : "field",
2656 "value" : ["vlan_tag", "vlan_id"]
2657 }
2658 ],
2659 "source_info" : {
2660 "filename" : "include/control/filtering.p4",
2661 "line" : 104,
2662 "column" : 12,
2663 "source_fragment" : "fabric_metadata.vlan_id = hdr.vlan_tag.vlan_id"
2664 }
2665 },
2666 {
2667 "op" : "assign",
2668 "parameters" : [
2669 {
2670 "type" : "field",
2671 "value" : ["scalars", "fabric_metadata_t.vlan_pri"]
2672 },
2673 {
2674 "type" : "field",
2675 "value" : ["vlan_tag", "pri"]
2676 }
2677 ],
2678 "source_info" : {
2679 "filename" : "include/control/filtering.p4",
2680 "line" : 105,
2681 "column" : 12,
2682 "source_fragment" : "fabric_metadata.vlan_pri = hdr.vlan_tag.pri"
2683 }
2684 },
2685 {
2686 "op" : "assign",
2687 "parameters" : [
2688 {
2689 "type" : "field",
2690 "value" : ["scalars", "fabric_metadata_t.vlan_cfi"]
2691 },
2692 {
2693 "type" : "field",
2694 "value" : ["vlan_tag", "cfi"]
2695 }
2696 ],
2697 "source_info" : {
2698 "filename" : "include/control/filtering.p4",
2699 "line" : 106,
2700 "column" : 12,
2701 "source_fragment" : "fabric_metadata.vlan_cfi = hdr.vlan_tag.cfi"
2702 }
2703 }
2704 ]
2705 },
2706 {
2707 "name" : "act_6",
2708 "id" : 38,
2709 "runtime_data" : [],
2710 "primitives" : [
2711 {
2712 "op" : "assign",
2713 "parameters" : [
2714 {
2715 "type" : "field",
2716 "value" : ["scalars", "fabric_metadata_t.mpls_ttl"]
2717 },
2718 {
2719 "type" : "hexstr",
2720 "value" : "0x41"
2721 }
2722 ],
2723 "source_info" : {
2724 "filename" : "include/control/filtering.p4",
2725 "line" : 113,
2726 "column" : 12,
2727 "source_fragment" : "fabric_metadata.mpls_ttl = DEFAULT_MPLS_TTL + 1"
2728 }
2729 }
2730 ]
2731 },
2732 {
2733 "name" : "act_7",
2734 "id" : 39,
2735 "runtime_data" : [],
2736 "primitives" : [
2737 {
2738 "op" : "assign",
2739 "parameters" : [
2740 {
2741 "type" : "field",
2742 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002743 },
2744 {
2745 "type" : "expression",
2746 "value" : {
2747 "type" : "expression",
2748 "value" : {
2749 "op" : "b2d",
2750 "left" : null,
2751 "right" : {
2752 "type" : "bool",
2753 "value" : true
2754 }
2755 }
2756 }
2757 }
2758 ]
2759 }
2760 ]
2761 },
2762 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002763 "name" : "act_8",
2764 "id" : 40,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002765 "runtime_data" : [],
2766 "primitives" : [
2767 {
2768 "op" : "assign",
2769 "parameters" : [
2770 {
2771 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002772 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002773 },
2774 {
2775 "type" : "expression",
2776 "value" : {
2777 "type" : "expression",
2778 "value" : {
2779 "op" : "b2d",
2780 "left" : null,
2781 "right" : {
2782 "type" : "bool",
2783 "value" : false
2784 }
2785 }
2786 }
2787 }
2788 ]
2789 }
2790 ]
2791 },
2792 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002793 "name" : "act_9",
2794 "id" : 41,
2795 "runtime_data" : [],
2796 "primitives" : [
2797 {
2798 "op" : "drop",
2799 "parameters" : [],
2800 "source_info" : {
2801 "filename" : "include/spgw.p4",
2802 "line" : 148,
2803 "column" : 16,
2804 "source_fragment" : "mark_to_drop()"
2805 }
2806 }
2807 ]
2808 },
2809 {
2810 "name" : "act_10",
2811 "id" : 42,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002812 "runtime_data" : [],
2813 "primitives" : [
2814 {
2815 "op" : "assign",
2816 "parameters" : [
2817 {
2818 "type" : "field",
2819 "value" : ["userMetadata.spgw", "direction"]
2820 },
2821 {
2822 "type" : "hexstr",
2823 "value" : "0x01"
2824 }
2825 ],
2826 "source_info" : {
2827 "filename" : "include/control/../define.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002828 "line" : 137,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002829 "column" : 36,
2830 "source_fragment" : "2w1; ..."
2831 }
2832 }
2833 ]
2834 },
2835 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002836 "name" : "act_11",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002837 "id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002838 "runtime_data" : [],
2839 "primitives" : [
2840 {
2841 "op" : "assign",
2842 "parameters" : [
2843 {
2844 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002845 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002846 },
2847 {
2848 "type" : "expression",
2849 "value" : {
2850 "type" : "expression",
2851 "value" : {
2852 "op" : "b2d",
2853 "left" : null,
2854 "right" : {
2855 "type" : "bool",
2856 "value" : true
2857 }
2858 }
2859 }
2860 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002861 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002862 }
2863 ]
2864 },
2865 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002866 "name" : "act_12",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002867 "id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002868 "runtime_data" : [],
2869 "primitives" : [
2870 {
2871 "op" : "assign",
2872 "parameters" : [
2873 {
2874 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002875 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002876 },
2877 {
2878 "type" : "expression",
2879 "value" : {
2880 "type" : "expression",
2881 "value" : {
2882 "op" : "b2d",
2883 "left" : null,
2884 "right" : {
2885 "type" : "bool",
2886 "value" : false
2887 }
2888 }
2889 }
2890 }
2891 ]
2892 }
2893 ]
2894 },
2895 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002896 "name" : "act_13",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002897 "id" : 45,
Yi Tseng27b9bc02018-04-12 14:52:40 +08002898 "runtime_data" : [],
2899 "primitives" : [
2900 {
2901 "op" : "assign",
2902 "parameters" : [
2903 {
2904 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002905 "value" : ["userMetadata.spgw", "direction"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08002906 },
2907 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002908 "type" : "hexstr",
2909 "value" : "0x02"
Yi Tseng27b9bc02018-04-12 14:52:40 +08002910 }
2911 ],
2912 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002913 "filename" : "include/control/../define.p4",
2914 "line" : 138,
2915 "column" : 38,
2916 "source_fragment" : "2w2; ..."
Yi Tseng27b9bc02018-04-12 14:52:40 +08002917 }
2918 }
2919 ]
2920 },
2921 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002922 "name" : "act_14",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002923 "id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002924 "runtime_data" : [],
2925 "primitives" : [
2926 {
2927 "op" : "assign",
2928 "parameters" : [
2929 {
2930 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002931 "value" : ["userMetadata.spgw", "direction"]
2932 },
2933 {
2934 "type" : "hexstr",
2935 "value" : "0x00"
2936 }
2937 ],
2938 "source_info" : {
2939 "filename" : "include/control/../define.p4",
2940 "line" : 136,
2941 "column" : 37,
2942 "source_fragment" : "2w0; ..."
2943 }
2944 },
2945 {
2946 "op" : "assign",
2947 "parameters" : [
2948 {
2949 "type" : "field",
2950 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002951 },
2952 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002953 "type" : "expression",
2954 "value" : {
2955 "type" : "expression",
2956 "value" : {
2957 "op" : "b2d",
2958 "left" : null,
2959 "right" : {
2960 "type" : "bool",
2961 "value" : true
2962 }
2963 }
2964 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002965 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002966 ],
2967 "source_info" : {
2968 "filename" : "include/spgw.p4",
2969 "line" : 157,
2970 "column" : 12,
2971 "source_fragment" : "return"
2972 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002973 }
2974 ]
2975 },
2976 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002977 "name" : "act_15",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002978 "id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002979 "runtime_data" : [],
2980 "primitives" : [
2981 {
2982 "op" : "assign",
2983 "parameters" : [
2984 {
2985 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002986 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002987 },
2988 {
2989 "type" : "expression",
2990 "value" : {
2991 "type" : "expression",
2992 "value" : {
2993 "op" : "b2d",
2994 "left" : null,
2995 "right" : {
2996 "type" : "bool",
2997 "value" : false
2998 }
2999 }
3000 }
3001 }
3002 ]
3003 }
3004 ]
3005 },
3006 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003007 "name" : "act_16",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003008 "id" : 48,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003009 "runtime_data" : [],
3010 "primitives" : [
3011 {
3012 "op" : "assign",
3013 "parameters" : [
3014 {
3015 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003016 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003017 },
3018 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003019 "type" : "field",
3020 "value" : ["ipv4", "total_len"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003021 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003022 ],
3023 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003024 "filename" : "include/spgw.p4",
3025 "line" : 174,
3026 "column" : 8,
3027 "source_fragment" : "fabric_meta.spgw.ipv4_len = ipv4.total_len"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003028 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003029 }
3030 ]
3031 },
3032 {
3033 "name" : "act_17",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003034 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003035 "runtime_data" : [],
3036 "primitives" : [
3037 {
3038 "op" : "assign",
3039 "parameters" : [
3040 {
3041 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003042 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003043 },
3044 {
3045 "type" : "expression",
3046 "value" : {
3047 "type" : "expression",
3048 "value" : {
3049 "op" : "&",
3050 "left" : {
3051 "type" : "field",
3052 "value" : ["standard_metadata", "egress_spec"]
3053 },
3054 "right" : {
3055 "type" : "hexstr",
3056 "value" : "0xffffffff"
3057 }
3058 }
3059 }
3060 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003061 ],
3062 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003063 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003064 "line" : 31,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003065 "column" : 38,
3066 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3067 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003068 },
3069 {
3070 "op" : "count",
3071 "parameters" : [
3072 {
3073 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003074 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003075 },
3076 {
3077 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003078 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003079 }
3080 ],
3081 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003082 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003083 "line" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003084 "column" : 12,
3085 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3086 }
3087 }
3088 ]
3089 },
3090 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003091 "name" : "act_18",
3092 "id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003093 "runtime_data" : [],
3094 "primitives" : [
3095 {
3096 "op" : "assign",
3097 "parameters" : [
3098 {
3099 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003100 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003101 },
3102 {
3103 "type" : "expression",
3104 "value" : {
3105 "type" : "expression",
3106 "value" : {
3107 "op" : "&",
3108 "left" : {
3109 "type" : "field",
3110 "value" : ["standard_metadata", "ingress_port"]
3111 },
3112 "right" : {
3113 "type" : "hexstr",
3114 "value" : "0xffffffff"
3115 }
3116 }
3117 }
3118 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003119 ],
3120 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003121 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003122 "line" : 34,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003123 "column" : 39,
3124 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3125 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003126 },
3127 {
3128 "op" : "count",
3129 "parameters" : [
3130 {
3131 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003132 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003133 },
3134 {
3135 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003136 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003137 }
3138 ],
3139 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003140 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003141 "line" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003142 "column" : 12,
3143 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3144 }
3145 }
3146 ]
3147 },
3148 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003149 "name" : "nop",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003150 "id" : 51,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003151 "runtime_data" : [],
Charles Chancd03f072018-08-31 17:46:37 -07003152 "primitives" : []
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003153 },
3154 {
Charles Chancd03f072018-08-31 17:46:37 -07003155 "name" : "FabricEgress.spgw_egress.gtpu_encap",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003156 "id" : 52,
Charles Chancd03f072018-08-31 17:46:37 -07003157 "runtime_data" : [],
3158 "primitives" : [
3159 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003160 "op" : "add_header",
3161 "parameters" : [
3162 {
3163 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003164 "value" : "gtpu_ipv4"
3165 }
3166 ],
3167 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003168 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003169 "line" : 190,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003170 "column" : 8,
3171 "source_fragment" : "gtpu_ipv4.setValid()"
3172 }
3173 },
3174 {
3175 "op" : "assign",
3176 "parameters" : [
3177 {
3178 "type" : "field",
3179 "value" : ["gtpu_ipv4", "version"]
3180 },
3181 {
3182 "type" : "hexstr",
3183 "value" : "0x04"
3184 }
3185 ],
3186 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003187 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003188 "line" : 191,
Yi Tseng3d3956d2018-01-31 17:28:05 -08003189 "column" : 8,
3190 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003191 }
3192 },
3193 {
3194 "op" : "assign",
3195 "parameters" : [
3196 {
3197 "type" : "field",
3198 "value" : ["gtpu_ipv4", "ihl"]
3199 },
3200 {
3201 "type" : "hexstr",
3202 "value" : "0x05"
3203 }
3204 ],
3205 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003206 "filename" : "include/control/../define.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003207 "line" : 119,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003208 "column" : 28,
3209 "source_fragment" : "5; ..."
3210 }
3211 },
3212 {
3213 "op" : "assign",
3214 "parameters" : [
3215 {
3216 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003217 "value" : ["gtpu_ipv4", "dscp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003218 },
3219 {
3220 "type" : "hexstr",
3221 "value" : "0x00"
3222 }
3223 ],
3224 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003225 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003226 "line" : 193,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003227 "column" : 8,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003228 "source_fragment" : "gtpu_ipv4.dscp = 0"
3229 }
3230 },
3231 {
3232 "op" : "assign",
3233 "parameters" : [
3234 {
3235 "type" : "field",
3236 "value" : ["gtpu_ipv4", "ecn"]
3237 },
3238 {
3239 "type" : "hexstr",
3240 "value" : "0x00"
3241 }
3242 ],
3243 "source_info" : {
3244 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003245 "line" : 194,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003246 "column" : 8,
3247 "source_fragment" : "gtpu_ipv4.ecn = 0"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003248 }
3249 },
3250 {
3251 "op" : "assign",
3252 "parameters" : [
3253 {
3254 "type" : "field",
3255 "value" : ["gtpu_ipv4", "total_len"]
3256 },
3257 {
3258 "type" : "expression",
3259 "value" : {
3260 "type" : "expression",
3261 "value" : {
3262 "op" : "&",
3263 "left" : {
3264 "type" : "expression",
3265 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003266 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003267 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003268 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003269 "value" : ["ipv4", "total_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003270 },
3271 "right" : {
3272 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003273 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003274 }
3275 }
3276 },
3277 "right" : {
3278 "type" : "hexstr",
3279 "value" : "0xffff"
3280 }
3281 }
3282 }
3283 }
3284 ],
3285 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003286 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003287 "line" : 195,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003288 "column" : 8,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003289 "source_fragment" : "gtpu_ipv4.total_len = ipv4.total_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003290 }
3291 },
3292 {
3293 "op" : "assign",
3294 "parameters" : [
3295 {
3296 "type" : "field",
3297 "value" : ["gtpu_ipv4", "identification"]
3298 },
3299 {
3300 "type" : "hexstr",
3301 "value" : "0x1513"
3302 }
3303 ],
3304 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003305 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003306 "line" : 197,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003307 "column" : 8,
3308 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
3309 }
3310 },
3311 {
3312 "op" : "assign",
3313 "parameters" : [
3314 {
3315 "type" : "field",
3316 "value" : ["gtpu_ipv4", "flags"]
3317 },
3318 {
3319 "type" : "hexstr",
3320 "value" : "0x00"
3321 }
3322 ],
3323 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003324 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003325 "line" : 198,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003326 "column" : 8,
3327 "source_fragment" : "gtpu_ipv4.flags = 0"
3328 }
3329 },
3330 {
3331 "op" : "assign",
3332 "parameters" : [
3333 {
3334 "type" : "field",
3335 "value" : ["gtpu_ipv4", "frag_offset"]
3336 },
3337 {
3338 "type" : "hexstr",
3339 "value" : "0x0000"
3340 }
3341 ],
3342 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003343 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003344 "line" : 199,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003345 "column" : 8,
3346 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
3347 }
3348 },
3349 {
3350 "op" : "assign",
3351 "parameters" : [
3352 {
3353 "type" : "field",
3354 "value" : ["gtpu_ipv4", "ttl"]
3355 },
3356 {
3357 "type" : "hexstr",
3358 "value" : "0x40"
3359 }
3360 ],
3361 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003362 "filename" : "include/control/../define.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003363 "line" : 132,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003364 "column" : 32,
3365 "source_fragment" : "64; ..."
3366 }
3367 },
3368 {
3369 "op" : "assign",
3370 "parameters" : [
3371 {
3372 "type" : "field",
3373 "value" : ["gtpu_ipv4", "protocol"]
3374 },
3375 {
3376 "type" : "hexstr",
3377 "value" : "0x11"
3378 }
3379 ],
3380 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003381 "filename" : "include/control/../define.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003382 "line" : 116,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003383 "column" : 25,
3384 "source_fragment" : "17; ..."
3385 }
3386 },
3387 {
3388 "op" : "assign",
3389 "parameters" : [
3390 {
3391 "type" : "field",
3392 "value" : ["gtpu_ipv4", "dst_addr"]
3393 },
3394 {
3395 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003396 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003397 }
3398 ],
3399 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003400 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003401 "line" : 202,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003402 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003403 "source_fragment" : "gtpu_ipv4.dst_addr = fabric_meta.spgw.s1u_enb_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003404 }
3405 },
3406 {
3407 "op" : "assign",
3408 "parameters" : [
3409 {
3410 "type" : "field",
3411 "value" : ["gtpu_ipv4", "src_addr"]
3412 },
3413 {
3414 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003415 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003416 }
3417 ],
3418 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003419 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003420 "line" : 203,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003421 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003422 "source_fragment" : "gtpu_ipv4.src_addr = fabric_meta.spgw.s1u_sgw_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003423 }
3424 },
3425 {
3426 "op" : "assign",
3427 "parameters" : [
3428 {
3429 "type" : "field",
3430 "value" : ["gtpu_ipv4", "hdr_checksum"]
3431 },
3432 {
3433 "type" : "hexstr",
3434 "value" : "0x0000"
3435 }
3436 ],
3437 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003438 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003439 "line" : 204,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003440 "column" : 8,
3441 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
3442 }
3443 },
3444 {
3445 "op" : "add_header",
3446 "parameters" : [
3447 {
3448 "type" : "header",
3449 "value" : "gtpu_udp"
3450 }
3451 ],
3452 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003453 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003454 "line" : 206,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003455 "column" : 8,
3456 "source_fragment" : "gtpu_udp.setValid()"
3457 }
3458 },
3459 {
3460 "op" : "assign",
3461 "parameters" : [
3462 {
3463 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003464 "value" : ["gtpu_udp", "sport"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003465 },
3466 {
3467 "type" : "hexstr",
3468 "value" : "0x0868"
3469 }
3470 ],
3471 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003472 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003473 "line" : 207,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003474 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003475 "source_fragment" : "gtpu_udp.sport = 2152"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003476 }
3477 },
3478 {
3479 "op" : "assign",
3480 "parameters" : [
3481 {
3482 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003483 "value" : ["gtpu_udp", "dport"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003484 },
3485 {
3486 "type" : "hexstr",
3487 "value" : "0x0868"
3488 }
3489 ],
3490 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003491 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003492 "line" : 208,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003493 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003494 "source_fragment" : "gtpu_udp.dport = 2152"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003495 }
3496 },
3497 {
3498 "op" : "assign",
3499 "parameters" : [
3500 {
3501 "type" : "field",
3502 "value" : ["gtpu_udp", "len"]
3503 },
3504 {
3505 "type" : "expression",
3506 "value" : {
3507 "type" : "expression",
3508 "value" : {
3509 "op" : "&",
3510 "left" : {
3511 "type" : "expression",
3512 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003513 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003514 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003515 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003516 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003517 },
3518 "right" : {
3519 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003520 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003521 }
3522 }
3523 },
3524 "right" : {
3525 "type" : "hexstr",
3526 "value" : "0xffff"
3527 }
3528 }
3529 }
3530 }
3531 ],
3532 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003533 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003534 "line" : 209,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003535 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003536 "source_fragment" : "gtpu_udp.len = fabric_meta.spgw.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003537 }
3538 },
3539 {
3540 "op" : "assign",
3541 "parameters" : [
3542 {
3543 "type" : "field",
3544 "value" : ["gtpu_udp", "checksum"]
3545 },
3546 {
3547 "type" : "hexstr",
3548 "value" : "0x0000"
3549 }
3550 ],
3551 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003552 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003553 "line" : 211,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003554 "column" : 8,
3555 "source_fragment" : "gtpu_udp.checksum = 0"
3556 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08003557 },
3558 {
3559 "op" : "add_header",
3560 "parameters" : [
3561 {
3562 "type" : "header",
3563 "value" : "gtpu"
3564 }
3565 ],
3566 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003567 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003568 "line" : 213,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003569 "column" : 8,
3570 "source_fragment" : "gtpu.setValid()"
3571 }
3572 },
3573 {
3574 "op" : "assign",
3575 "parameters" : [
3576 {
3577 "type" : "field",
3578 "value" : ["gtpu", "version"]
3579 },
3580 {
3581 "type" : "hexstr",
3582 "value" : "0x01"
3583 }
3584 ],
3585 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003586 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003587 "line" : 214,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003588 "column" : 8,
3589 "source_fragment" : "gtpu.version = 0x01"
3590 }
3591 },
3592 {
3593 "op" : "assign",
3594 "parameters" : [
3595 {
3596 "type" : "field",
3597 "value" : ["gtpu", "pt"]
3598 },
3599 {
3600 "type" : "hexstr",
3601 "value" : "0x01"
3602 }
3603 ],
3604 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003605 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003606 "line" : 215,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003607 "column" : 8,
3608 "source_fragment" : "gtpu.pt = 0x01"
3609 }
3610 },
3611 {
3612 "op" : "assign",
3613 "parameters" : [
3614 {
3615 "type" : "field",
3616 "value" : ["gtpu", "spare"]
3617 },
3618 {
3619 "type" : "hexstr",
3620 "value" : "0x00"
3621 }
3622 ],
3623 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003624 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003625 "line" : 216,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003626 "column" : 8,
3627 "source_fragment" : "gtpu.spare = 0"
3628 }
3629 },
3630 {
3631 "op" : "assign",
3632 "parameters" : [
3633 {
3634 "type" : "field",
3635 "value" : ["gtpu", "ex_flag"]
3636 },
3637 {
3638 "type" : "hexstr",
3639 "value" : "0x00"
3640 }
3641 ],
3642 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003643 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003644 "line" : 217,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003645 "column" : 8,
3646 "source_fragment" : "gtpu.ex_flag = 0"
3647 }
3648 },
3649 {
3650 "op" : "assign",
3651 "parameters" : [
3652 {
3653 "type" : "field",
3654 "value" : ["gtpu", "seq_flag"]
3655 },
3656 {
3657 "type" : "hexstr",
3658 "value" : "0x00"
3659 }
3660 ],
3661 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003662 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003663 "line" : 218,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003664 "column" : 8,
3665 "source_fragment" : "gtpu.seq_flag = 0"
3666 }
3667 },
3668 {
3669 "op" : "assign",
3670 "parameters" : [
3671 {
3672 "type" : "field",
3673 "value" : ["gtpu", "npdu_flag"]
3674 },
3675 {
3676 "type" : "hexstr",
3677 "value" : "0x00"
3678 }
3679 ],
3680 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003681 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003682 "line" : 219,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003683 "column" : 8,
3684 "source_fragment" : "gtpu.npdu_flag = 0"
3685 }
3686 },
3687 {
3688 "op" : "assign",
3689 "parameters" : [
3690 {
3691 "type" : "field",
3692 "value" : ["gtpu", "msgtype"]
3693 },
3694 {
3695 "type" : "hexstr",
3696 "value" : "0xff"
3697 }
3698 ],
3699 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003700 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003701 "line" : 220,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003702 "column" : 8,
3703 "source_fragment" : "gtpu.msgtype = 0xff"
3704 }
3705 },
3706 {
3707 "op" : "assign",
3708 "parameters" : [
3709 {
3710 "type" : "field",
3711 "value" : ["gtpu", "msglen"]
3712 },
3713 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003714 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003715 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003716 }
3717 ],
3718 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003719 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003720 "line" : 221,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003721 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003722 "source_fragment" : "gtpu.msglen = fabric_meta.spgw.ipv4_len"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003723 }
3724 },
3725 {
3726 "op" : "assign",
3727 "parameters" : [
3728 {
3729 "type" : "field",
3730 "value" : ["gtpu", "teid"]
3731 },
3732 {
3733 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003734 "value" : ["userMetadata.spgw", "teid"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003735 }
3736 ],
3737 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003738 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003739 "line" : 222,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003740 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003741 "source_fragment" : "gtpu.teid = fabric_meta.spgw.teid"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003742 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003743 }
3744 ]
3745 },
3746 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003747 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
3748 "id" : 53,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003749 "runtime_data" : [],
3750 "primitives" : [
3751 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003752 "op" : "remove_header",
3753 "parameters" : [
3754 {
3755 "type" : "header",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003756 "value" : "mpls"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003757 }
3758 ],
3759 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003760 "filename" : "include/control/next.p4",
3761 "line" : 246,
Yi Tseng47eac892018-07-11 02:17:04 +08003762 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003763 "source_fragment" : "hdr.mpls.setInvalid()"
Yi Tseng47eac892018-07-11 02:17:04 +08003764 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003765 },
Yi Tseng47eac892018-07-11 02:17:04 +08003766 {
3767 "op" : "assign",
3768 "parameters" : [
3769 {
3770 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003771 "value" : ["scalars", "fabric_metadata_t.eth_type"]
Yi Tseng47eac892018-07-11 02:17:04 +08003772 },
3773 {
3774 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003775 "value" : ["scalars", "fabric_metadata_t.ip_eth_type"]
3776 }
3777 ],
3778 "source_info" : {
3779 "filename" : "include/control/next.p4",
3780 "line" : 248,
3781 "column" : 8,
3782 "source_fragment" : "fabric_metadata.eth_type = fabric_metadata.ip_eth_type"
3783 }
3784 }
3785 ]
3786 },
3787 {
3788 "name" : "FabricEgress.egress_next.set_mpls",
3789 "id" : 54,
3790 "runtime_data" : [],
3791 "primitives" : [
3792 {
3793 "op" : "add_header",
3794 "parameters" : [
3795 {
3796 "type" : "header",
3797 "value" : "mpls"
Yi Tseng47eac892018-07-11 02:17:04 +08003798 }
3799 ],
3800 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003801 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003802 "line" : 253,
Yi Tseng47eac892018-07-11 02:17:04 +08003803 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003804 "source_fragment" : "hdr.mpls.setValid()"
3805 }
3806 },
3807 {
3808 "op" : "assign",
3809 "parameters" : [
3810 {
3811 "type" : "field",
3812 "value" : ["mpls", "label"]
3813 },
3814 {
3815 "type" : "field",
3816 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
3817 }
3818 ],
3819 "source_info" : {
3820 "filename" : "include/control/next.p4",
3821 "line" : 254,
3822 "column" : 8,
3823 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label"
3824 }
3825 },
3826 {
3827 "op" : "assign",
3828 "parameters" : [
3829 {
3830 "type" : "field",
3831 "value" : ["mpls", "tc"]
3832 },
3833 {
3834 "type" : "hexstr",
3835 "value" : "0x00"
3836 }
3837 ],
3838 "source_info" : {
3839 "filename" : "include/control/next.p4",
3840 "line" : 255,
3841 "column" : 8,
3842 "source_fragment" : "hdr.mpls.tc = 3w0"
3843 }
3844 },
3845 {
3846 "op" : "assign",
3847 "parameters" : [
3848 {
3849 "type" : "field",
3850 "value" : ["mpls", "bos"]
3851 },
3852 {
3853 "type" : "hexstr",
3854 "value" : "0x01"
3855 }
3856 ],
3857 "source_info" : {
3858 "filename" : "include/control/next.p4",
3859 "line" : 256,
3860 "column" : 8,
3861 "source_fragment" : "hdr.mpls.bos = 1w1"
3862 }
3863 },
3864 {
3865 "op" : "assign",
3866 "parameters" : [
3867 {
3868 "type" : "field",
3869 "value" : ["mpls", "ttl"]
3870 },
3871 {
3872 "type" : "field",
3873 "value" : ["scalars", "fabric_metadata_t.mpls_ttl"]
3874 }
3875 ],
3876 "source_info" : {
3877 "filename" : "include/control/next.p4",
3878 "line" : 257,
3879 "column" : 8,
3880 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl"
3881 }
3882 },
3883 {
3884 "op" : "assign",
3885 "parameters" : [
3886 {
3887 "type" : "field",
3888 "value" : ["scalars", "fabric_metadata_t.eth_type"]
3889 },
3890 {
3891 "type" : "hexstr",
3892 "value" : "0x8847"
3893 }
3894 ],
3895 "source_info" : {
3896 "filename" : "include/control/../define.p4",
3897 "line" : 108,
3898 "column" : 31,
3899 "source_fragment" : "0x8847; ..."
3900 }
3901 }
3902 ]
3903 },
3904 {
3905 "name" : "FabricEgress.egress_next.push_vlan",
3906 "id" : 55,
3907 "runtime_data" : [],
3908 "primitives" : [
3909 {
3910 "op" : "add_header",
3911 "parameters" : [
3912 {
3913 "type" : "header",
3914 "value" : "vlan_tag"
3915 }
3916 ],
3917 "source_info" : {
3918 "filename" : "include/control/next.p4",
3919 "line" : 265,
3920 "column" : 8,
3921 "source_fragment" : "hdr.vlan_tag.setValid()"
3922 }
3923 },
3924 {
3925 "op" : "assign",
3926 "parameters" : [
3927 {
3928 "type" : "field",
3929 "value" : ["vlan_tag", "cfi"]
3930 },
3931 {
3932 "type" : "field",
3933 "value" : ["scalars", "fabric_metadata_t.vlan_cfi"]
3934 }
3935 ],
3936 "source_info" : {
3937 "filename" : "include/control/next.p4",
3938 "line" : 266,
3939 "column" : 8,
3940 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi"
3941 }
3942 },
3943 {
3944 "op" : "assign",
3945 "parameters" : [
3946 {
3947 "type" : "field",
3948 "value" : ["vlan_tag", "pri"]
3949 },
3950 {
3951 "type" : "field",
3952 "value" : ["scalars", "fabric_metadata_t.vlan_pri"]
3953 }
3954 ],
3955 "source_info" : {
3956 "filename" : "include/control/next.p4",
3957 "line" : 267,
3958 "column" : 8,
3959 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri"
3960 }
3961 },
3962 {
3963 "op" : "assign",
3964 "parameters" : [
3965 {
3966 "type" : "field",
3967 "value" : ["vlan_tag", "eth_type"]
3968 },
3969 {
3970 "type" : "field",
3971 "value" : ["scalars", "fabric_metadata_t.eth_type"]
3972 }
3973 ],
3974 "source_info" : {
3975 "filename" : "include/control/next.p4",
3976 "line" : 268,
3977 "column" : 8,
3978 "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.eth_type"
3979 }
3980 },
3981 {
3982 "op" : "assign",
3983 "parameters" : [
3984 {
3985 "type" : "field",
3986 "value" : ["vlan_tag", "vlan_id"]
3987 },
3988 {
3989 "type" : "field",
3990 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
3991 }
3992 ],
3993 "source_info" : {
3994 "filename" : "include/control/next.p4",
3995 "line" : 269,
3996 "column" : 8,
3997 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id"
3998 }
3999 },
4000 {
4001 "op" : "assign",
4002 "parameters" : [
4003 {
4004 "type" : "field",
4005 "value" : ["ethernet", "eth_type"]
4006 },
4007 {
4008 "type" : "hexstr",
4009 "value" : "0x8100"
4010 }
4011 ],
4012 "source_info" : {
4013 "filename" : "include/control/../define.p4",
4014 "line" : 107,
4015 "column" : 31,
4016 "source_fragment" : "0x8100; ..."
4017 }
4018 }
4019 ]
4020 },
4021 {
4022 "name" : "FabricEgress.egress_next.pop_vlan",
4023 "id" : 56,
4024 "runtime_data" : [],
4025 "primitives" : [
4026 {
4027 "op" : "assign",
4028 "parameters" : [
4029 {
4030 "type" : "field",
4031 "value" : ["ethernet", "eth_type"]
4032 },
4033 {
4034 "type" : "field",
4035 "value" : ["scalars", "fabric_metadata_t.eth_type"]
4036 }
4037 ],
4038 "source_info" : {
4039 "filename" : "include/control/next.p4",
4040 "line" : 280,
4041 "column" : 8,
4042 "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.eth_type"
Yi Tseng47eac892018-07-11 02:17:04 +08004043 }
4044 },
4045 {
4046 "op" : "remove_header",
4047 "parameters" : [
4048 {
4049 "type" : "header",
4050 "value" : "vlan_tag"
4051 }
4052 ],
4053 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004054 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004055 "line" : 281,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004056 "column" : 8,
4057 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4058 }
4059 }
4060 ]
4061 },
4062 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004063 "name" : "act_19",
4064 "id" : 57,
4065 "runtime_data" : [],
4066 "primitives" : [
4067 {
4068 "op" : "drop",
4069 "parameters" : [],
4070 "source_info" : {
4071 "filename" : "include/control/packetio.p4",
4072 "line" : 47,
4073 "column" : 16,
4074 "source_fragment" : "mark_to_drop()"
4075 }
4076 }
4077 ]
4078 },
4079 {
4080 "name" : "act_20",
4081 "id" : 58,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004082 "runtime_data" : [],
4083 "primitives" : [
4084 {
4085 "op" : "add_header",
4086 "parameters" : [
4087 {
4088 "type" : "header",
4089 "value" : "packet_in"
4090 }
4091 ],
4092 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004093 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004094 "line" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004095 "column" : 12,
4096 "source_fragment" : "hdr.packet_in.setValid()"
4097 }
4098 },
4099 {
4100 "op" : "assign",
4101 "parameters" : [
4102 {
4103 "type" : "field",
4104 "value" : ["packet_in", "ingress_port"]
4105 },
4106 {
4107 "type" : "field",
4108 "value" : ["standard_metadata", "ingress_port"]
4109 }
4110 ],
4111 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004112 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004113 "line" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004114 "column" : 12,
4115 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4116 }
4117 }
4118 ]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004119 },
4120 {
4121 "name" : "act_21",
4122 "id" : 59,
4123 "runtime_data" : [],
4124 "primitives" : [
4125 {
4126 "op" : "drop",
4127 "parameters" : [],
4128 "source_info" : {
4129 "filename" : "include/control/next.p4",
4130 "line" : 301,
4131 "column" : 12,
4132 "source_fragment" : "mark_to_drop()"
4133 }
4134 }
4135 ]
4136 },
4137 {
4138 "name" : "act_22",
4139 "id" : 60,
4140 "runtime_data" : [],
4141 "primitives" : [
4142 {
4143 "op" : "assign",
4144 "parameters" : [
4145 {
4146 "type" : "field",
4147 "value" : ["scalars", "egress_next_tmp"]
4148 },
4149 {
4150 "type" : "expression",
4151 "value" : {
4152 "type" : "expression",
4153 "value" : {
4154 "op" : "b2d",
4155 "left" : null,
4156 "right" : {
4157 "type" : "bool",
4158 "value" : true
4159 }
4160 }
4161 }
4162 }
4163 ]
4164 }
4165 ]
4166 },
4167 {
4168 "name" : "act_23",
4169 "id" : 61,
4170 "runtime_data" : [],
4171 "primitives" : [
4172 {
4173 "op" : "assign",
4174 "parameters" : [
4175 {
4176 "type" : "field",
4177 "value" : ["scalars", "egress_next_tmp"]
4178 },
4179 {
4180 "type" : "expression",
4181 "value" : {
4182 "type" : "expression",
4183 "value" : {
4184 "op" : "b2d",
4185 "left" : null,
4186 "right" : {
4187 "type" : "bool",
4188 "value" : false
4189 }
4190 }
4191 }
4192 }
4193 ]
4194 }
4195 ]
4196 },
4197 {
4198 "name" : "act_24",
4199 "id" : 62,
4200 "runtime_data" : [],
4201 "primitives" : [
4202 {
4203 "op" : "drop",
4204 "parameters" : [],
4205 "source_info" : {
4206 "filename" : "include/control/next.p4",
4207 "line" : 320,
4208 "column" : 35,
4209 "source_fragment" : "mark_to_drop()"
4210 }
4211 }
4212 ]
4213 },
4214 {
4215 "name" : "act_25",
4216 "id" : 63,
4217 "runtime_data" : [],
4218 "primitives" : [
4219 {
4220 "op" : "assign",
4221 "parameters" : [
4222 {
4223 "type" : "field",
4224 "value" : ["mpls", "ttl"]
4225 },
4226 {
4227 "type" : "expression",
4228 "value" : {
4229 "type" : "expression",
4230 "value" : {
4231 "op" : "&",
4232 "left" : {
4233 "type" : "expression",
4234 "value" : {
4235 "op" : "+",
4236 "left" : {
4237 "type" : "field",
4238 "value" : ["mpls", "ttl"]
4239 },
4240 "right" : {
4241 "type" : "hexstr",
4242 "value" : "0xff"
4243 }
4244 }
4245 },
4246 "right" : {
4247 "type" : "hexstr",
4248 "value" : "0xff"
4249 }
4250 }
4251 }
4252 }
4253 ],
4254 "source_info" : {
4255 "filename" : "include/control/next.p4",
4256 "line" : 319,
4257 "column" : 12,
4258 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
4259 }
4260 }
4261 ]
4262 },
4263 {
4264 "name" : "act_26",
4265 "id" : 64,
4266 "runtime_data" : [],
4267 "primitives" : [
4268 {
4269 "op" : "drop",
4270 "parameters" : [],
4271 "source_info" : {
4272 "filename" : "include/control/next.p4",
4273 "line" : 324,
4274 "column" : 39,
4275 "source_fragment" : "mark_to_drop()"
4276 }
4277 }
4278 ]
4279 },
4280 {
4281 "name" : "act_27",
4282 "id" : 65,
4283 "runtime_data" : [],
4284 "primitives" : [
4285 {
4286 "op" : "assign",
4287 "parameters" : [
4288 {
4289 "type" : "field",
4290 "value" : ["ipv4", "ttl"]
4291 },
4292 {
4293 "type" : "expression",
4294 "value" : {
4295 "type" : "expression",
4296 "value" : {
4297 "op" : "&",
4298 "left" : {
4299 "type" : "expression",
4300 "value" : {
4301 "op" : "+",
4302 "left" : {
4303 "type" : "field",
4304 "value" : ["ipv4", "ttl"]
4305 },
4306 "right" : {
4307 "type" : "hexstr",
4308 "value" : "0xff"
4309 }
4310 }
4311 },
4312 "right" : {
4313 "type" : "hexstr",
4314 "value" : "0xff"
4315 }
4316 }
4317 }
4318 }
4319 ],
4320 "source_info" : {
4321 "filename" : "include/control/next.p4",
4322 "line" : 323,
4323 "column" : 16,
4324 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
4325 }
4326 }
4327 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004328 }
4329 ],
4330 "pipelines" : [
4331 {
4332 "name" : "ingress",
4333 "id" : 0,
4334 "source_info" : {
4335 "filename" : "fabric.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004336 "line" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004337 "column" : 8,
4338 "source_fragment" : "FabricIngress"
4339 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004340 "init_table" : "tbl_act",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004341 "tables" : [
4342 {
4343 "name" : "tbl_act",
4344 "id" : 0,
4345 "key" : [],
4346 "match_type" : "exact",
4347 "type" : "simple",
4348 "max_size" : 1024,
4349 "with_counters" : false,
4350 "support_timeout" : false,
4351 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004352 "action_ids" : [32],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004353 "actions" : ["act_0"],
4354 "base_default_next" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004355 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004356 "act_0" : "node_3"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004357 },
4358 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004359 "action_id" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004360 "action_const" : true,
4361 "action_data" : [],
4362 "action_entry_const" : true
4363 }
4364 },
4365 {
4366 "name" : "tbl_act_0",
4367 "id" : 1,
4368 "key" : [],
4369 "match_type" : "exact",
4370 "type" : "simple",
4371 "max_size" : 1024,
4372 "with_counters" : false,
4373 "support_timeout" : false,
4374 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004375 "action_ids" : [31],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004376 "actions" : ["act"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004377 "base_default_next" : "node_5",
4378 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004379 "act" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004380 },
4381 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004382 "action_id" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004383 "action_const" : true,
4384 "action_data" : [],
4385 "action_entry_const" : true
4386 }
4387 },
4388 {
4389 "name" : "tbl_act_1",
4390 "id" : 2,
4391 "key" : [],
4392 "match_type" : "exact",
4393 "type" : "simple",
4394 "max_size" : 1024,
4395 "with_counters" : false,
4396 "support_timeout" : false,
4397 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004398 "action_ids" : [35],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004399 "actions" : ["act_3"],
4400 "base_default_next" : "node_7",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004401 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004402 "act_3" : "node_7"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004403 },
4404 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004405 "action_id" : 35,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004406 "action_const" : true,
4407 "action_data" : [],
4408 "action_entry_const" : true
4409 }
4410 },
4411 {
4412 "name" : "tbl_act_2",
4413 "id" : 3,
4414 "key" : [],
4415 "match_type" : "exact",
4416 "type" : "simple",
4417 "max_size" : 1024,
4418 "with_counters" : false,
4419 "support_timeout" : false,
4420 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004421 "action_ids" : [33],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004422 "actions" : ["act_1"],
4423 "base_default_next" : "node_10",
4424 "next_tables" : {
4425 "act_1" : "node_10"
4426 },
4427 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004428 "action_id" : 33,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004429 "action_const" : true,
4430 "action_data" : [],
4431 "action_entry_const" : true
4432 }
4433 },
4434 {
4435 "name" : "tbl_act_3",
4436 "id" : 4,
4437 "key" : [],
4438 "match_type" : "exact",
4439 "type" : "simple",
4440 "max_size" : 1024,
4441 "with_counters" : false,
4442 "support_timeout" : false,
4443 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004444 "action_ids" : [34],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004445 "actions" : ["act_2"],
4446 "base_default_next" : "node_10",
4447 "next_tables" : {
4448 "act_2" : "node_10"
4449 },
4450 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004451 "action_id" : 34,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004452 "action_const" : true,
4453 "action_data" : [],
4454 "action_entry_const" : true
4455 }
4456 },
4457 {
4458 "name" : "tbl_act_4",
4459 "id" : 5,
4460 "key" : [],
4461 "match_type" : "exact",
4462 "type" : "simple",
4463 "max_size" : 1024,
4464 "with_counters" : false,
4465 "support_timeout" : false,
4466 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004467 "action_ids" : [36],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004468 "actions" : ["act_4"],
4469 "base_default_next" : null,
4470 "next_tables" : {
4471 "act_4" : null
4472 },
4473 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004474 "action_id" : 36,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004475 "action_const" : true,
4476 "action_data" : [],
4477 "action_entry_const" : true
4478 }
4479 },
4480 {
4481 "name" : "tbl_act_5",
4482 "id" : 6,
4483 "key" : [],
4484 "match_type" : "exact",
4485 "type" : "simple",
4486 "max_size" : 1024,
4487 "with_counters" : false,
4488 "support_timeout" : false,
4489 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004490 "action_ids" : [37],
4491 "actions" : ["act_5"],
4492 "base_default_next" : "node_14",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004493 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004494 "act_5" : "node_14"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004495 },
4496 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004497 "action_id" : 37,
4498 "action_const" : true,
4499 "action_data" : [],
4500 "action_entry_const" : true
4501 }
4502 },
4503 {
4504 "name" : "tbl_act_6",
4505 "id" : 7,
4506 "key" : [],
4507 "match_type" : "exact",
4508 "type" : "simple",
4509 "max_size" : 1024,
4510 "with_counters" : false,
4511 "support_timeout" : false,
4512 "direct_meters" : null,
4513 "action_ids" : [38],
4514 "actions" : ["act_6"],
4515 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
4516 "next_tables" : {
4517 "act_6" : "FabricIngress.filtering.ingress_port_vlan"
4518 },
4519 "default_entry" : {
4520 "action_id" : 38,
4521 "action_const" : true,
4522 "action_data" : [],
4523 "action_entry_const" : true
4524 }
4525 },
4526 {
4527 "name" : "FabricIngress.filtering.ingress_port_vlan",
4528 "id" : 8,
4529 "source_info" : {
4530 "filename" : "include/control/filtering.p4",
4531 "line" : 51,
4532 "column" : 10,
4533 "source_fragment" : "ingress_port_vlan"
4534 },
4535 "key" : [
4536 {
4537 "match_type" : "exact",
4538 "name" : "ig_port",
4539 "target" : ["standard_metadata", "ingress_port"],
4540 "mask" : null
4541 },
4542 {
4543 "match_type" : "exact",
4544 "name" : "vlan_is_valid",
4545 "target" : ["vlan_tag", "$valid$"],
4546 "mask" : null
4547 },
4548 {
4549 "match_type" : "ternary",
4550 "name" : "vlan_id",
4551 "target" : ["vlan_tag", "vlan_id"],
4552 "mask" : null
4553 }
4554 ],
4555 "match_type" : "ternary",
4556 "type" : "simple",
4557 "max_size" : 1024,
4558 "with_counters" : true,
4559 "support_timeout" : false,
4560 "direct_meters" : null,
4561 "action_ids" : [11, 12, 13],
4562 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
4563 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
4564 "next_tables" : {
4565 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
4566 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
4567 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
4568 },
4569 "default_entry" : {
4570 "action_id" : 11,
4571 "action_const" : true,
4572 "action_data" : [],
4573 "action_entry_const" : true
4574 }
4575 },
4576 {
4577 "name" : "FabricIngress.filtering.fwd_classifier",
4578 "id" : 9,
4579 "source_info" : {
4580 "filename" : "include/control/filtering.p4",
4581 "line" : 86,
4582 "column" : 10,
4583 "source_fragment" : "fwd_classifier"
4584 },
4585 "key" : [
4586 {
4587 "match_type" : "exact",
4588 "name" : "ig_port",
4589 "target" : ["standard_metadata", "ingress_port"],
4590 "mask" : null
4591 },
4592 {
4593 "match_type" : "ternary",
4594 "name" : "eth_dst",
4595 "target" : ["ethernet", "dst_addr"],
4596 "mask" : null
4597 },
4598 {
4599 "match_type" : "exact",
4600 "name" : "eth_type",
4601 "target" : ["scalars", "fabric_metadata_t.eth_type"],
4602 "mask" : null
4603 }
4604 ],
4605 "match_type" : "ternary",
4606 "type" : "simple",
4607 "max_size" : 1024,
4608 "with_counters" : true,
4609 "support_timeout" : false,
4610 "direct_meters" : null,
4611 "action_ids" : [14],
4612 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
4613 "base_default_next" : "tbl_act_7",
4614 "next_tables" : {
4615 "FabricIngress.filtering.set_forwarding_type" : "tbl_act_7"
4616 },
4617 "default_entry" : {
4618 "action_id" : 14,
4619 "action_const" : true,
4620 "action_data" : ["0x0"],
4621 "action_entry_const" : true
4622 }
4623 },
4624 {
4625 "name" : "tbl_act_7",
4626 "id" : 10,
4627 "key" : [],
4628 "match_type" : "exact",
4629 "type" : "simple",
4630 "max_size" : 1024,
4631 "with_counters" : false,
4632 "support_timeout" : false,
4633 "direct_meters" : null,
4634 "action_ids" : [47],
4635 "actions" : ["act_15"],
4636 "base_default_next" : "node_19",
4637 "next_tables" : {
4638 "act_15" : "node_19"
4639 },
4640 "default_entry" : {
4641 "action_id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004642 "action_const" : true,
4643 "action_data" : [],
4644 "action_entry_const" : true
4645 }
4646 },
4647 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004648 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004649 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004650 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004651 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004652 "line" : 82,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004653 "column" : 10,
4654 "source_fragment" : "s1u_filter_table"
4655 },
4656 "key" : [
4657 {
4658 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004659 "name" : "gtp_ipv4_dst",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004660 "target" : ["gtpu_ipv4", "dst_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004661 "mask" : null
4662 }
4663 ],
4664 "match_type" : "exact",
4665 "type" : "simple",
4666 "max_size" : 1024,
4667 "with_counters" : false,
4668 "support_timeout" : false,
4669 "direct_meters" : null,
4670 "action_ids" : [1],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004671 "actions" : ["nop"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004672 "base_default_next" : null,
4673 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004674 "__HIT__" : "tbl_act_8",
4675 "__MISS__" : "tbl_act_9"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004676 },
4677 "default_entry" : {
4678 "action_id" : 1,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004679 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004680 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004681 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004682 }
4683 },
4684 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004685 "name" : "tbl_act_8",
4686 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004687 "key" : [],
4688 "match_type" : "exact",
4689 "type" : "simple",
4690 "max_size" : 1024,
4691 "with_counters" : false,
4692 "support_timeout" : false,
4693 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004694 "action_ids" : [39],
4695 "actions" : ["act_7"],
4696 "base_default_next" : "node_23",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004697 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004698 "act_7" : "node_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004699 },
4700 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004701 "action_id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004702 "action_const" : true,
4703 "action_data" : [],
4704 "action_entry_const" : true
4705 }
4706 },
4707 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004708 "name" : "tbl_act_9",
4709 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004710 "key" : [],
4711 "match_type" : "exact",
4712 "type" : "simple",
4713 "max_size" : 1024,
4714 "with_counters" : false,
4715 "support_timeout" : false,
4716 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004717 "action_ids" : [40],
4718 "actions" : ["act_8"],
4719 "base_default_next" : "node_23",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004720 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004721 "act_8" : "node_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004722 },
4723 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004724 "action_id" : 40,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004725 "action_const" : true,
4726 "action_data" : [],
4727 "action_entry_const" : true
4728 }
4729 },
4730 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004731 "name" : "tbl_act_10",
4732 "id" : 14,
4733 "key" : [],
4734 "match_type" : "exact",
4735 "type" : "simple",
4736 "max_size" : 1024,
4737 "with_counters" : false,
4738 "support_timeout" : false,
4739 "direct_meters" : null,
4740 "action_ids" : [41],
4741 "actions" : ["act_9"],
4742 "base_default_next" : "tbl_act_11",
4743 "next_tables" : {
4744 "act_9" : "tbl_act_11"
4745 },
4746 "default_entry" : {
4747 "action_id" : 41,
4748 "action_const" : true,
4749 "action_data" : [],
4750 "action_entry_const" : true
4751 }
4752 },
4753 {
4754 "name" : "tbl_act_11",
4755 "id" : 15,
4756 "key" : [],
4757 "match_type" : "exact",
4758 "type" : "simple",
4759 "max_size" : 1024,
4760 "with_counters" : false,
4761 "support_timeout" : false,
4762 "direct_meters" : null,
4763 "action_ids" : [42],
4764 "actions" : ["act_10"],
4765 "base_default_next" : "tbl_spgw_ingress_gtpu_decap",
4766 "next_tables" : {
4767 "act_10" : "tbl_spgw_ingress_gtpu_decap"
4768 },
4769 "default_entry" : {
4770 "action_id" : 42,
4771 "action_const" : true,
4772 "action_data" : [],
4773 "action_entry_const" : true
4774 }
4775 },
4776 {
4777 "name" : "tbl_spgw_ingress_gtpu_decap",
4778 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004779 "key" : [],
4780 "match_type" : "exact",
4781 "type" : "simple",
4782 "max_size" : 1024,
4783 "with_counters" : false,
4784 "support_timeout" : false,
4785 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004786 "action_ids" : [9],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004787 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
4788 "base_default_next" : "node_33",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004789 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004790 "FabricIngress.spgw_ingress.gtpu_decap" : "node_33"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004791 },
4792 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004793 "action_id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004794 "action_const" : true,
4795 "action_data" : [],
4796 "action_entry_const" : true
4797 }
4798 },
4799 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004800 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004801 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004802 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004803 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004804 "line" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004805 "column" : 10,
4806 "source_fragment" : "dl_sess_lookup"
4807 },
4808 "key" : [
4809 {
4810 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004811 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004812 "target" : ["ipv4", "dst_addr"],
4813 "mask" : null
4814 }
4815 ],
4816 "match_type" : "exact",
4817 "type" : "simple",
4818 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004819 "with_counters" : true,
4820 "support_timeout" : false,
4821 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004822 "action_ids" : [10, 0],
4823 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "nop"],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004824 "base_default_next" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004825 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004826 "__HIT__" : "tbl_act_12",
4827 "__MISS__" : "tbl_act_13"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004828 },
4829 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004830 "action_id" : 0,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004831 "action_const" : true,
4832 "action_data" : [],
4833 "action_entry_const" : true
4834 }
4835 },
4836 {
4837 "name" : "tbl_act_12",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004838 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004839 "key" : [],
4840 "match_type" : "exact",
4841 "type" : "simple",
4842 "max_size" : 1024,
4843 "with_counters" : false,
4844 "support_timeout" : false,
4845 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004846 "action_ids" : [43],
4847 "actions" : ["act_11"],
4848 "base_default_next" : "node_30",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004849 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004850 "act_11" : "node_30"
Yi Tseng27b9bc02018-04-12 14:52:40 +08004851 },
4852 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004853 "action_id" : 43,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004854 "action_const" : true,
4855 "action_data" : [],
4856 "action_entry_const" : true
4857 }
4858 },
4859 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004860 "name" : "tbl_act_13",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004861 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004862 "key" : [],
4863 "match_type" : "exact",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004864 "type" : "simple",
4865 "max_size" : 1024,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004866 "with_counters" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004867 "support_timeout" : false,
4868 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004869 "action_ids" : [44],
4870 "actions" : ["act_12"],
4871 "base_default_next" : "node_30",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004872 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004873 "act_12" : "node_30"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004874 },
4875 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004876 "action_id" : 44,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004877 "action_const" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004878 "action_data" : [],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004879 "action_entry_const" : true
4880 }
4881 },
4882 {
4883 "name" : "tbl_act_14",
4884 "id" : 20,
4885 "key" : [],
4886 "match_type" : "exact",
4887 "type" : "simple",
4888 "max_size" : 1024,
4889 "with_counters" : false,
4890 "support_timeout" : false,
4891 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004892 "action_ids" : [45],
4893 "actions" : ["act_13"],
4894 "base_default_next" : "node_33",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004895 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004896 "act_13" : "node_33"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004897 },
4898 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004899 "action_id" : 45,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004900 "action_const" : true,
4901 "action_data" : [],
4902 "action_entry_const" : true
4903 }
4904 },
4905 {
4906 "name" : "tbl_act_15",
4907 "id" : 21,
4908 "key" : [],
4909 "match_type" : "exact",
4910 "type" : "simple",
4911 "max_size" : 1024,
4912 "with_counters" : false,
4913 "support_timeout" : false,
4914 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004915 "action_ids" : [46],
4916 "actions" : ["act_14"],
4917 "base_default_next" : "node_33",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004918 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004919 "act_14" : "node_33"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004920 },
4921 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004922 "action_id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004923 "action_const" : true,
4924 "action_data" : [],
4925 "action_entry_const" : true
4926 }
4927 },
4928 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004929 "name" : "tbl_act_16",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004930 "id" : 22,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004931 "key" : [],
4932 "match_type" : "exact",
4933 "type" : "simple",
4934 "max_size" : 1024,
4935 "with_counters" : false,
4936 "support_timeout" : false,
4937 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004938 "action_ids" : [48],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004939 "actions" : ["act_16"],
4940 "base_default_next" : "node_35",
4941 "next_tables" : {
4942 "act_16" : "node_35"
4943 },
4944 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004945 "action_id" : 48,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004946 "action_const" : true,
4947 "action_data" : [],
4948 "action_entry_const" : true
4949 }
4950 },
4951 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004952 "name" : "FabricIngress.forwarding.bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004953 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004954 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004955 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004956 "line" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004957 "column" : 10,
4958 "source_fragment" : "bridging"
4959 },
4960 "key" : [
4961 {
4962 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004963 "name" : "vlan_id",
4964 "target" : ["scalars", "fabric_metadata_t.vlan_id"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004965 "mask" : null
4966 },
4967 {
4968 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004969 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004970 "target" : ["ethernet", "dst_addr"],
4971 "mask" : null
4972 }
4973 ],
4974 "match_type" : "ternary",
4975 "type" : "simple",
4976 "max_size" : 1024,
4977 "with_counters" : true,
4978 "support_timeout" : false,
4979 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004980 "action_ids" : [15, 2],
4981 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
4982 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004983 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004984 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.acl.acl",
4985 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004986 },
4987 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004988 "action_id" : 2,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004989 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004990 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004991 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004992 }
4993 },
4994 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004995 "name" : "FabricIngress.forwarding.mpls",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004996 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004997 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004998 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004999 "line" : 67,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005000 "column" : 10,
5001 "source_fragment" : "mpls"
5002 },
5003 "key" : [
5004 {
5005 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005006 "name" : "mpls_label",
5007 "target" : ["scalars", "fabric_metadata_t.mpls_label"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005008 "mask" : null
5009 }
5010 ],
5011 "match_type" : "exact",
5012 "type" : "simple",
5013 "max_size" : 1024,
5014 "with_counters" : true,
5015 "support_timeout" : false,
5016 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005017 "action_ids" : [16, 3],
5018 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
5019 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005020 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005021 "FabricIngress.forwarding.pop_mpls_and_next" : "FabricIngress.acl.acl",
5022 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005023 },
5024 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005025 "action_id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005026 "action_const" : true,
5027 "action_data" : [],
5028 "action_entry_const" : true
5029 }
5030 },
5031 {
Charles Chan384aea22018-08-23 22:08:02 -07005032 "name" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005033 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005034 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005035 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005036 "line" : 93,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005037 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07005038 "source_fragment" : "routing_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005039 },
5040 "key" : [
5041 {
5042 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005043 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005044 "target" : ["ipv4", "dst_addr"],
5045 "mask" : null
5046 }
5047 ],
5048 "match_type" : "lpm",
5049 "type" : "simple",
5050 "max_size" : 1024,
5051 "with_counters" : true,
5052 "support_timeout" : false,
5053 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005054 "action_ids" : [17, 18, 4],
5055 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
5056 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005057 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005058 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.acl.acl",
5059 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.acl.acl",
5060 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005061 },
5062 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005063 "action_id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005064 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005065 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005066 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005067 }
5068 },
5069 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005070 "name" : "FabricIngress.acl.acl",
5071 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005072 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005073 "filename" : "include/control/acl.p4",
5074 "line" : 60,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005075 "column" : 10,
5076 "source_fragment" : "acl"
5077 },
5078 "key" : [
5079 {
5080 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005081 "name" : "ig_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005082 "target" : ["standard_metadata", "ingress_port"],
5083 "mask" : null
5084 },
5085 {
5086 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005087 "name" : "ip_proto",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005088 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
5089 "mask" : null
5090 },
5091 {
5092 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005093 "name" : "l4_sport",
5094 "target" : ["scalars", "fabric_metadata_t.l4_sport"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005095 "mask" : null
5096 },
5097 {
5098 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005099 "name" : "l4_dport",
5100 "target" : ["scalars", "fabric_metadata_t.l4_dport"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005101 "mask" : null
5102 },
5103 {
5104 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005105 "name" : "eth_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005106 "target" : ["ethernet", "dst_addr"],
5107 "mask" : null
5108 },
5109 {
5110 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005111 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005112 "target" : ["ethernet", "src_addr"],
5113 "mask" : null
5114 },
5115 {
5116 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005117 "name" : "vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005118 "target" : ["vlan_tag", "vlan_id"],
5119 "mask" : null
5120 },
5121 {
5122 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005123 "name" : "eth_type",
5124 "target" : ["scalars", "fabric_metadata_t.eth_type"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08005125 "mask" : null
5126 },
5127 {
5128 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005129 "name" : "ipv4_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005130 "target" : ["ipv4", "src_addr"],
5131 "mask" : null
5132 },
5133 {
5134 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005135 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005136 "target" : ["ipv4", "dst_addr"],
5137 "mask" : null
5138 },
5139 {
5140 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005141 "name" : "icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005142 "target" : ["icmp", "icmp_type"],
5143 "mask" : null
5144 },
5145 {
5146 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005147 "name" : "icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005148 "target" : ["icmp", "icmp_code"],
5149 "mask" : null
5150 }
5151 ],
5152 "match_type" : "ternary",
5153 "type" : "simple",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005154 "max_size" : 128,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005155 "with_counters" : true,
5156 "support_timeout" : false,
5157 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005158 "action_ids" : [19, 20, 21, 22, 23],
5159 "actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.clone_to_cpu", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"],
5160 "base_default_next" : "node_43",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005161 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005162 "FabricIngress.acl.set_next_id_acl" : "node_43",
5163 "FabricIngress.acl.punt_to_cpu" : "node_43",
5164 "FabricIngress.acl.clone_to_cpu" : "node_43",
5165 "FabricIngress.acl.drop" : "node_43",
5166 "FabricIngress.acl.nop_acl" : "node_43"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005167 },
5168 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005169 "action_id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005170 "action_const" : true,
5171 "action_data" : [],
5172 "action_entry_const" : true
5173 }
5174 },
5175 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005176 "name" : "FabricIngress.next.xconnect",
5177 "id" : 27,
5178 "source_info" : {
5179 "filename" : "include/control/next.p4",
5180 "line" : 103,
5181 "column" : 10,
5182 "source_fragment" : "xconnect"
5183 },
5184 "key" : [
5185 {
5186 "match_type" : "exact",
5187 "name" : "ig_port",
5188 "target" : ["standard_metadata", "ingress_port"],
5189 "mask" : null
5190 },
5191 {
5192 "match_type" : "exact",
5193 "name" : "next_id",
5194 "target" : ["scalars", "fabric_metadata_t.next_id"],
5195 "mask" : null
5196 }
5197 ],
5198 "match_type" : "exact",
5199 "type" : "simple",
5200 "max_size" : 1024,
5201 "with_counters" : true,
5202 "support_timeout" : false,
5203 "direct_meters" : null,
5204 "action_ids" : [25, 26, 6],
5205 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
5206 "base_default_next" : "FabricIngress.next.hashed",
5207 "next_tables" : {
5208 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
5209 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
5210 "nop" : "FabricIngress.next.hashed"
5211 },
5212 "default_entry" : {
5213 "action_id" : 6,
5214 "action_const" : true,
5215 "action_data" : [],
5216 "action_entry_const" : true
5217 }
5218 },
5219 {
5220 "name" : "FabricIngress.next.hashed",
5221 "id" : 28,
5222 "source_info" : {
5223 "filename" : "include/control/next.p4",
5224 "line" : 180,
5225 "column" : 10,
5226 "source_fragment" : "hashed"
5227 },
5228 "key" : [
5229 {
5230 "match_type" : "exact",
5231 "name" : "next_id",
5232 "target" : ["scalars", "fabric_metadata_t.next_id"],
5233 "mask" : null
5234 }
5235 ],
5236 "match_type" : "exact",
5237 "type" : "indirect_ws",
5238 "action_profile" : "FabricIngress.next.hashed_selector",
5239 "max_size" : 1024,
5240 "with_counters" : true,
5241 "support_timeout" : false,
5242 "direct_meters" : null,
5243 "action_ids" : [27, 28, 29, 7],
5244 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
5245 "base_default_next" : "FabricIngress.next.multicast",
5246 "next_tables" : {
5247 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
5248 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
5249 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
5250 "nop" : "FabricIngress.next.multicast"
5251 }
5252 },
5253 {
5254 "name" : "FabricIngress.next.multicast",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005255 "id" : 29,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005256 "source_info" : {
5257 "filename" : "include/control/next.p4",
5258 "line" : 213,
5259 "column" : 10,
5260 "source_fragment" : "multicast"
5261 },
5262 "key" : [
5263 {
5264 "match_type" : "exact",
5265 "name" : "next_id",
5266 "target" : ["scalars", "fabric_metadata_t.next_id"],
5267 "mask" : null
5268 }
5269 ],
5270 "match_type" : "exact",
5271 "type" : "simple",
5272 "max_size" : 1024,
5273 "with_counters" : true,
5274 "support_timeout" : false,
5275 "direct_meters" : null,
5276 "action_ids" : [30, 8],
5277 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
5278 "base_default_next" : "FabricIngress.next.next_vlan",
5279 "next_tables" : {
5280 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
5281 "nop" : "FabricIngress.next.next_vlan"
5282 },
5283 "default_entry" : {
5284 "action_id" : 8,
5285 "action_const" : true,
5286 "action_data" : [],
5287 "action_entry_const" : true
5288 }
5289 },
5290 {
5291 "name" : "FabricIngress.next.next_vlan",
5292 "id" : 30,
5293 "source_info" : {
5294 "filename" : "include/control/next.p4",
5295 "line" : 74,
5296 "column" : 10,
5297 "source_fragment" : "next_vlan"
5298 },
5299 "key" : [
5300 {
5301 "match_type" : "exact",
5302 "name" : "next_id",
5303 "target" : ["scalars", "fabric_metadata_t.next_id"],
5304 "mask" : null
5305 }
5306 ],
5307 "match_type" : "exact",
5308 "type" : "simple",
5309 "max_size" : 1024,
5310 "with_counters" : true,
5311 "support_timeout" : false,
5312 "direct_meters" : null,
5313 "action_ids" : [24, 5],
5314 "actions" : ["FabricIngress.next.set_vlan", "nop"],
5315 "base_default_next" : "node_48",
5316 "next_tables" : {
5317 "FabricIngress.next.set_vlan" : "node_48",
5318 "nop" : "node_48"
5319 },
5320 "default_entry" : {
5321 "action_id" : 5,
5322 "action_const" : true,
5323 "action_data" : [],
5324 "action_entry_const" : true
5325 }
5326 },
5327 {
5328 "name" : "tbl_act_17",
5329 "id" : 31,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005330 "key" : [],
5331 "match_type" : "exact",
5332 "type" : "simple",
5333 "max_size" : 1024,
5334 "with_counters" : false,
5335 "support_timeout" : false,
5336 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005337 "action_ids" : [49],
5338 "actions" : ["act_17"],
5339 "base_default_next" : "node_50",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005340 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005341 "act_17" : "node_50"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005342 },
5343 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005344 "action_id" : 49,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005345 "action_const" : true,
5346 "action_data" : [],
5347 "action_entry_const" : true
5348 }
5349 },
5350 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005351 "name" : "tbl_act_18",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005352 "id" : 32,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005353 "key" : [],
5354 "match_type" : "exact",
5355 "type" : "simple",
5356 "max_size" : 1024,
5357 "with_counters" : false,
5358 "support_timeout" : false,
5359 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005360 "action_ids" : [50],
5361 "actions" : ["act_18"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005362 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005363 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005364 "act_18" : null
Carmelo Casconea5400af2018-07-17 22:11:54 +02005365 },
5366 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005367 "action_id" : 50,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005368 "action_const" : true,
5369 "action_data" : [],
5370 "action_entry_const" : true
5371 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005372 }
5373 ],
5374 "action_profiles" : [
5375 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005376 "name" : "FabricIngress.next.hashed_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005377 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005378 "source_info" : {
5379 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005380 "line" : 161,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005381 "column" : 55,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005382 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005383 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005384 "max_size" : 64,
5385 "selector" : {
5386 "algo" : "crc16",
5387 "input" : [
5388 {
5389 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005390 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005391 },
5392 {
5393 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005394 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005395 },
5396 {
5397 "type" : "field",
5398 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
5399 },
5400 {
5401 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005402 "value" : ["scalars", "fabric_metadata_t.l4_sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005403 },
5404 {
5405 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005406 "value" : ["scalars", "fabric_metadata_t.l4_dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005407 }
5408 ]
5409 }
5410 }
5411 ],
5412 "conditionals" : [
5413 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005414 "name" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005415 "id" : 0,
5416 "source_info" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005417 "filename" : "include/spgw.p4",
5418 "line" : 30,
5419 "column" : 12,
5420 "source_fragment" : "! is_gtpu_encapped"
5421 },
5422 "expression" : {
5423 "type" : "expression",
5424 "value" : {
5425 "op" : "not",
5426 "left" : null,
5427 "right" : {
5428 "type" : "expression",
5429 "value" : {
5430 "op" : "d2b",
5431 "left" : null,
5432 "right" : {
5433 "type" : "field",
5434 "value" : ["gtpu", "$valid$"]
5435 }
5436 }
5437 }
5438 }
5439 },
5440 "true_next" : "tbl_act_0",
5441 "false_next" : "node_5"
5442 },
5443 {
5444 "name" : "node_5",
5445 "id" : 1,
5446 "expression" : {
5447 "type" : "expression",
5448 "value" : {
5449 "op" : "not",
5450 "left" : null,
5451 "right" : {
5452 "type" : "expression",
5453 "value" : {
5454 "op" : "d2b",
5455 "left" : null,
5456 "right" : {
5457 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005458 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005459 }
5460 }
5461 }
5462 }
5463 },
5464 "true_next" : "tbl_act_1",
5465 "false_next" : "node_10"
5466 },
5467 {
5468 "name" : "node_7",
5469 "id" : 2,
5470 "source_info" : {
5471 "filename" : "include/spgw.p4",
5472 "line" : 34,
5473 "column" : 12,
5474 "source_fragment" : "inner_udp.isValid()"
5475 },
5476 "expression" : {
5477 "type" : "expression",
5478 "value" : {
5479 "op" : "d2b",
5480 "left" : null,
5481 "right" : {
5482 "type" : "field",
5483 "value" : ["inner_udp", "$valid$"]
5484 }
5485 }
5486 },
5487 "true_next" : "tbl_act_2",
5488 "false_next" : "tbl_act_3"
5489 },
5490 {
5491 "name" : "node_10",
5492 "id" : 3,
5493 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005494 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005495 "line" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005496 "column" : 12,
5497 "source_fragment" : "hdr.packet_out.isValid()"
5498 },
5499 "expression" : {
5500 "type" : "expression",
5501 "value" : {
5502 "op" : "d2b",
5503 "left" : null,
5504 "right" : {
5505 "type" : "field",
5506 "value" : ["packet_out", "$valid$"]
5507 }
5508 }
5509 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005510 "true_next" : "tbl_act_4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005511 "false_next" : "node_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005512 },
5513 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005514 "name" : "node_12",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005515 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005516 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005517 "filename" : "include/control/filtering.p4",
5518 "line" : 102,
5519 "column" : 12,
5520 "source_fragment" : "hdr.vlan_tag.isValid()"
5521 },
5522 "expression" : {
5523 "type" : "expression",
5524 "value" : {
5525 "op" : "d2b",
5526 "left" : null,
5527 "right" : {
5528 "type" : "field",
5529 "value" : ["vlan_tag", "$valid$"]
5530 }
5531 }
5532 },
5533 "true_next" : "tbl_act_5",
5534 "false_next" : "node_14"
5535 },
5536 {
5537 "name" : "node_14",
5538 "id" : 5,
5539 "source_info" : {
5540 "filename" : "include/control/filtering.p4",
5541 "line" : 108,
5542 "column" : 12,
5543 "source_fragment" : "!hdr.mpls.isValid()"
5544 },
5545 "expression" : {
5546 "type" : "expression",
5547 "value" : {
5548 "op" : "not",
5549 "left" : null,
5550 "right" : {
5551 "type" : "expression",
5552 "value" : {
5553 "op" : "d2b",
5554 "left" : null,
5555 "right" : {
5556 "type" : "field",
5557 "value" : ["mpls", "$valid$"]
5558 }
5559 }
5560 }
5561 }
5562 },
5563 "true_next" : "tbl_act_6",
5564 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
5565 },
5566 {
5567 "name" : "node_19",
5568 "id" : 6,
5569 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005570 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005571 "line" : 143,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005572 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005573 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005574 },
5575 "expression" : {
5576 "type" : "expression",
5577 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005578 "op" : "d2b",
5579 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005580 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005581 "type" : "field",
5582 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005583 }
5584 }
5585 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005586 "true_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
5587 "false_next" : "FabricIngress.spgw_ingress.dl_sess_lookup"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005588 },
5589 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005590 "name" : "node_23",
5591 "id" : 7,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005592 "source_info" : {
5593 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005594 "line" : 147,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005595 "column" : 16,
5596 "source_fragment" : "!s1u_filter_table.apply().hit"
5597 },
5598 "expression" : {
5599 "type" : "expression",
5600 "value" : {
5601 "op" : "not",
5602 "left" : null,
5603 "right" : {
5604 "type" : "expression",
5605 "value" : {
5606 "op" : "d2b",
5607 "left" : null,
5608 "right" : {
5609 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005610 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005611 }
5612 }
5613 }
5614 }
5615 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005616 "true_next" : "tbl_act_10",
5617 "false_next" : "tbl_act_11"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005618 },
5619 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005620 "name" : "node_30",
5621 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005622 "expression" : {
5623 "type" : "expression",
5624 "value" : {
5625 "op" : "d2b",
5626 "left" : null,
5627 "right" : {
5628 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005629 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005630 }
5631 }
5632 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005633 "true_next" : "tbl_act_14",
5634 "false_next" : "tbl_act_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005635 },
5636 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005637 "name" : "node_33",
5638 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005639 "expression" : {
5640 "type" : "expression",
5641 "value" : {
5642 "op" : "not",
5643 "left" : null,
5644 "right" : {
5645 "type" : "expression",
5646 "value" : {
5647 "op" : "d2b",
5648 "left" : null,
5649 "right" : {
5650 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005651 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005652 }
5653 }
5654 }
5655 }
5656 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005657 "true_next" : "tbl_act_16",
5658 "false_next" : "node_35"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005659 },
5660 {
5661 "name" : "node_35",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005662 "id" : 10,
5663 "source_info" : {
5664 "filename" : "fabric.p4",
5665 "line" : 66,
5666 "column" : 12,
5667 "source_fragment" : "fabric_metadata.skip_forwarding == false"
5668 },
5669 "expression" : {
5670 "type" : "expression",
5671 "value" : {
5672 "op" : "==",
5673 "left" : {
5674 "type" : "expression",
5675 "value" : {
5676 "op" : "d2b",
5677 "left" : null,
5678 "right" : {
5679 "type" : "field",
5680 "value" : ["scalars", "fabric_metadata_t.skip_forwarding"]
5681 }
5682 }
5683 },
5684 "right" : {
5685 "type" : "bool",
5686 "value" : false
5687 }
5688 }
5689 },
5690 "true_next" : "node_36",
5691 "false_next" : "FabricIngress.acl.acl"
5692 },
5693 {
5694 "name" : "node_36",
5695 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005696 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005697 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005698 "line" : 131,
5699 "column" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005700 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
5701 },
5702 "expression" : {
5703 "type" : "expression",
5704 "value" : {
5705 "op" : "==",
5706 "left" : {
5707 "type" : "field",
5708 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
5709 },
5710 "right" : {
5711 "type" : "hexstr",
5712 "value" : "0x00"
5713 }
5714 }
5715 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005716 "true_next" : "FabricIngress.forwarding.bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005717 "false_next" : "node_38"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005718 },
5719 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005720 "name" : "node_38",
5721 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005722 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005723 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005724 "line" : 132,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005725 "column" : 17,
5726 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
5727 },
5728 "expression" : {
5729 "type" : "expression",
5730 "value" : {
5731 "op" : "==",
5732 "left" : {
5733 "type" : "field",
5734 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
5735 },
5736 "right" : {
5737 "type" : "hexstr",
5738 "value" : "0x01"
5739 }
5740 }
5741 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005742 "true_next" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005743 "false_next" : "node_40"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005744 },
5745 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005746 "name" : "node_40",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005747 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005748 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005749 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005750 "line" : 133,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005751 "column" : 17,
5752 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
5753 },
5754 "expression" : {
5755 "type" : "expression",
5756 "value" : {
5757 "op" : "==",
5758 "left" : {
5759 "type" : "field",
5760 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
5761 },
5762 "right" : {
5763 "type" : "hexstr",
5764 "value" : "0x02"
5765 }
5766 }
5767 },
Charles Chan384aea22018-08-23 22:08:02 -07005768 "true_next" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005769 "false_next" : "FabricIngress.acl.acl"
5770 },
5771 {
5772 "name" : "node_43",
5773 "id" : 14,
5774 "source_info" : {
5775 "filename" : "fabric.p4",
5776 "line" : 70,
5777 "column" : 12,
5778 "source_fragment" : "fabric_metadata.skip_next == false"
5779 },
5780 "expression" : {
5781 "type" : "expression",
5782 "value" : {
5783 "op" : "==",
5784 "left" : {
5785 "type" : "expression",
5786 "value" : {
5787 "op" : "d2b",
5788 "left" : null,
5789 "right" : {
5790 "type" : "field",
5791 "value" : ["scalars", "fabric_metadata_t.skip_next"]
5792 }
5793 }
5794 },
5795 "right" : {
5796 "type" : "bool",
5797 "value" : false
5798 }
5799 }
5800 },
5801 "false_next" : null,
5802 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005803 },
5804 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005805 "name" : "node_48",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005806 "id" : 15,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005807 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005808 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005809 "line" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005810 "column" : 12,
5811 "source_fragment" : "standard_metadata.egress_spec < 511"
5812 },
5813 "expression" : {
5814 "type" : "expression",
5815 "value" : {
5816 "op" : "<",
5817 "left" : {
5818 "type" : "field",
5819 "value" : ["standard_metadata", "egress_spec"]
5820 },
5821 "right" : {
5822 "type" : "hexstr",
5823 "value" : "0x01ff"
5824 }
5825 }
5826 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005827 "true_next" : "tbl_act_17",
5828 "false_next" : "node_50"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005829 },
5830 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005831 "name" : "node_50",
5832 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005833 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005834 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005835 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005836 "column" : 12,
5837 "source_fragment" : "standard_metadata.ingress_port < 511"
5838 },
5839 "expression" : {
5840 "type" : "expression",
5841 "value" : {
5842 "op" : "<",
5843 "left" : {
5844 "type" : "field",
5845 "value" : ["standard_metadata", "ingress_port"]
5846 },
5847 "right" : {
5848 "type" : "hexstr",
5849 "value" : "0x01ff"
5850 }
5851 }
5852 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005853 "false_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005854 "true_next" : "tbl_act_18"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005855 }
5856 ]
5857 },
5858 {
5859 "name" : "egress",
5860 "id" : 1,
5861 "source_info" : {
5862 "filename" : "fabric.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005863 "line" : 84,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005864 "column" : 8,
5865 "source_fragment" : "FabricEgress"
5866 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005867 "init_table" : "node_54",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005868 "tables" : [
5869 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005870 "name" : "tbl_act_19",
5871 "id" : 33,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005872 "key" : [],
5873 "match_type" : "exact",
5874 "type" : "simple",
5875 "max_size" : 1024,
5876 "with_counters" : false,
5877 "support_timeout" : false,
5878 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005879 "action_ids" : [57],
5880 "actions" : ["act_19"],
5881 "base_default_next" : "tbl_act_20",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005882 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005883 "act_19" : "tbl_act_20"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005884 },
5885 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005886 "action_id" : 57,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005887 "action_const" : true,
5888 "action_data" : [],
5889 "action_entry_const" : true
5890 }
5891 },
5892 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005893 "name" : "tbl_act_20",
5894 "id" : 34,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005895 "key" : [],
5896 "match_type" : "exact",
5897 "type" : "simple",
5898 "max_size" : 1024,
5899 "with_counters" : false,
5900 "support_timeout" : false,
5901 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005902 "action_ids" : [58],
5903 "actions" : ["act_20"],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005904 "base_default_next" : null,
5905 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005906 "act_20" : null
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005907 },
5908 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005909 "action_id" : 58,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005910 "action_const" : true,
5911 "action_data" : [],
5912 "action_entry_const" : true
5913 }
5914 },
5915 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005916 "name" : "tbl_act_21",
5917 "id" : 35,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005918 "key" : [],
5919 "match_type" : "exact",
5920 "type" : "simple",
5921 "max_size" : 1024,
5922 "with_counters" : false,
5923 "support_timeout" : false,
5924 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005925 "action_ids" : [59],
5926 "actions" : ["act_21"],
5927 "base_default_next" : "node_61",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005928 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005929 "act_21" : "node_61"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005930 },
5931 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005932 "action_id" : 59,
5933 "action_const" : true,
5934 "action_data" : [],
5935 "action_entry_const" : true
5936 }
5937 },
5938 {
5939 "name" : "tbl_egress_next_pop_mpls_if_present",
5940 "id" : 36,
5941 "key" : [],
5942 "match_type" : "exact",
5943 "type" : "simple",
5944 "max_size" : 1024,
5945 "with_counters" : false,
5946 "support_timeout" : false,
5947 "direct_meters" : null,
5948 "action_ids" : [53],
5949 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
5950 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
5951 "next_tables" : {
5952 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
5953 },
5954 "default_entry" : {
5955 "action_id" : 53,
5956 "action_const" : true,
5957 "action_data" : [],
5958 "action_entry_const" : true
5959 }
5960 },
5961 {
5962 "name" : "tbl_egress_next_set_mpls",
5963 "id" : 37,
5964 "key" : [],
5965 "match_type" : "exact",
5966 "type" : "simple",
5967 "max_size" : 1024,
5968 "with_counters" : false,
5969 "support_timeout" : false,
5970 "direct_meters" : null,
5971 "action_ids" : [54],
5972 "actions" : ["FabricEgress.egress_next.set_mpls"],
5973 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
5974 "next_tables" : {
5975 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
5976 },
5977 "default_entry" : {
5978 "action_id" : 54,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005979 "action_const" : true,
5980 "action_data" : [],
5981 "action_entry_const" : true
5982 }
5983 },
5984 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005985 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005986 "id" : 38,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005987 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005988 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005989 "line" : 285,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005990 "column" : 10,
5991 "source_fragment" : "egress_vlan"
5992 },
5993 "key" : [
5994 {
5995 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005996 "name" : "vlan_id",
5997 "target" : ["scalars", "fabric_metadata_t.vlan_id"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005998 "mask" : null
5999 },
6000 {
6001 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006002 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006003 "target" : ["standard_metadata", "egress_port"],
6004 "mask" : null
6005 }
6006 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006007 "match_type" : "exact",
6008 "type" : "simple",
6009 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08006010 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006011 "support_timeout" : false,
6012 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006013 "action_ids" : [56, 51],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006014 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006015 "base_default_next" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006016 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006017 "__HIT__" : "tbl_act_22",
6018 "__MISS__" : "tbl_act_23"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006019 },
6020 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006021 "action_id" : 51,
6022 "action_const" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006023 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006024 "action_entry_const" : true
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006025 }
6026 },
6027 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006028 "name" : "tbl_act_22",
6029 "id" : 39,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006030 "key" : [],
6031 "match_type" : "exact",
6032 "type" : "simple",
6033 "max_size" : 1024,
6034 "with_counters" : false,
6035 "support_timeout" : false,
6036 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006037 "action_ids" : [60],
6038 "actions" : ["act_22"],
6039 "base_default_next" : "node_68",
6040 "next_tables" : {
6041 "act_22" : "node_68"
6042 },
6043 "default_entry" : {
6044 "action_id" : 60,
6045 "action_const" : true,
6046 "action_data" : [],
6047 "action_entry_const" : true
6048 }
6049 },
6050 {
6051 "name" : "tbl_act_23",
6052 "id" : 40,
6053 "key" : [],
6054 "match_type" : "exact",
6055 "type" : "simple",
6056 "max_size" : 1024,
6057 "with_counters" : false,
6058 "support_timeout" : false,
6059 "direct_meters" : null,
6060 "action_ids" : [61],
6061 "actions" : ["act_23"],
6062 "base_default_next" : "node_68",
6063 "next_tables" : {
6064 "act_23" : "node_68"
6065 },
6066 "default_entry" : {
6067 "action_id" : 61,
6068 "action_const" : true,
6069 "action_data" : [],
6070 "action_entry_const" : true
6071 }
6072 },
6073 {
6074 "name" : "tbl_egress_next_push_vlan",
6075 "id" : 41,
6076 "key" : [],
6077 "match_type" : "exact",
6078 "type" : "simple",
6079 "max_size" : 1024,
6080 "with_counters" : false,
6081 "support_timeout" : false,
6082 "direct_meters" : null,
6083 "action_ids" : [55],
6084 "actions" : ["FabricEgress.egress_next.push_vlan"],
6085 "base_default_next" : "node_71",
6086 "next_tables" : {
6087 "FabricEgress.egress_next.push_vlan" : "node_71"
6088 },
6089 "default_entry" : {
6090 "action_id" : 55,
6091 "action_const" : true,
6092 "action_data" : [],
6093 "action_entry_const" : true
6094 }
6095 },
6096 {
6097 "name" : "tbl_act_24",
6098 "id" : 42,
6099 "key" : [],
6100 "match_type" : "exact",
6101 "type" : "simple",
6102 "max_size" : 1024,
6103 "with_counters" : false,
6104 "support_timeout" : false,
6105 "direct_meters" : null,
6106 "action_ids" : [63],
6107 "actions" : ["act_25"],
6108 "base_default_next" : "node_73",
6109 "next_tables" : {
6110 "act_25" : "node_73"
6111 },
6112 "default_entry" : {
6113 "action_id" : 63,
6114 "action_const" : true,
6115 "action_data" : [],
6116 "action_entry_const" : true
6117 }
6118 },
6119 {
6120 "name" : "tbl_act_25",
6121 "id" : 43,
6122 "key" : [],
6123 "match_type" : "exact",
6124 "type" : "simple",
6125 "max_size" : 1024,
6126 "with_counters" : false,
6127 "support_timeout" : false,
6128 "direct_meters" : null,
6129 "action_ids" : [62],
6130 "actions" : ["act_24"],
6131 "base_default_next" : "node_79",
6132 "next_tables" : {
6133 "act_24" : "node_79"
6134 },
6135 "default_entry" : {
6136 "action_id" : 62,
6137 "action_const" : true,
6138 "action_data" : [],
6139 "action_entry_const" : true
6140 }
6141 },
6142 {
6143 "name" : "tbl_act_26",
6144 "id" : 44,
6145 "key" : [],
6146 "match_type" : "exact",
6147 "type" : "simple",
6148 "max_size" : 1024,
6149 "with_counters" : false,
6150 "support_timeout" : false,
6151 "direct_meters" : null,
6152 "action_ids" : [65],
6153 "actions" : ["act_27"],
6154 "base_default_next" : "node_77",
6155 "next_tables" : {
6156 "act_27" : "node_77"
6157 },
6158 "default_entry" : {
6159 "action_id" : 65,
6160 "action_const" : true,
6161 "action_data" : [],
6162 "action_entry_const" : true
6163 }
6164 },
6165 {
6166 "name" : "tbl_act_27",
6167 "id" : 45,
6168 "key" : [],
6169 "match_type" : "exact",
6170 "type" : "simple",
6171 "max_size" : 1024,
6172 "with_counters" : false,
6173 "support_timeout" : false,
6174 "direct_meters" : null,
6175 "action_ids" : [64],
6176 "actions" : ["act_26"],
6177 "base_default_next" : "node_79",
6178 "next_tables" : {
6179 "act_26" : "node_79"
6180 },
6181 "default_entry" : {
6182 "action_id" : 64,
6183 "action_const" : true,
6184 "action_data" : [],
6185 "action_entry_const" : true
6186 }
6187 },
6188 {
6189 "name" : "tbl_spgw_egress_gtpu_encap",
6190 "id" : 46,
6191 "key" : [],
6192 "match_type" : "exact",
6193 "type" : "simple",
6194 "max_size" : 1024,
6195 "with_counters" : false,
6196 "support_timeout" : false,
6197 "direct_meters" : null,
6198 "action_ids" : [52],
Yi Tseng27b9bc02018-04-12 14:52:40 +08006199 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006200 "base_default_next" : null,
6201 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006202 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006203 },
6204 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006205 "action_id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006206 "action_const" : true,
6207 "action_data" : [],
6208 "action_entry_const" : true
6209 }
6210 }
6211 ],
6212 "action_profiles" : [],
6213 "conditionals" : [
6214 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006215 "name" : "node_54",
6216 "id" : 17,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006217 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006218 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006219 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006220 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006221 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006222 },
6223 "expression" : {
6224 "type" : "expression",
6225 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006226 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006227 "left" : {
6228 "type" : "expression",
6229 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006230 "op" : "d2b",
6231 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006232 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006233 "type" : "field",
6234 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02006235 }
6236 }
6237 },
6238 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006239 "type" : "bool",
6240 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02006241 }
6242 }
6243 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006244 "true_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006245 "false_next" : "node_55"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006246 },
6247 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006248 "name" : "node_55",
6249 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006250 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006251 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006252 "line" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006253 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08006254 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006255 },
6256 "expression" : {
6257 "type" : "expression",
6258 "value" : {
6259 "op" : "==",
6260 "left" : {
6261 "type" : "field",
6262 "value" : ["standard_metadata", "egress_port"]
6263 },
6264 "right" : {
6265 "type" : "hexstr",
6266 "value" : "0x00ff"
6267 }
6268 }
6269 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006270 "true_next" : "node_56",
6271 "false_next" : "node_59"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006272 },
6273 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006274 "name" : "node_56",
6275 "id" : 19,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006276 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006277 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006278 "line" : 44,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006279 "column" : 16,
6280 "source_fragment" : "fabric_metadata.is_multicast == true && ..."
6281 },
6282 "expression" : {
6283 "type" : "expression",
6284 "value" : {
6285 "op" : "and",
6286 "left" : {
6287 "type" : "expression",
6288 "value" : {
6289 "op" : "==",
6290 "left" : {
6291 "type" : "expression",
6292 "value" : {
6293 "op" : "d2b",
6294 "left" : null,
6295 "right" : {
6296 "type" : "field",
6297 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
6298 }
6299 }
6300 },
6301 "right" : {
6302 "type" : "bool",
6303 "value" : true
6304 }
6305 }
6306 },
6307 "right" : {
6308 "type" : "expression",
6309 "value" : {
6310 "op" : "==",
6311 "left" : {
6312 "type" : "expression",
6313 "value" : {
6314 "op" : "d2b",
6315 "left" : null,
6316 "right" : {
6317 "type" : "field",
6318 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
6319 }
6320 }
6321 },
6322 "right" : {
6323 "type" : "bool",
6324 "value" : false
6325 }
6326 }
6327 }
6328 }
6329 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006330 "true_next" : "tbl_act_19",
6331 "false_next" : "tbl_act_20"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006332 },
6333 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006334 "name" : "node_59",
6335 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006336 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006337 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006338 "line" : 299,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006339 "column" : 12,
6340 "source_fragment" : "fabric_metadata.is_multicast == true ..."
6341 },
6342 "expression" : {
6343 "type" : "expression",
6344 "value" : {
6345 "op" : "and",
6346 "left" : {
6347 "type" : "expression",
6348 "value" : {
6349 "op" : "==",
6350 "left" : {
6351 "type" : "expression",
6352 "value" : {
6353 "op" : "d2b",
6354 "left" : null,
6355 "right" : {
6356 "type" : "field",
6357 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
6358 }
6359 }
6360 },
6361 "right" : {
6362 "type" : "bool",
6363 "value" : true
6364 }
6365 }
6366 },
6367 "right" : {
6368 "type" : "expression",
6369 "value" : {
6370 "op" : "==",
6371 "left" : {
6372 "type" : "field",
6373 "value" : ["standard_metadata", "ingress_port"]
6374 },
6375 "right" : {
6376 "type" : "field",
6377 "value" : ["standard_metadata", "egress_port"]
6378 }
6379 }
6380 }
6381 }
6382 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006383 "true_next" : "tbl_act_21",
6384 "false_next" : "node_61"
6385 },
6386 {
6387 "name" : "node_61",
6388 "id" : 21,
6389 "source_info" : {
6390 "filename" : "include/control/next.p4",
6391 "line" : 304,
6392 "column" : 12,
6393 "source_fragment" : "fabric_metadata.mpls_label == 0"
6394 },
6395 "expression" : {
6396 "type" : "expression",
6397 "value" : {
6398 "op" : "==",
6399 "left" : {
6400 "type" : "field",
6401 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
6402 },
6403 "right" : {
6404 "type" : "hexstr",
6405 "value" : "0x000000"
6406 }
6407 }
6408 },
6409 "true_next" : "node_62",
6410 "false_next" : "tbl_egress_next_set_mpls"
6411 },
6412 {
6413 "name" : "node_62",
6414 "id" : 22,
6415 "source_info" : {
6416 "filename" : "include/control/next.p4",
6417 "line" : 305,
6418 "column" : 16,
6419 "source_fragment" : "hdr.mpls.isValid()"
6420 },
6421 "expression" : {
6422 "type" : "expression",
6423 "value" : {
6424 "op" : "d2b",
6425 "left" : null,
6426 "right" : {
6427 "type" : "field",
6428 "value" : ["mpls", "$valid$"]
6429 }
6430 }
6431 },
6432 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006433 "false_next" : "FabricEgress.egress_next.egress_vlan"
6434 },
6435 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006436 "name" : "node_68",
6437 "id" : 23,
6438 "source_info" : {
6439 "filename" : "include/control/next.p4",
6440 "line" : 310,
6441 "column" : 12,
6442 "source_fragment" : "!egress_vlan.apply().hit"
6443 },
6444 "expression" : {
6445 "type" : "expression",
6446 "value" : {
6447 "op" : "not",
6448 "left" : null,
6449 "right" : {
6450 "type" : "expression",
6451 "value" : {
6452 "op" : "d2b",
6453 "left" : null,
6454 "right" : {
6455 "type" : "field",
6456 "value" : ["scalars", "egress_next_tmp"]
6457 }
6458 }
6459 }
6460 }
6461 },
6462 "true_next" : "node_69",
6463 "false_next" : "node_71"
6464 },
6465 {
6466 "name" : "node_69",
6467 "id" : 24,
6468 "source_info" : {
6469 "filename" : "include/control/next.p4",
6470 "line" : 312,
6471 "column" : 16,
6472 "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
6473 },
6474 "expression" : {
6475 "type" : "expression",
6476 "value" : {
6477 "op" : "!=",
6478 "left" : {
6479 "type" : "field",
6480 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
6481 },
6482 "right" : {
6483 "type" : "hexstr",
6484 "value" : "0x0ffe"
6485 }
6486 }
6487 },
6488 "true_next" : "tbl_egress_next_push_vlan",
6489 "false_next" : "node_71"
6490 },
6491 {
6492 "name" : "node_71",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006493 "id" : 25,
6494 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006495 "filename" : "include/control/next.p4",
6496 "line" : 318,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006497 "column" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006498 "source_fragment" : "hdr.mpls.isValid()"
6499 },
6500 "expression" : {
6501 "type" : "expression",
6502 "value" : {
6503 "op" : "d2b",
6504 "left" : null,
6505 "right" : {
6506 "type" : "field",
6507 "value" : ["mpls", "$valid$"]
6508 }
6509 }
6510 },
6511 "true_next" : "tbl_act_24",
6512 "false_next" : "node_75"
6513 },
6514 {
6515 "name" : "node_73",
6516 "id" : 26,
6517 "source_info" : {
6518 "filename" : "include/control/next.p4",
6519 "line" : 320,
6520 "column" : 16,
6521 "source_fragment" : "hdr.mpls.ttl == 0"
6522 },
6523 "expression" : {
6524 "type" : "expression",
6525 "value" : {
6526 "op" : "==",
6527 "left" : {
6528 "type" : "field",
6529 "value" : ["mpls", "ttl"]
6530 },
6531 "right" : {
6532 "type" : "hexstr",
6533 "value" : "0x00"
6534 }
6535 }
6536 },
6537 "true_next" : "tbl_act_25",
6538 "false_next" : "node_79"
6539 },
6540 {
6541 "name" : "node_75",
6542 "id" : 27,
6543 "source_info" : {
6544 "filename" : "include/control/next.p4",
6545 "line" : 322,
6546 "column" : 15,
6547 "source_fragment" : "hdr.ipv4.isValid()"
6548 },
6549 "expression" : {
6550 "type" : "expression",
6551 "value" : {
6552 "op" : "d2b",
6553 "left" : null,
6554 "right" : {
6555 "type" : "field",
6556 "value" : ["ipv4", "$valid$"]
6557 }
6558 }
6559 },
6560 "true_next" : "tbl_act_26",
6561 "false_next" : "node_79"
6562 },
6563 {
6564 "name" : "node_77",
6565 "id" : 28,
6566 "source_info" : {
6567 "filename" : "include/control/next.p4",
6568 "line" : 324,
6569 "column" : 20,
6570 "source_fragment" : "hdr.ipv4.ttl == 0"
6571 },
6572 "expression" : {
6573 "type" : "expression",
6574 "value" : {
6575 "op" : "==",
6576 "left" : {
6577 "type" : "field",
6578 "value" : ["ipv4", "ttl"]
6579 },
6580 "right" : {
6581 "type" : "hexstr",
6582 "value" : "0x00"
6583 }
6584 }
6585 },
6586 "true_next" : "tbl_act_27",
6587 "false_next" : "node_79"
6588 },
6589 {
6590 "name" : "node_79",
6591 "id" : 29,
6592 "source_info" : {
6593 "filename" : "include/spgw.p4",
6594 "line" : 226,
6595 "column" : 12,
6596 "source_fragment" : "fabric_meta.spgw.direction == SPGW_DIR_DOWNLINK"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006597 },
6598 "expression" : {
6599 "type" : "expression",
6600 "value" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006601 "op" : "==",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006602 "left" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006603 "type" : "field",
6604 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006605 },
6606 "right" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006607 "type" : "hexstr",
6608 "value" : "0x02"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006609 }
6610 }
6611 },
6612 "false_next" : null,
6613 "true_next" : "tbl_spgw_egress_gtpu_encap"
6614 }
6615 ]
6616 }
6617 ],
6618 "checksums" : [
6619 {
6620 "name" : "cksum",
6621 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006622 "source_info" : {
6623 "filename" : "include/checksum.p4",
6624 "line" : 28,
6625 "column" : 8,
6626 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
6627 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006628 "target" : ["ipv4", "hdr_checksum"],
6629 "type" : "generic",
6630 "calculation" : "calc",
6631 "if_cond" : {
6632 "type" : "expression",
6633 "value" : {
6634 "op" : "d2b",
6635 "left" : null,
6636 "right" : {
6637 "type" : "field",
6638 "value" : ["ipv4", "$valid$"]
6639 }
6640 }
6641 }
6642 },
6643 {
6644 "name" : "cksum_0",
6645 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006646 "source_info" : {
6647 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006648 "line" : 242,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006649 "column" : 8,
6650 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
6651 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006652 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006653 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006654 "calculation" : "calc_0",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006655 "if_cond" : {
6656 "type" : "expression",
6657 "value" : {
6658 "op" : "d2b",
6659 "left" : null,
6660 "right" : {
6661 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006662 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006663 }
6664 }
6665 }
6666 },
6667 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006668 "name" : "cksum_1",
6669 "id" : 2,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006670 "source_info" : {
6671 "filename" : "include/checksum.p4",
6672 "line" : 57,
6673 "column" : 8,
6674 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
6675 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006676 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006677 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006678 "calculation" : "calc_1",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006679 "if_cond" : {
6680 "type" : "expression",
6681 "value" : {
6682 "op" : "d2b",
6683 "left" : null,
6684 "right" : {
6685 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006686 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006687 }
6688 }
6689 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006690 }
6691 ],
6692 "force_arith" : [],
6693 "extern_instances" : [],
6694 "field_aliases" : [
6695 [
6696 "queueing_metadata.enq_timestamp",
6697 ["standard_metadata", "enq_timestamp"]
6698 ],
6699 [
6700 "queueing_metadata.enq_qdepth",
6701 ["standard_metadata", "enq_qdepth"]
6702 ],
6703 [
6704 "queueing_metadata.deq_timedelta",
6705 ["standard_metadata", "deq_timedelta"]
6706 ],
6707 [
6708 "queueing_metadata.deq_qdepth",
6709 ["standard_metadata", "deq_qdepth"]
6710 ],
6711 [
6712 "intrinsic_metadata.ingress_global_timestamp",
6713 ["standard_metadata", "ingress_global_timestamp"]
6714 ],
6715 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08006716 "intrinsic_metadata.egress_global_timestamp",
6717 ["standard_metadata", "egress_global_timestamp"]
6718 ],
6719 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006720 "intrinsic_metadata.lf_field_list",
6721 ["standard_metadata", "lf_field_list"]
6722 ],
6723 [
6724 "intrinsic_metadata.mcast_grp",
6725 ["standard_metadata", "mcast_grp"]
6726 ],
6727 [
6728 "intrinsic_metadata.resubmit_flag",
6729 ["standard_metadata", "resubmit_flag"]
6730 ],
6731 [
6732 "intrinsic_metadata.egress_rid",
6733 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08006734 ],
6735 [
6736 "intrinsic_metadata.recirculate_flag",
6737 ["standard_metadata", "recirculate_flag"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006738 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006739 ],
6740 "program" : "fabric.p4",
6741 "__meta__" : {
6742 "version" : [2, 18],
6743 "compiler" : "https://github.com/p4lang/p4c"
6744 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006745}