blob: 441b476f1a1e7d129042fb1465bd24053bd6ecf5 [file] [log] [blame]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001{
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002 "header_types" : [
3 {
4 "name" : "scalars_0",
5 "id" : 0,
6 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007 ["tmp_0", 4, false],
8 ["tmp", 8, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08009 ["tmp_1", 32, false],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -070010 ["tmp_2", 32, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080011 ["spgw_ingress_tmp", 1, false],
12 ["spgw_ingress_tmp_0", 1, false],
13 ["spgw_normalizer_hasReturned", 1, false],
14 ["spgw_ingress_hasReturned", 1, false],
15 ["egress_next_tmp", 1, false],
Carmelo Casconea4dc3c12019-02-12 17:30:00 -080016 ["fabric_metadata_t._eth_type0", 16, false],
17 ["fabric_metadata_t._ip_eth_type1", 16, false],
18 ["fabric_metadata_t._vlan_id2", 12, false],
19 ["fabric_metadata_t._vlan_pri3", 3, false],
20 ["fabric_metadata_t._vlan_cfi4", 1, false],
21 ["fabric_metadata_t._mpls_label5", 20, false],
22 ["fabric_metadata_t._mpls_ttl6", 8, false],
23 ["fabric_metadata_t._skip_forwarding7", 1, false],
24 ["fabric_metadata_t._skip_next8", 1, false],
25 ["fabric_metadata_t._fwd_type9", 3, false],
26 ["fabric_metadata_t._next_id10", 32, false],
27 ["fabric_metadata_t._is_multicast11", 1, false],
28 ["fabric_metadata_t._is_controller_packet_out12", 1, false],
29 ["fabric_metadata_t._clone_to_cpu13", 1, false],
30 ["fabric_metadata_t._ip_proto14", 8, false],
31 ["fabric_metadata_t._l4_sport15", 16, false],
32 ["fabric_metadata_t._l4_dport16", 16, false],
33 ["fabric_metadata_t._spgw_direction17", 2, false],
34 ["fabric_metadata_t._spgw_ipv4_len18", 16, false],
35 ["fabric_metadata_t._spgw_teid19", 32, false],
36 ["fabric_metadata_t._spgw_s1u_enb_addr20", 32, false],
37 ["fabric_metadata_t._spgw_s1u_sgw_addr21", 32, false],
38 ["_padding_0", 1, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080039 ]
40 },
41 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020042 "name" : "standard_metadata",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080043 "id" : 1,
44 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020045 ["ingress_port", 9, false],
46 ["egress_spec", 9, false],
47 ["egress_port", 9, false],
48 ["clone_spec", 32, false],
49 ["instance_type", 32, false],
50 ["drop", 1, false],
51 ["recirculate_port", 16, false],
52 ["packet_length", 32, false],
53 ["enq_timestamp", 32, false],
54 ["enq_qdepth", 19, false],
55 ["deq_timedelta", 32, false],
56 ["deq_qdepth", 19, false],
57 ["ingress_global_timestamp", 48, false],
58 ["egress_global_timestamp", 48, false],
59 ["lf_field_list", 32, false],
60 ["mcast_grp", 16, false],
61 ["resubmit_flag", 32, false],
62 ["egress_rid", 16, false],
63 ["checksum_error", 1, false],
64 ["recirculate_flag", 32, false],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -070065 ["parser_error", 32, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020066 ["_padding", 5, false]
67 ]
68 },
69 {
70 "name" : "ethernet_t",
71 "id" : 2,
72 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080073 ["dst_addr", 48, false],
74 ["src_addr", 48, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080075 ["eth_type", 16, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080076 ]
77 },
78 {
79 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020080 "id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080081 "fields" : [
82 ["pri", 3, false],
83 ["cfi", 1, false],
84 ["vlan_id", 12, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080085 ["eth_type", 16, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080086 ]
87 },
88 {
89 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020090 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080091 "fields" : [
92 ["label", 20, false],
93 ["tc", 3, false],
94 ["bos", 1, false],
95 ["ttl", 8, false]
96 ]
97 },
98 {
99 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200100 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800101 "fields" : [
102 ["version", 4, false],
103 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900104 ["dscp", 6, false],
105 ["ecn", 2, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800106 ["total_len", 16, false],
107 ["identification", 16, false],
108 ["flags", 3, false],
109 ["frag_offset", 13, false],
110 ["ttl", 8, false],
111 ["protocol", 8, false],
112 ["hdr_checksum", 16, false],
113 ["src_addr", 32, false],
114 ["dst_addr", 32, false]
115 ]
116 },
117 {
118 "name" : "udp_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200119 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800120 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800121 ["sport", 16, false],
122 ["dport", 16, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800123 ["len", 16, false],
124 ["checksum", 16, false]
125 ]
126 },
127 {
128 "name" : "gtpu_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200129 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800130 "fields" : [
131 ["version", 3, false],
132 ["pt", 1, false],
133 ["spare", 1, false],
134 ["ex_flag", 1, false],
135 ["seq_flag", 1, false],
136 ["npdu_flag", 1, false],
137 ["msgtype", 8, false],
138 ["msglen", 16, false],
139 ["teid", 32, false]
140 ]
141 },
142 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800143 "name" : "tcp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800144 "id" : 8,
145 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800146 ["sport", 16, false],
147 ["dport", 16, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800148 ["seq_no", 32, false],
149 ["ack_no", 32, false],
150 ["data_offset", 4, false],
151 ["res", 3, false],
152 ["ecn", 3, false],
153 ["ctrl", 6, false],
154 ["window", 16, false],
155 ["checksum", 16, false],
156 ["urgent_ptr", 16, false]
157 ]
158 },
159 {
160 "name" : "icmp_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800161 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800162 "fields" : [
163 ["icmp_type", 8, false],
164 ["icmp_code", 8, false],
165 ["checksum", 16, false],
166 ["identifier", 16, false],
167 ["sequence_number", 16, false],
168 ["timestamp", 64, false]
169 ]
170 },
171 {
172 "name" : "packet_out_header_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800173 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800174 "fields" : [
175 ["egress_port", 9, false],
176 ["_pad", 7, false]
177 ]
178 },
179 {
180 "name" : "packet_in_header_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800181 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800182 "fields" : [
183 ["ingress_port", 9, false],
184 ["_pad", 7, false]
185 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800186 }
187 ],
188 "headers" : [
189 {
190 "name" : "scalars",
191 "id" : 0,
192 "header_type" : "scalars_0",
193 "metadata" : true,
194 "pi_omit" : true
195 },
196 {
197 "name" : "standard_metadata",
198 "id" : 1,
199 "header_type" : "standard_metadata",
200 "metadata" : true,
201 "pi_omit" : true
202 },
203 {
204 "name" : "ethernet",
205 "id" : 2,
206 "header_type" : "ethernet_t",
207 "metadata" : false,
208 "pi_omit" : true
209 },
210 {
211 "name" : "vlan_tag",
212 "id" : 3,
213 "header_type" : "vlan_tag_t",
214 "metadata" : false,
215 "pi_omit" : true
216 },
217 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800218 "name" : "inner_vlan_tag",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800219 "id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800220 "header_type" : "vlan_tag_t",
221 "metadata" : false,
222 "pi_omit" : true
223 },
224 {
225 "name" : "mpls",
226 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800227 "header_type" : "mpls_t",
228 "metadata" : false,
229 "pi_omit" : true
230 },
231 {
232 "name" : "gtpu_ipv4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800233 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800234 "header_type" : "ipv4_t",
235 "metadata" : false,
236 "pi_omit" : true
237 },
238 {
239 "name" : "gtpu_udp",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800240 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800241 "header_type" : "udp_t",
242 "metadata" : false,
243 "pi_omit" : true
244 },
245 {
246 "name" : "gtpu",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800247 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800248 "header_type" : "gtpu_t",
249 "metadata" : false,
250 "pi_omit" : true
251 },
252 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700253 "name" : "inner_ipv4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800254 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800255 "header_type" : "ipv4_t",
256 "metadata" : false,
257 "pi_omit" : true
258 },
259 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700260 "name" : "inner_udp",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800261 "id" : 10,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700262 "header_type" : "udp_t",
263 "metadata" : false,
264 "pi_omit" : true
265 },
266 {
267 "name" : "ipv4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700268 "id" : 11,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800269 "header_type" : "ipv4_t",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800270 "metadata" : false,
271 "pi_omit" : true
272 },
273 {
274 "name" : "tcp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700275 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800276 "header_type" : "tcp_t",
277 "metadata" : false,
278 "pi_omit" : true
279 },
280 {
281 "name" : "udp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700282 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800283 "header_type" : "udp_t",
284 "metadata" : false,
285 "pi_omit" : true
286 },
287 {
288 "name" : "icmp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700289 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800290 "header_type" : "icmp_t",
291 "metadata" : false,
292 "pi_omit" : true
293 },
294 {
295 "name" : "packet_out",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700296 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800297 "header_type" : "packet_out_header_t",
298 "metadata" : false,
299 "pi_omit" : true
300 },
301 {
302 "name" : "packet_in",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700303 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800304 "header_type" : "packet_in_header_t",
305 "metadata" : false,
306 "pi_omit" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800307 }
308 ],
309 "header_stacks" : [],
310 "header_union_types" : [],
311 "header_unions" : [],
312 "header_union_stacks" : [],
313 "field_lists" : [],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700314 "errors" : [
315 ["NoError", 1],
316 ["PacketTooShort", 2],
317 ["NoMatch", 3],
318 ["StackOutOfBounds", 4],
319 ["HeaderTooShort", 5],
320 ["ParserTimeout", 6]
321 ],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800322 "enums" : [],
323 "parsers" : [
324 {
325 "name" : "parser",
326 "id" : 0,
327 "init_state" : "start",
328 "parse_states" : [
329 {
330 "name" : "start",
331 "id" : 0,
332 "parser_ops" : [],
333 "transitions" : [
334 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800335 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800336 "value" : "0x00ff",
337 "mask" : null,
338 "next_state" : "parse_packet_out"
339 },
340 {
341 "value" : "default",
342 "mask" : null,
343 "next_state" : "parse_ethernet"
344 }
345 ],
346 "transition_key" : [
347 {
348 "type" : "field",
349 "value" : ["standard_metadata", "ingress_port"]
350 }
351 ]
352 },
353 {
354 "name" : "parse_packet_out",
355 "id" : 1,
356 "parser_ops" : [
357 {
358 "parameters" : [
359 {
360 "type" : "regular",
361 "value" : "packet_out"
362 }
363 ],
364 "op" : "extract"
365 }
366 ],
367 "transitions" : [
368 {
369 "value" : "default",
370 "mask" : null,
371 "next_state" : "parse_ethernet"
372 }
373 ],
374 "transition_key" : []
375 },
376 {
377 "name" : "parse_ethernet",
378 "id" : 2,
379 "parser_ops" : [
380 {
381 "parameters" : [
382 {
383 "type" : "regular",
384 "value" : "ethernet"
385 }
386 ],
387 "op" : "extract"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800388 },
389 {
390 "parameters" : [
391 {
392 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800393 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800394 },
395 {
396 "type" : "field",
397 "value" : ["ethernet", "eth_type"]
398 }
399 ],
400 "op" : "set"
401 },
402 {
403 "parameters" : [
404 {
405 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800406 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800407 },
408 {
409 "type" : "hexstr",
410 "value" : "0x0ffe"
411 }
412 ],
413 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800414 }
415 ],
416 "transitions" : [
417 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800418 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800419 "value" : "0x8100",
420 "mask" : null,
421 "next_state" : "parse_vlan_tag"
422 },
423 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800424 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800425 "value" : "0x8847",
426 "mask" : null,
427 "next_state" : "parse_mpls"
428 },
429 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800430 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800431 "value" : "0x0800",
432 "mask" : null,
433 "next_state" : "parse_ipv4"
434 },
435 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800436 "value" : "default",
437 "mask" : null,
438 "next_state" : null
439 }
440 ],
441 "transition_key" : [
442 {
443 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800444 "value" : ["ethernet", "eth_type"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800445 }
446 ]
447 },
448 {
449 "name" : "parse_vlan_tag",
450 "id" : 3,
451 "parser_ops" : [
452 {
453 "parameters" : [
454 {
455 "type" : "regular",
456 "value" : "vlan_tag"
457 }
458 ],
459 "op" : "extract"
460 }
461 ],
462 "transitions" : [
463 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800464 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800465 "value" : "0x0800",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800466 "mask" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800467 "next_state" : "parse_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800468 },
469 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800470 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800471 "value" : "0x8847",
472 "mask" : null,
473 "next_state" : "parse_mpls"
474 },
475 {
476 "type" : "hexstr",
477 "value" : "0x8100",
478 "mask" : null,
479 "next_state" : "parse_inner_vlan_tag"
480 },
481 {
482 "value" : "default",
483 "mask" : null,
484 "next_state" : null
485 }
486 ],
487 "transition_key" : [
488 {
489 "type" : "field",
490 "value" : ["vlan_tag", "eth_type"]
491 }
492 ]
493 },
494 {
495 "name" : "parse_inner_vlan_tag",
496 "id" : 4,
497 "parser_ops" : [
498 {
499 "parameters" : [
500 {
501 "type" : "regular",
502 "value" : "inner_vlan_tag"
503 }
504 ],
505 "op" : "extract"
506 }
507 ],
508 "transitions" : [
509 {
510 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800511 "value" : "0x0800",
512 "mask" : null,
513 "next_state" : "parse_ipv4"
514 },
515 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800516 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800517 "value" : "0x8847",
518 "mask" : null,
519 "next_state" : "parse_mpls"
520 },
521 {
522 "value" : "default",
523 "mask" : null,
524 "next_state" : null
525 }
526 ],
527 "transition_key" : [
528 {
529 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800530 "value" : ["inner_vlan_tag", "eth_type"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800531 }
532 ]
533 },
534 {
535 "name" : "parse_mpls",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800536 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800537 "parser_ops" : [
538 {
539 "parameters" : [
540 {
541 "type" : "regular",
542 "value" : "mpls"
543 }
544 ],
545 "op" : "extract"
546 },
547 {
548 "parameters" : [
549 {
550 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800551 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800552 },
553 {
554 "type" : "field",
555 "value" : ["mpls", "label"]
556 }
557 ],
558 "op" : "set"
559 },
560 {
561 "parameters" : [
562 {
563 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800564 "value" : ["scalars", "fabric_metadata_t._mpls_ttl6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800565 },
566 {
567 "type" : "field",
568 "value" : ["mpls", "ttl"]
569 }
570 ],
571 "op" : "set"
572 },
573 {
574 "parameters" : [
575 {
576 "type" : "field",
577 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800578 },
579 {
580 "type" : "lookahead",
581 "value" : [0, 4]
582 }
583 ],
584 "op" : "set"
585 }
586 ],
587 "transitions" : [
588 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800589 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800590 "value" : "0x04",
591 "mask" : null,
592 "next_state" : "parse_ipv4"
593 },
594 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800595 "value" : "default",
596 "mask" : null,
597 "next_state" : "parse_ethernet"
598 }
599 ],
600 "transition_key" : [
601 {
602 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800603 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800604 }
605 ]
606 },
607 {
608 "name" : "parse_ipv4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800609 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800610 "parser_ops" : [
611 {
612 "parameters" : [
613 {
614 "type" : "regular",
615 "value" : "ipv4"
616 }
617 ],
618 "op" : "extract"
619 },
620 {
621 "parameters" : [
622 {
623 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800624 "value" : ["scalars", "fabric_metadata_t._ip_proto14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800625 },
626 {
627 "type" : "field",
628 "value" : ["ipv4", "protocol"]
629 }
630 ],
631 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800632 },
633 {
634 "parameters" : [
635 {
636 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800637 "value" : ["scalars", "fabric_metadata_t._ip_eth_type1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800638 },
639 {
640 "type" : "hexstr",
641 "value" : "0x0800"
642 }
643 ],
644 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800645 }
646 ],
647 "transitions" : [
648 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800649 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800650 "value" : "0x06",
651 "mask" : null,
652 "next_state" : "parse_tcp"
653 },
654 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800655 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800656 "value" : "0x11",
657 "mask" : null,
658 "next_state" : "parse_udp"
659 },
660 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800661 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800662 "value" : "0x01",
663 "mask" : null,
664 "next_state" : "parse_icmp"
665 },
666 {
667 "value" : "default",
668 "mask" : null,
669 "next_state" : null
670 }
671 ],
672 "transition_key" : [
673 {
674 "type" : "field",
675 "value" : ["ipv4", "protocol"]
676 }
677 ]
678 },
679 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800680 "name" : "parse_tcp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200681 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800682 "parser_ops" : [
683 {
684 "parameters" : [
685 {
686 "type" : "regular",
687 "value" : "tcp"
688 }
689 ],
690 "op" : "extract"
691 },
692 {
693 "parameters" : [
694 {
695 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800696 "value" : ["scalars", "fabric_metadata_t._l4_sport15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800697 },
698 {
699 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800700 "value" : ["tcp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800701 }
702 ],
703 "op" : "set"
704 },
705 {
706 "parameters" : [
707 {
708 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800709 "value" : ["scalars", "fabric_metadata_t._l4_dport16"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800710 },
711 {
712 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800713 "value" : ["tcp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800714 }
715 ],
716 "op" : "set"
717 }
718 ],
719 "transitions" : [
720 {
721 "value" : "default",
722 "mask" : null,
723 "next_state" : null
724 }
725 ],
726 "transition_key" : []
727 },
728 {
729 "name" : "parse_udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200730 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800731 "parser_ops" : [
732 {
733 "parameters" : [
734 {
735 "type" : "regular",
736 "value" : "udp"
737 }
738 ],
739 "op" : "extract"
740 },
741 {
742 "parameters" : [
743 {
744 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800745 "value" : ["scalars", "fabric_metadata_t._l4_sport15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800746 },
747 {
748 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800749 "value" : ["udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800750 }
751 ],
752 "op" : "set"
753 },
754 {
755 "parameters" : [
756 {
757 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800758 "value" : ["scalars", "fabric_metadata_t._l4_dport16"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800759 },
760 {
761 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800762 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800763 }
764 ],
765 "op" : "set"
766 }
767 ],
768 "transitions" : [
769 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800770 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800771 "value" : "0x0868",
772 "mask" : null,
773 "next_state" : "parse_gtpu"
774 },
775 {
776 "value" : "default",
777 "mask" : null,
778 "next_state" : null
779 }
780 ],
781 "transition_key" : [
782 {
783 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800784 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800785 }
786 ]
787 },
788 {
789 "name" : "parse_icmp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200790 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800791 "parser_ops" : [
792 {
793 "parameters" : [
794 {
795 "type" : "regular",
796 "value" : "icmp"
797 }
798 ],
799 "op" : "extract"
800 }
801 ],
802 "transitions" : [
803 {
804 "value" : "default",
805 "mask" : null,
806 "next_state" : null
807 }
808 ],
809 "transition_key" : []
810 },
811 {
812 "name" : "parse_gtpu",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200813 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800814 "parser_ops" : [
815 {
816 "parameters" : [
817 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700818 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800819 "value" : ["scalars", "tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700820 },
821 {
822 "type" : "expression",
823 "value" : {
824 "type" : "expression",
825 "value" : {
826 "op" : "&",
827 "left" : {
828 "type" : "expression",
829 "value" : {
830 "op" : "&",
831 "left" : {
832 "type" : "expression",
833 "value" : {
834 "op" : ">>",
835 "left" : {
836 "type" : "field",
837 "value" : ["ipv4", "dst_addr"]
838 },
839 "right" : {
840 "type" : "hexstr",
841 "value" : "0x18"
842 }
843 }
844 },
845 "right" : {
846 "type" : "hexstr",
847 "value" : "0xffffffff"
848 }
849 }
850 },
851 "right" : {
852 "type" : "hexstr",
853 "value" : "0xff"
854 }
855 }
856 }
857 }
858 ],
859 "op" : "set"
860 }
861 ],
862 "transitions" : [
863 {
864 "type" : "hexstr",
865 "value" : "0x8c",
866 "mask" : null,
867 "next_state" : "do_parse_gtpu"
868 },
869 {
870 "value" : "default",
871 "mask" : null,
872 "next_state" : null
873 }
874 ],
875 "transition_key" : [
876 {
877 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800878 "value" : ["scalars", "tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700879 }
880 ]
881 },
882 {
883 "name" : "do_parse_gtpu",
884 "id" : 11,
885 "parser_ops" : [
886 {
887 "parameters" : [
888 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800889 "type" : "regular",
890 "value" : "gtpu"
891 }
892 ],
893 "op" : "extract"
894 },
895 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800896 "parameters" : [
897 {
898 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700899 "value" : "inner_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800900 }
901 ],
902 "op" : "extract"
903 }
904 ],
905 "transitions" : [
906 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800907 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800908 "value" : "0x06",
909 "mask" : null,
910 "next_state" : "parse_tcp"
911 },
912 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800913 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800914 "value" : "0x11",
915 "mask" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700916 "next_state" : "parse_inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800917 },
918 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800919 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800920 "value" : "0x01",
921 "mask" : null,
922 "next_state" : "parse_icmp"
923 },
924 {
925 "value" : "default",
926 "mask" : null,
927 "next_state" : null
928 }
929 ],
930 "transition_key" : [
931 {
932 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700933 "value" : ["inner_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800934 }
935 ]
936 },
937 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700938 "name" : "parse_inner_udp",
939 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800940 "parser_ops" : [
941 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800942 "parameters" : [
943 {
944 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700945 "value" : "inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800946 }
947 ],
948 "op" : "extract"
949 },
950 {
951 "parameters" : [
952 {
953 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800954 "value" : ["scalars", "fabric_metadata_t._l4_sport15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800955 },
956 {
957 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800958 "value" : ["inner_udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800959 }
960 ],
961 "op" : "set"
962 },
963 {
964 "parameters" : [
965 {
966 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800967 "value" : ["scalars", "fabric_metadata_t._l4_dport16"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800968 },
969 {
970 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800971 "value" : ["inner_udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800972 }
973 ],
974 "op" : "set"
975 }
976 ],
977 "transitions" : [
978 {
979 "value" : "default",
980 "mask" : null,
981 "next_state" : null
982 }
983 ],
984 "transition_key" : []
985 }
986 ]
987 }
988 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800989 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800990 "deparsers" : [
991 {
992 "name" : "deparser",
993 "id" : 0,
994 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200995 "filename" : "include/parser.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800996 "line" : 243,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800997 "column" : 8,
998 "source_fragment" : "FabricDeparser"
999 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001000 "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "mpls", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "tcp", "udp", "icmp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001001 }
1002 ],
1003 "meter_arrays" : [],
1004 "counter_arrays" : [
1005 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001006 "name" : "FabricIngress.spgw_ingress.ue_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001007 "id" : 0,
1008 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001009 "binding" : "FabricIngress.spgw_ingress.dl_sess_lookup",
1010 "source_info" : {
1011 "filename" : "include/spgw.p4",
1012 "line" : 51,
1013 "column" : 50,
1014 "source_fragment" : "ue_counter"
1015 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001016 },
1017 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001018 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001019 "id" : 1,
1020 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001021 "binding" : "FabricIngress.filtering.ingress_port_vlan",
1022 "source_info" : {
1023 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001024 "line" : 31,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001025 "column" : 50,
1026 "source_fragment" : "ingress_port_vlan_counter"
1027 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001028 },
1029 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001030 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001031 "id" : 2,
1032 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001033 "binding" : "FabricIngress.filtering.fwd_classifier",
1034 "source_info" : {
1035 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001036 "line" : 80,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001037 "column" : 50,
1038 "source_fragment" : "fwd_classifier_counter"
1039 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001040 },
1041 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001042 "name" : "FabricIngress.forwarding.bridging_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001043 "id" : 3,
1044 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001045 "binding" : "FabricIngress.forwarding.bridging",
1046 "source_info" : {
1047 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001048 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001049 "column" : 50,
1050 "source_fragment" : "bridging_counter"
1051 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001052 },
1053 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001054 "name" : "FabricIngress.forwarding.mpls_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001055 "id" : 4,
1056 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001057 "binding" : "FabricIngress.forwarding.mpls",
1058 "source_info" : {
1059 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001060 "line" : 63,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001061 "column" : 50,
1062 "source_fragment" : "mpls_counter"
1063 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001064 },
1065 {
Charles Chan384aea22018-08-23 22:08:02 -07001066 "name" : "FabricIngress.forwarding.routing_v4_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001067 "id" : 5,
1068 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001069 "binding" : "FabricIngress.forwarding.routing_v4",
1070 "source_info" : {
1071 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001072 "line" : 87,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001073 "column" : 50,
1074 "source_fragment" : "routing_v4_counter"
1075 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001076 },
1077 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001078 "name" : "FabricIngress.acl.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001079 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001080 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001081 "binding" : "FabricIngress.acl.acl",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001082 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001083 "filename" : "include/control/acl.p4",
1084 "line" : 30,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001085 "column" : 50,
1086 "source_fragment" : "acl_counter"
1087 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001088 },
1089 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001090 "name" : "FabricIngress.next.next_vlan_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001091 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001092 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001093 "binding" : "FabricIngress.next.next_vlan",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001094 "source_info" : {
1095 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001096 "line" : 67,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001097 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001098 "source_fragment" : "next_vlan_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001099 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001100 },
1101 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001102 "name" : "FabricIngress.next.xconnect_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001103 "id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001104 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001105 "binding" : "FabricIngress.next.xconnect",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001106 "source_info" : {
1107 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001108 "line" : 92,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001109 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001110 "source_fragment" : "xconnect_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001111 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001112 },
1113 {
1114 "name" : "FabricIngress.next.hashed_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001115 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001116 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001117 "binding" : "FabricIngress.next.hashed",
1118 "source_info" : {
1119 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001120 "line" : 166,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001121 "column" : 50,
1122 "source_fragment" : "hashed_counter"
1123 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001124 },
1125 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001126 "name" : "FabricIngress.next.multicast_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001127 "id" : 10,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001128 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001129 "binding" : "FabricIngress.next.multicast",
1130 "source_info" : {
1131 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001132 "line" : 210,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001133 "column" : 50,
1134 "source_fragment" : "multicast_counter"
1135 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00001136 },
1137 {
1138 "name" : "FabricIngress.port_counters_control.egress_port_counter",
1139 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001140 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001141 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001142 "line" : 26,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001143 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001144 "source_fragment" : "egress_port_counter"
1145 },
1146 "size" : 511,
1147 "is_direct" : false
1148 },
1149 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001150 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001151 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001152 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001153 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001154 "line" : 27,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001155 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001156 "source_fragment" : "ingress_port_counter"
1157 },
1158 "size" : 511,
1159 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08001160 },
1161 {
1162 "name" : "FabricEgress.egress_next.egress_vlan_counter",
1163 "id" : 13,
1164 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001165 "binding" : "FabricEgress.egress_next.egress_vlan",
1166 "source_info" : {
1167 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001168 "line" : 283,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001169 "column" : 50,
1170 "source_fragment" : "egress_vlan_counter"
1171 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001172 }
1173 ],
1174 "register_arrays" : [],
1175 "calculations" : [
1176 {
1177 "name" : "calc",
1178 "id" : 0,
1179 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001180 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001181 "line" : 28,
1182 "column" : 8,
1183 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1184 },
1185 "algo" : "csum16",
1186 "input" : [
1187 {
1188 "type" : "field",
1189 "value" : ["ipv4", "version"]
1190 },
1191 {
1192 "type" : "field",
1193 "value" : ["ipv4", "ihl"]
1194 },
1195 {
1196 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001197 "value" : ["ipv4", "dscp"]
1198 },
1199 {
1200 "type" : "field",
1201 "value" : ["ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001202 },
1203 {
1204 "type" : "field",
1205 "value" : ["ipv4", "total_len"]
1206 },
1207 {
1208 "type" : "field",
1209 "value" : ["ipv4", "identification"]
1210 },
1211 {
1212 "type" : "field",
1213 "value" : ["ipv4", "flags"]
1214 },
1215 {
1216 "type" : "field",
1217 "value" : ["ipv4", "frag_offset"]
1218 },
1219 {
1220 "type" : "field",
1221 "value" : ["ipv4", "ttl"]
1222 },
1223 {
1224 "type" : "field",
1225 "value" : ["ipv4", "protocol"]
1226 },
1227 {
1228 "type" : "field",
1229 "value" : ["ipv4", "src_addr"]
1230 },
1231 {
1232 "type" : "field",
1233 "value" : ["ipv4", "dst_addr"]
1234 }
1235 ]
1236 },
1237 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001238 "name" : "calc_0",
1239 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001240 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001241 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001242 "line" : 242,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001243 "column" : 8,
1244 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1245 },
1246 "algo" : "csum16",
1247 "input" : [
1248 {
1249 "type" : "field",
1250 "value" : ["gtpu_ipv4", "version"]
1251 },
1252 {
1253 "type" : "field",
1254 "value" : ["gtpu_ipv4", "ihl"]
1255 },
1256 {
1257 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001258 "value" : ["gtpu_ipv4", "dscp"]
1259 },
1260 {
1261 "type" : "field",
1262 "value" : ["gtpu_ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001263 },
1264 {
1265 "type" : "field",
1266 "value" : ["gtpu_ipv4", "total_len"]
1267 },
1268 {
1269 "type" : "field",
1270 "value" : ["gtpu_ipv4", "identification"]
1271 },
1272 {
1273 "type" : "field",
1274 "value" : ["gtpu_ipv4", "flags"]
1275 },
1276 {
1277 "type" : "field",
1278 "value" : ["gtpu_ipv4", "frag_offset"]
1279 },
1280 {
1281 "type" : "field",
1282 "value" : ["gtpu_ipv4", "ttl"]
1283 },
1284 {
1285 "type" : "field",
1286 "value" : ["gtpu_ipv4", "protocol"]
1287 },
1288 {
1289 "type" : "field",
1290 "value" : ["gtpu_ipv4", "src_addr"]
1291 },
1292 {
1293 "type" : "field",
1294 "value" : ["gtpu_ipv4", "dst_addr"]
1295 }
1296 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001297 },
1298 {
1299 "name" : "calc_1",
1300 "id" : 2,
1301 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001302 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001303 "line" : 57,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001304 "column" : 8,
1305 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1306 },
1307 "algo" : "csum16",
1308 "input" : [
1309 {
1310 "type" : "field",
1311 "value" : ["ipv4", "version"]
1312 },
1313 {
1314 "type" : "field",
1315 "value" : ["ipv4", "ihl"]
1316 },
1317 {
1318 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001319 "value" : ["ipv4", "dscp"]
1320 },
1321 {
1322 "type" : "field",
1323 "value" : ["ipv4", "ecn"]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001324 },
1325 {
1326 "type" : "field",
1327 "value" : ["ipv4", "total_len"]
1328 },
1329 {
1330 "type" : "field",
1331 "value" : ["ipv4", "identification"]
1332 },
1333 {
1334 "type" : "field",
1335 "value" : ["ipv4", "flags"]
1336 },
1337 {
1338 "type" : "field",
1339 "value" : ["ipv4", "frag_offset"]
1340 },
1341 {
1342 "type" : "field",
1343 "value" : ["ipv4", "ttl"]
1344 },
1345 {
1346 "type" : "field",
1347 "value" : ["ipv4", "protocol"]
1348 },
1349 {
1350 "type" : "field",
1351 "value" : ["ipv4", "src_addr"]
1352 },
1353 {
1354 "type" : "field",
1355 "value" : ["ipv4", "dst_addr"]
1356 }
1357 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001358 }
1359 ],
1360 "learn_lists" : [],
1361 "actions" : [
1362 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001363 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001364 "id" : 0,
1365 "runtime_data" : [],
1366 "primitives" : []
1367 },
1368 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001369 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001370 "id" : 1,
1371 "runtime_data" : [],
1372 "primitives" : []
1373 },
1374 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001375 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001376 "id" : 2,
1377 "runtime_data" : [],
1378 "primitives" : []
1379 },
1380 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001381 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001382 "id" : 3,
1383 "runtime_data" : [],
1384 "primitives" : []
1385 },
1386 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001387 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001388 "id" : 4,
1389 "runtime_data" : [],
1390 "primitives" : []
1391 },
1392 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001393 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001394 "id" : 5,
1395 "runtime_data" : [],
1396 "primitives" : []
1397 },
1398 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001399 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001400 "id" : 6,
1401 "runtime_data" : [],
1402 "primitives" : []
1403 },
1404 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001405 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001406 "id" : 7,
1407 "runtime_data" : [],
1408 "primitives" : []
1409 },
1410 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001411 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001412 "id" : 8,
1413 "runtime_data" : [],
1414 "primitives" : []
1415 },
1416 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001417 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001418 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001419 "runtime_data" : [],
1420 "primitives" : [
1421 {
1422 "op" : "remove_header",
1423 "parameters" : [
1424 {
1425 "type" : "header",
1426 "value" : "gtpu_ipv4"
1427 }
1428 ],
1429 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001430 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001431 "line" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001432 "column" : 8,
1433 "source_fragment" : "gtpu_ipv4.setInvalid()"
1434 }
1435 },
1436 {
1437 "op" : "remove_header",
1438 "parameters" : [
1439 {
1440 "type" : "header",
1441 "value" : "gtpu_udp"
1442 }
1443 ],
1444 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001445 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001446 "line" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001447 "column" : 8,
1448 "source_fragment" : "gtpu_udp.setInvalid()"
1449 }
1450 },
1451 {
1452 "op" : "remove_header",
1453 "parameters" : [
1454 {
1455 "type" : "header",
1456 "value" : "gtpu"
1457 }
1458 ],
1459 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001460 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001461 "line" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001462 "column" : 8,
1463 "source_fragment" : "gtpu.setInvalid()"
1464 }
1465 }
1466 ]
1467 },
1468 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001469 "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001470 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001471 "runtime_data" : [
1472 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001473 "name" : "teid",
1474 "bitwidth" : 32
1475 },
1476 {
1477 "name" : "s1u_enb_addr",
1478 "bitwidth" : 32
1479 },
1480 {
1481 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001482 "bitwidth" : 32
1483 }
1484 ],
1485 "primitives" : [
1486 {
1487 "op" : "assign",
1488 "parameters" : [
1489 {
1490 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001491 "value" : ["scalars", "fabric_metadata_t._spgw_teid19"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001492 },
1493 {
1494 "type" : "runtime_data",
1495 "value" : 0
1496 }
1497 ],
1498 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001499 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001500 "line" : 63,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001501 "column" : 30,
1502 "source_fragment" : "= teid; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001503 }
1504 },
1505 {
1506 "op" : "assign",
1507 "parameters" : [
1508 {
1509 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001510 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr20"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001511 },
1512 {
1513 "type" : "runtime_data",
1514 "value" : 1
1515 }
1516 ],
1517 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001518 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001519 "line" : 64,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001520 "column" : 38,
1521 "source_fragment" : "= s1u_enb_addr; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001522 }
1523 },
1524 {
1525 "op" : "assign",
1526 "parameters" : [
1527 {
1528 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001529 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr21"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001530 },
1531 {
1532 "type" : "runtime_data",
1533 "value" : 2
1534 }
1535 ],
1536 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001537 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001538 "line" : 65,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001539 "column" : 38,
1540 "source_fragment" : "= s1u_sgw_addr; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001541 }
1542 }
1543 ]
1544 },
1545 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001546 "name" : "FabricIngress.filtering.deny",
1547 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001548 "runtime_data" : [],
1549 "primitives" : [
1550 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001551 "op" : "assign",
1552 "parameters" : [
1553 {
1554 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001555 "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001556 },
1557 {
1558 "type" : "expression",
1559 "value" : {
1560 "type" : "expression",
1561 "value" : {
1562 "op" : "b2d",
1563 "left" : null,
1564 "right" : {
1565 "type" : "bool",
1566 "value" : true
1567 }
1568 }
1569 }
1570 }
1571 ],
1572 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001573 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001574 "line" : 36,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001575 "column" : 40,
1576 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001577 }
1578 },
1579 {
1580 "op" : "assign",
1581 "parameters" : [
1582 {
1583 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001584 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001585 },
1586 {
1587 "type" : "expression",
1588 "value" : {
1589 "type" : "expression",
1590 "value" : {
1591 "op" : "b2d",
1592 "left" : null,
1593 "right" : {
1594 "type" : "bool",
1595 "value" : true
1596 }
1597 }
1598 }
1599 }
1600 ],
1601 "source_info" : {
1602 "filename" : "include/control/filtering.p4",
1603 "line" : 37,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001604 "column" : 34,
1605 "source_fragment" : "= true; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001606 }
1607 }
1608 ]
1609 },
1610 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001611 "name" : "FabricIngress.filtering.permit",
1612 "id" : 12,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001613 "runtime_data" : [],
1614 "primitives" : []
1615 },
1616 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001617 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
1618 "id" : 13,
1619 "runtime_data" : [
1620 {
1621 "name" : "vlan_id",
1622 "bitwidth" : 12
1623 }
1624 ],
1625 "primitives" : [
1626 {
1627 "op" : "assign",
1628 "parameters" : [
1629 {
1630 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001631 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001632 },
1633 {
1634 "type" : "runtime_data",
1635 "value" : 0
1636 }
1637 ],
1638 "source_info" : {
1639 "filename" : "include/control/filtering.p4",
1640 "line" : 47,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001641 "column" : 32,
1642 "source_fragment" : "= vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001643 }
1644 }
1645 ]
1646 },
1647 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001648 "name" : "FabricIngress.filtering.set_forwarding_type",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001649 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001650 "runtime_data" : [
1651 {
1652 "name" : "fwd_type",
1653 "bitwidth" : 3
1654 }
1655 ],
1656 "primitives" : [
1657 {
1658 "op" : "assign",
1659 "parameters" : [
1660 {
1661 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001662 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001663 },
1664 {
1665 "type" : "runtime_data",
1666 "value" : 0
1667 }
1668 ],
1669 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001670 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001671 "line" : 83,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001672 "column" : 33,
1673 "source_fragment" : "= fwd_type; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001674 }
1675 }
1676 ]
1677 },
1678 {
Yi Tseng47eac892018-07-11 02:17:04 +08001679 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001680 "id" : 15,
1681 "runtime_data" : [
1682 {
1683 "name" : "next_id",
1684 "bitwidth" : 32
1685 }
1686 ],
1687 "primitives" : [
1688 {
1689 "op" : "assign",
1690 "parameters" : [
1691 {
1692 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001693 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001694 },
1695 {
1696 "type" : "runtime_data",
1697 "value" : 0
1698 }
1699 ],
1700 "source_info" : {
1701 "filename" : "include/control/forwarding.p4",
1702 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001703 "column" : 32,
1704 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001705 }
1706 }
1707 ]
1708 },
1709 {
1710 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
1711 "id" : 16,
1712 "runtime_data" : [
1713 {
1714 "name" : "next_id",
1715 "bitwidth" : 32
1716 }
1717 ],
1718 "primitives" : [
1719 {
1720 "op" : "assign",
1721 "parameters" : [
1722 {
1723 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001724 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001725 },
1726 {
1727 "type" : "hexstr",
1728 "value" : "0x000000"
1729 }
1730 ],
1731 "source_info" : {
1732 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001733 "line" : 66,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001734 "column" : 35,
1735 "source_fragment" : "= 0; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001736 }
1737 },
1738 {
1739 "op" : "assign",
1740 "parameters" : [
1741 {
1742 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001743 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001744 },
1745 {
1746 "type" : "runtime_data",
1747 "value" : 0
1748 }
1749 ],
1750 "source_info" : {
1751 "filename" : "include/control/forwarding.p4",
1752 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001753 "column" : 32,
1754 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001755 }
1756 }
1757 ]
1758 },
1759 {
1760 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001761 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001762 "runtime_data" : [
1763 {
1764 "name" : "next_id",
1765 "bitwidth" : 32
1766 }
1767 ],
1768 "primitives" : [
1769 {
1770 "op" : "assign",
1771 "parameters" : [
1772 {
1773 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001774 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001775 },
1776 {
1777 "type" : "runtime_data",
1778 "value" : 0
1779 }
1780 ],
1781 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001782 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001783 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001784 "column" : 32,
1785 "source_fragment" : "= next_id; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001786 }
1787 }
1788 ]
1789 },
1790 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001791 "name" : "FabricIngress.forwarding.nop_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001792 "id" : 18,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001793 "runtime_data" : [],
1794 "primitives" : []
Yi Tseng47eac892018-07-11 02:17:04 +08001795 },
1796 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001797 "name" : "FabricIngress.acl.set_next_id_acl",
Charles Chancf696e52018-08-16 16:25:13 -07001798 "id" : 19,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001799 "runtime_data" : [
1800 {
1801 "name" : "next_id",
1802 "bitwidth" : 32
1803 }
1804 ],
1805 "primitives" : [
1806 {
1807 "op" : "assign",
1808 "parameters" : [
1809 {
1810 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001811 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08001812 },
1813 {
1814 "type" : "runtime_data",
1815 "value" : 0
1816 }
1817 ],
1818 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001819 "filename" : "include/control/acl.p4",
1820 "line" : 33,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001821 "column" : 32,
1822 "source_fragment" : "= next_id; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001823 }
1824 }
1825 ]
1826 },
1827 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001828 "name" : "FabricIngress.acl.punt_to_cpu",
Charles Chancf696e52018-08-16 16:25:13 -07001829 "id" : 20,
Charles Chancd03f072018-08-31 17:46:37 -07001830 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001831 "primitives" : [
1832 {
1833 "op" : "assign",
1834 "parameters" : [
1835 {
1836 "type" : "field",
1837 "value" : ["standard_metadata", "egress_spec"]
1838 },
1839 {
1840 "type" : "hexstr",
1841 "value" : "0x00ff"
1842 }
1843 ],
1844 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001845 "filename" : "include/control/acl.p4",
1846 "line" : 39,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001847 "column" : 8,
1848 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001849 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001850 },
1851 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001852 "op" : "assign",
1853 "parameters" : [
1854 {
1855 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001856 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001857 },
1858 {
1859 "type" : "expression",
1860 "value" : {
1861 "type" : "expression",
1862 "value" : {
1863 "op" : "b2d",
1864 "left" : null,
1865 "right" : {
1866 "type" : "bool",
1867 "value" : true
1868 }
1869 }
1870 }
1871 }
1872 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001873 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001874 "filename" : "include/control/acl.p4",
1875 "line" : 40,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001876 "column" : 34,
1877 "source_fragment" : "= true; ..."
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001878 }
1879 }
1880 ]
1881 },
1882 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001883 "name" : "FabricIngress.acl.clone_to_cpu",
1884 "id" : 21,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001885 "runtime_data" : [],
1886 "primitives" : [
1887 {
1888 "op" : "assign",
1889 "parameters" : [
1890 {
1891 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001892 "value" : ["scalars", "fabric_metadata_t._clone_to_cpu13"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001893 },
1894 {
1895 "type" : "expression",
1896 "value" : {
1897 "type" : "expression",
1898 "value" : {
1899 "op" : "b2d",
1900 "left" : null,
1901 "right" : {
1902 "type" : "bool",
1903 "value" : true
1904 }
1905 }
1906 }
1907 }
1908 ],
1909 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001910 "filename" : "include/control/acl.p4",
1911 "line" : 46,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001912 "column" : 37,
1913 "source_fragment" : "= true; ..."
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001914 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001915 }
1916 ]
1917 },
1918 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001919 "name" : "FabricIngress.acl.drop",
1920 "id" : 22,
Yi Tseng47eac892018-07-11 02:17:04 +08001921 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001922 "primitives" : [
1923 {
Yi Tseng47eac892018-07-11 02:17:04 +08001924 "op" : "drop",
1925 "parameters" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001926 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001927 "filename" : "include/control/acl.p4",
1928 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001929 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001930 "source_fragment" : "mark_to_drop()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001931 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001932 },
1933 {
1934 "op" : "assign",
1935 "parameters" : [
1936 {
1937 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001938 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001939 },
1940 {
1941 "type" : "expression",
1942 "value" : {
1943 "type" : "expression",
1944 "value" : {
1945 "op" : "b2d",
1946 "left" : null,
1947 "right" : {
1948 "type" : "bool",
1949 "value" : true
1950 }
1951 }
1952 }
1953 }
1954 ],
1955 "source_info" : {
1956 "filename" : "include/control/acl.p4",
1957 "line" : 52,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001958 "column" : 34,
1959 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001960 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001961 }
1962 ]
1963 },
1964 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001965 "name" : "FabricIngress.acl.nop_acl",
1966 "id" : 23,
Charles Chancf696e52018-08-16 16:25:13 -07001967 "runtime_data" : [],
1968 "primitives" : []
1969 },
1970 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001971 "name" : "FabricIngress.next.set_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001972 "id" : 24,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001973 "runtime_data" : [
1974 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001975 "name" : "vlan_id",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001976 "bitwidth" : 12
1977 }
1978 ],
1979 "primitives" : [
1980 {
1981 "op" : "assign",
1982 "parameters" : [
1983 {
1984 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001985 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001986 },
1987 {
1988 "type" : "runtime_data",
1989 "value" : 0
1990 }
1991 ],
1992 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001993 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001994 "line" : 70,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001995 "column" : 32,
1996 "source_fragment" : "= vlan_id; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001997 }
1998 }
1999 ]
2000 },
2001 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002002 "name" : "FabricIngress.next.output_xconnect",
2003 "id" : 25,
2004 "runtime_data" : [
2005 {
2006 "name" : "port_num",
2007 "bitwidth" : 9
2008 }
2009 ],
2010 "primitives" : [
2011 {
2012 "op" : "assign",
2013 "parameters" : [
2014 {
2015 "type" : "field",
2016 "value" : ["standard_metadata", "egress_spec"]
2017 },
2018 {
2019 "type" : "runtime_data",
2020 "value" : 0
2021 }
2022 ],
2023 "source_info" : {
2024 "filename" : "include/control/next.p4",
2025 "line" : 31,
2026 "column" : 5,
2027 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2028 }
2029 }
2030 ]
2031 },
2032 {
2033 "name" : "FabricIngress.next.set_next_id_xconnect",
2034 "id" : 26,
2035 "runtime_data" : [
2036 {
2037 "name" : "next_id",
2038 "bitwidth" : 32
2039 }
2040 ],
2041 "primitives" : [
2042 {
2043 "op" : "assign",
2044 "parameters" : [
2045 {
2046 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002047 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002048 },
2049 {
2050 "type" : "runtime_data",
2051 "value" : 0
2052 }
2053 ],
2054 "source_info" : {
2055 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002056 "line" : 100,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002057 "column" : 32,
2058 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002059 }
2060 }
2061 ]
2062 },
2063 {
2064 "name" : "FabricIngress.next.output_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002065 "id" : 27,
Yi Tseng47eac892018-07-11 02:17:04 +08002066 "runtime_data" : [
2067 {
2068 "name" : "port_num",
2069 "bitwidth" : 9
2070 }
2071 ],
2072 "primitives" : [
2073 {
2074 "op" : "assign",
2075 "parameters" : [
2076 {
2077 "type" : "field",
2078 "value" : ["standard_metadata", "egress_spec"]
2079 },
2080 {
2081 "type" : "runtime_data",
2082 "value" : 0
2083 }
2084 ],
2085 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002086 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002087 "line" : 31,
2088 "column" : 5,
2089 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng47eac892018-07-11 02:17:04 +08002090 }
2091 }
2092 ]
2093 },
2094 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002095 "name" : "FabricIngress.next.routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002096 "id" : 28,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002097 "runtime_data" : [
2098 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002099 "name" : "port_num",
2100 "bitwidth" : 9
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002101 },
2102 {
2103 "name" : "smac",
2104 "bitwidth" : 48
2105 },
2106 {
2107 "name" : "dmac",
2108 "bitwidth" : 48
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002109 }
2110 ],
2111 "primitives" : [
2112 {
2113 "op" : "assign",
2114 "parameters" : [
2115 {
2116 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002117 "value" : ["ethernet", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002118 },
2119 {
2120 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002121 "value" : 1
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002122 }
2123 ],
2124 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002125 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002126 "line" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002127 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002128 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2129 }
2130 },
2131 {
2132 "op" : "assign",
2133 "parameters" : [
2134 {
2135 "type" : "field",
2136 "value" : ["ethernet", "dst_addr"]
2137 },
2138 {
2139 "type" : "runtime_data",
2140 "value" : 2
2141 }
2142 ],
2143 "source_info" : {
2144 "filename" : "include/control/next.p4",
2145 "line" : 41,
2146 "column" : 8,
2147 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002148 }
2149 },
2150 {
2151 "op" : "assign",
2152 "parameters" : [
2153 {
2154 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002155 "value" : ["standard_metadata", "egress_spec"]
2156 },
2157 {
2158 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002159 "value" : 0
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002160 }
2161 ],
2162 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002163 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002164 "line" : 31,
2165 "column" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002166 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2167 }
2168 }
2169 ]
2170 },
2171 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002172 "name" : "FabricIngress.next.mpls_routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002173 "id" : 29,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002174 "runtime_data" : [
2175 {
2176 "name" : "port_num",
2177 "bitwidth" : 9
2178 },
2179 {
2180 "name" : "smac",
2181 "bitwidth" : 48
2182 },
2183 {
2184 "name" : "dmac",
2185 "bitwidth" : 48
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002186 },
2187 {
2188 "name" : "label",
2189 "bitwidth" : 20
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002190 }
2191 ],
2192 "primitives" : [
2193 {
2194 "op" : "assign",
2195 "parameters" : [
2196 {
2197 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002198 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002199 },
2200 {
2201 "type" : "runtime_data",
2202 "value" : 3
2203 }
2204 ],
2205 "source_info" : {
2206 "filename" : "include/control/next.p4",
2207 "line" : 46,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002208 "column" : 35,
2209 "source_fragment" : "= label; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002210 }
2211 },
2212 {
2213 "op" : "assign",
2214 "parameters" : [
2215 {
2216 "type" : "field",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002217 "value" : ["ethernet", "src_addr"]
2218 },
2219 {
2220 "type" : "runtime_data",
2221 "value" : 1
2222 }
2223 ],
2224 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002225 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002226 "line" : 36,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002227 "column" : 8,
2228 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2229 }
2230 },
2231 {
2232 "op" : "assign",
2233 "parameters" : [
2234 {
2235 "type" : "field",
2236 "value" : ["ethernet", "dst_addr"]
2237 },
2238 {
2239 "type" : "runtime_data",
2240 "value" : 2
2241 }
2242 ],
2243 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002244 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002245 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002246 "column" : 8,
2247 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2248 }
2249 },
2250 {
2251 "op" : "assign",
2252 "parameters" : [
2253 {
2254 "type" : "field",
2255 "value" : ["standard_metadata", "egress_spec"]
2256 },
2257 {
2258 "type" : "runtime_data",
2259 "value" : 0
2260 }
2261 ],
2262 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002263 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002264 "line" : 31,
2265 "column" : 5,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002266 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2267 }
2268 }
2269 ]
2270 },
2271 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002272 "name" : "FabricIngress.next.set_mcast_group_id",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002273 "id" : 30,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002274 "runtime_data" : [
2275 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002276 "name" : "group_id",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002277 "bitwidth" : 16
2278 }
2279 ],
2280 "primitives" : [
2281 {
2282 "op" : "assign",
2283 "parameters" : [
2284 {
2285 "type" : "field",
2286 "value" : ["standard_metadata", "mcast_grp"]
2287 },
2288 {
2289 "type" : "runtime_data",
2290 "value" : 0
2291 }
2292 ],
2293 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002294 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002295 "line" : 213,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002296 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002297 "source_fragment" : "standard_metadata.mcast_grp = group_id"
Esin Karaman971fb7f2017-12-28 13:44:52 +00002298 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002299 },
2300 {
2301 "op" : "assign",
2302 "parameters" : [
2303 {
2304 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002305 "value" : ["scalars", "fabric_metadata_t._is_multicast11"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002306 },
2307 {
2308 "type" : "expression",
2309 "value" : {
2310 "type" : "expression",
2311 "value" : {
2312 "op" : "b2d",
2313 "left" : null,
2314 "right" : {
2315 "type" : "bool",
2316 "value" : true
2317 }
2318 }
2319 }
2320 }
2321 ],
2322 "source_info" : {
2323 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002324 "line" : 214,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002325 "column" : 37,
2326 "source_fragment" : "= true; ..."
Carmelo Casconea5400af2018-07-17 22:11:54 +02002327 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002328 }
2329 ]
2330 },
2331 {
2332 "name" : "act",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002333 "id" : 31,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002334 "runtime_data" : [],
2335 "primitives" : [
2336 {
2337 "op" : "assign",
2338 "parameters" : [
2339 {
2340 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002341 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002342 },
2343 {
2344 "type" : "expression",
2345 "value" : {
2346 "type" : "expression",
2347 "value" : {
2348 "op" : "b2d",
2349 "left" : null,
2350 "right" : {
2351 "type" : "bool",
2352 "value" : true
2353 }
2354 }
2355 }
2356 }
2357 ],
2358 "source_info" : {
2359 "filename" : "include/spgw.p4",
2360 "line" : 30,
2361 "column" : 32,
2362 "source_fragment" : "return"
2363 }
2364 }
2365 ]
2366 },
2367 {
2368 "name" : "act_0",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002369 "id" : 32,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002370 "runtime_data" : [],
2371 "primitives" : [
2372 {
2373 "op" : "remove_header",
2374 "parameters" : [
2375 {
2376 "type" : "header",
2377 "value" : "gtpu_ipv4"
2378 }
2379 ],
2380 "source_info" : {
2381 "filename" : "fabric.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002382 "line" : 58,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002383 "column" : 50,
2384 "source_fragment" : "hdr.gtpu_ipv4"
2385 }
2386 },
2387 {
2388 "op" : "remove_header",
2389 "parameters" : [
2390 {
2391 "type" : "header",
2392 "value" : "gtpu_udp"
2393 }
2394 ],
2395 "source_info" : {
2396 "filename" : "fabric.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002397 "line" : 58,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002398 "column" : 65,
2399 "source_fragment" : "hdr.gtpu_udp"
2400 }
2401 },
2402 {
2403 "op" : "assign",
2404 "parameters" : [
2405 {
2406 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002407 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002408 },
2409 {
2410 "type" : "expression",
2411 "value" : {
2412 "type" : "expression",
2413 "value" : {
2414 "op" : "b2d",
2415 "left" : null,
2416 "right" : {
2417 "type" : "bool",
2418 "value" : false
2419 }
2420 }
2421 }
2422 }
2423 ]
2424 }
2425 ]
2426 },
2427 {
2428 "name" : "act_1",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002429 "id" : 33,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002430 "runtime_data" : [],
2431 "primitives" : [
2432 {
2433 "op" : "assign_header",
2434 "parameters" : [
2435 {
2436 "type" : "header",
2437 "value" : "udp"
2438 },
2439 {
2440 "type" : "header",
2441 "value" : "inner_udp"
2442 }
2443 ],
2444 "source_info" : {
2445 "filename" : "include/spgw.p4",
2446 "line" : 35,
2447 "column" : 16,
2448 "source_fragment" : "= inner_udp; ..."
2449 }
2450 }
2451 ]
2452 },
2453 {
2454 "name" : "act_2",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002455 "id" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002456 "runtime_data" : [],
2457 "primitives" : [
2458 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002459 "op" : "remove_header",
2460 "parameters" : [
2461 {
2462 "type" : "header",
2463 "value" : "udp"
2464 }
2465 ],
2466 "source_info" : {
2467 "filename" : "include/spgw.p4",
2468 "line" : 37,
2469 "column" : 12,
2470 "source_fragment" : "udp.setInvalid()"
2471 }
2472 }
2473 ]
2474 },
2475 {
2476 "name" : "act_3",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002477 "id" : 35,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002478 "runtime_data" : [],
2479 "primitives" : [
2480 {
2481 "op" : "assign_header",
2482 "parameters" : [
2483 {
2484 "type" : "header",
2485 "value" : "gtpu_ipv4"
2486 },
2487 {
2488 "type" : "header",
2489 "value" : "ipv4"
2490 }
2491 ],
2492 "source_info" : {
2493 "filename" : "include/spgw.p4",
2494 "line" : 31,
2495 "column" : 18,
2496 "source_fragment" : "= ipv4; ..."
2497 }
2498 },
2499 {
2500 "op" : "assign_header",
2501 "parameters" : [
2502 {
2503 "type" : "header",
2504 "value" : "ipv4"
2505 },
2506 {
2507 "type" : "header",
2508 "value" : "inner_ipv4"
2509 }
2510 ],
2511 "source_info" : {
2512 "filename" : "include/spgw.p4",
2513 "line" : 32,
2514 "column" : 13,
2515 "source_fragment" : "= inner_ipv4; ..."
2516 }
2517 },
2518 {
2519 "op" : "assign_header",
2520 "parameters" : [
2521 {
2522 "type" : "header",
2523 "value" : "gtpu_udp"
2524 },
2525 {
2526 "type" : "header",
2527 "value" : "udp"
2528 }
2529 ],
2530 "source_info" : {
2531 "filename" : "include/spgw.p4",
2532 "line" : 33,
2533 "column" : 17,
2534 "source_fragment" : "= udp; ..."
2535 }
2536 }
2537 ]
2538 },
2539 {
2540 "name" : "act_4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002541 "id" : 36,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002542 "runtime_data" : [],
2543 "primitives" : [
2544 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002545 "op" : "assign",
2546 "parameters" : [
2547 {
2548 "type" : "field",
2549 "value" : ["standard_metadata", "egress_spec"]
2550 },
2551 {
2552 "type" : "field",
2553 "value" : ["packet_out", "egress_port"]
2554 }
2555 ],
2556 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002557 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002558 "line" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002559 "column" : 12,
2560 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2561 }
2562 },
2563 {
2564 "op" : "remove_header",
2565 "parameters" : [
2566 {
2567 "type" : "header",
2568 "value" : "packet_out"
2569 }
2570 ],
2571 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002572 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002573 "line" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002574 "column" : 12,
2575 "source_fragment" : "hdr.packet_out.setInvalid()"
2576 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002577 },
2578 {
2579 "op" : "assign",
2580 "parameters" : [
2581 {
2582 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002583 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out12"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002584 },
2585 {
2586 "type" : "expression",
2587 "value" : {
2588 "type" : "expression",
2589 "value" : {
2590 "op" : "b2d",
2591 "left" : null,
2592 "right" : {
2593 "type" : "bool",
2594 "value" : true
2595 }
2596 }
2597 }
2598 }
2599 ],
2600 "source_info" : {
2601 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002602 "line" : 27,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002603 "column" : 53,
2604 "source_fragment" : "= true; ..."
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002605 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002606 }
2607 ]
2608 },
2609 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002610 "name" : "act_5",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002611 "id" : 37,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002612 "runtime_data" : [],
2613 "primitives" : [
2614 {
2615 "op" : "assign",
2616 "parameters" : [
2617 {
2618 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002619 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002620 },
2621 {
2622 "type" : "field",
2623 "value" : ["vlan_tag", "eth_type"]
2624 }
2625 ],
2626 "source_info" : {
2627 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002628 "line" : 105,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002629 "column" : 37,
2630 "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002631 }
2632 },
2633 {
2634 "op" : "assign",
2635 "parameters" : [
2636 {
2637 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002638 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002639 },
2640 {
2641 "type" : "field",
2642 "value" : ["vlan_tag", "vlan_id"]
2643 }
2644 ],
2645 "source_info" : {
2646 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002647 "line" : 106,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002648 "column" : 36,
2649 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002650 }
2651 },
2652 {
2653 "op" : "assign",
2654 "parameters" : [
2655 {
2656 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002657 "value" : ["scalars", "fabric_metadata_t._vlan_pri3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002658 },
2659 {
2660 "type" : "field",
2661 "value" : ["vlan_tag", "pri"]
2662 }
2663 ],
2664 "source_info" : {
2665 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002666 "line" : 107,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002667 "column" : 37,
2668 "source_fragment" : "= hdr.vlan_tag.pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002669 }
2670 },
2671 {
2672 "op" : "assign",
2673 "parameters" : [
2674 {
2675 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002676 "value" : ["scalars", "fabric_metadata_t._vlan_cfi4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002677 },
2678 {
2679 "type" : "field",
2680 "value" : ["vlan_tag", "cfi"]
2681 }
2682 ],
2683 "source_info" : {
2684 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002685 "line" : 108,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002686 "column" : 37,
2687 "source_fragment" : "= hdr.vlan_tag.cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002688 }
2689 }
2690 ]
2691 },
2692 {
2693 "name" : "act_6",
2694 "id" : 38,
2695 "runtime_data" : [],
2696 "primitives" : [
2697 {
2698 "op" : "assign",
2699 "parameters" : [
2700 {
2701 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002702 "value" : ["scalars", "fabric_metadata_t._mpls_ttl6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002703 },
2704 {
2705 "type" : "hexstr",
2706 "value" : "0x41"
2707 }
2708 ],
2709 "source_info" : {
2710 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002711 "line" : 115,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002712 "column" : 37,
2713 "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002714 }
2715 }
2716 ]
2717 },
2718 {
2719 "name" : "act_7",
2720 "id" : 39,
2721 "runtime_data" : [],
2722 "primitives" : [
2723 {
2724 "op" : "assign",
2725 "parameters" : [
2726 {
2727 "type" : "field",
2728 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002729 },
2730 {
2731 "type" : "expression",
2732 "value" : {
2733 "type" : "expression",
2734 "value" : {
2735 "op" : "b2d",
2736 "left" : null,
2737 "right" : {
2738 "type" : "bool",
2739 "value" : true
2740 }
2741 }
2742 }
2743 }
2744 ]
2745 }
2746 ]
2747 },
2748 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002749 "name" : "act_8",
2750 "id" : 40,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002751 "runtime_data" : [],
2752 "primitives" : [
2753 {
2754 "op" : "assign",
2755 "parameters" : [
2756 {
2757 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002758 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002759 },
2760 {
2761 "type" : "expression",
2762 "value" : {
2763 "type" : "expression",
2764 "value" : {
2765 "op" : "b2d",
2766 "left" : null,
2767 "right" : {
2768 "type" : "bool",
2769 "value" : false
2770 }
2771 }
2772 }
2773 }
2774 ]
2775 }
2776 ]
2777 },
2778 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002779 "name" : "act_9",
2780 "id" : 41,
2781 "runtime_data" : [],
2782 "primitives" : [
2783 {
2784 "op" : "drop",
2785 "parameters" : [],
2786 "source_info" : {
2787 "filename" : "include/spgw.p4",
2788 "line" : 148,
2789 "column" : 16,
2790 "source_fragment" : "mark_to_drop()"
2791 }
2792 }
2793 ]
2794 },
2795 {
2796 "name" : "act_10",
2797 "id" : 42,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002798 "runtime_data" : [],
2799 "primitives" : [
2800 {
2801 "op" : "assign",
2802 "parameters" : [
2803 {
2804 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002805 "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002806 },
2807 {
2808 "type" : "hexstr",
2809 "value" : "0x01"
2810 }
2811 ],
2812 "source_info" : {
2813 "filename" : "include/control/../define.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002814 "line" : 137,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002815 "column" : 36,
2816 "source_fragment" : "2w1; ..."
2817 }
2818 }
2819 ]
2820 },
2821 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002822 "name" : "act_11",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002823 "id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002824 "runtime_data" : [],
2825 "primitives" : [
2826 {
2827 "op" : "assign",
2828 "parameters" : [
2829 {
2830 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002831 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002832 },
2833 {
2834 "type" : "expression",
2835 "value" : {
2836 "type" : "expression",
2837 "value" : {
2838 "op" : "b2d",
2839 "left" : null,
2840 "right" : {
2841 "type" : "bool",
2842 "value" : true
2843 }
2844 }
2845 }
2846 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002847 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002848 }
2849 ]
2850 },
2851 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002852 "name" : "act_12",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002853 "id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002854 "runtime_data" : [],
2855 "primitives" : [
2856 {
2857 "op" : "assign",
2858 "parameters" : [
2859 {
2860 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002861 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002862 },
2863 {
2864 "type" : "expression",
2865 "value" : {
2866 "type" : "expression",
2867 "value" : {
2868 "op" : "b2d",
2869 "left" : null,
2870 "right" : {
2871 "type" : "bool",
2872 "value" : false
2873 }
2874 }
2875 }
2876 }
2877 ]
2878 }
2879 ]
2880 },
2881 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002882 "name" : "act_13",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002883 "id" : 45,
Yi Tseng27b9bc02018-04-12 14:52:40 +08002884 "runtime_data" : [],
2885 "primitives" : [
2886 {
2887 "op" : "assign",
2888 "parameters" : [
2889 {
2890 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002891 "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08002892 },
2893 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002894 "type" : "hexstr",
2895 "value" : "0x02"
Yi Tseng27b9bc02018-04-12 14:52:40 +08002896 }
2897 ],
2898 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002899 "filename" : "include/control/../define.p4",
2900 "line" : 138,
2901 "column" : 38,
2902 "source_fragment" : "2w2; ..."
Yi Tseng27b9bc02018-04-12 14:52:40 +08002903 }
2904 }
2905 ]
2906 },
2907 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002908 "name" : "act_14",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002909 "id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002910 "runtime_data" : [],
2911 "primitives" : [
2912 {
2913 "op" : "assign",
2914 "parameters" : [
2915 {
2916 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002917 "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002918 },
2919 {
2920 "type" : "hexstr",
2921 "value" : "0x00"
2922 }
2923 ],
2924 "source_info" : {
2925 "filename" : "include/control/../define.p4",
2926 "line" : 136,
2927 "column" : 37,
2928 "source_fragment" : "2w0; ..."
2929 }
2930 },
2931 {
2932 "op" : "assign",
2933 "parameters" : [
2934 {
2935 "type" : "field",
2936 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002937 },
2938 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002939 "type" : "expression",
2940 "value" : {
2941 "type" : "expression",
2942 "value" : {
2943 "op" : "b2d",
2944 "left" : null,
2945 "right" : {
2946 "type" : "bool",
2947 "value" : true
2948 }
2949 }
2950 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002951 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002952 ],
2953 "source_info" : {
2954 "filename" : "include/spgw.p4",
2955 "line" : 157,
2956 "column" : 12,
2957 "source_fragment" : "return"
2958 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002959 }
2960 ]
2961 },
2962 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002963 "name" : "act_15",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002964 "id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002965 "runtime_data" : [],
2966 "primitives" : [
2967 {
2968 "op" : "assign",
2969 "parameters" : [
2970 {
2971 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002972 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002973 },
2974 {
2975 "type" : "expression",
2976 "value" : {
2977 "type" : "expression",
2978 "value" : {
2979 "op" : "b2d",
2980 "left" : null,
2981 "right" : {
2982 "type" : "bool",
2983 "value" : false
2984 }
2985 }
2986 }
2987 }
2988 ]
2989 }
2990 ]
2991 },
2992 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02002993 "name" : "act_16",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002994 "id" : 48,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002995 "runtime_data" : [],
2996 "primitives" : [
2997 {
2998 "op" : "assign",
2999 "parameters" : [
3000 {
3001 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003002 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len18"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003003 },
3004 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003005 "type" : "field",
3006 "value" : ["ipv4", "total_len"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003007 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003008 ],
3009 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003010 "filename" : "include/spgw.p4",
3011 "line" : 174,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003012 "column" : 34,
3013 "source_fragment" : "= ipv4.total_len; ..."
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003014 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003015 }
3016 ]
3017 },
3018 {
3019 "name" : "act_17",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003020 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003021 "runtime_data" : [],
3022 "primitives" : [
3023 {
3024 "op" : "assign",
3025 "parameters" : [
3026 {
3027 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003028 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003029 },
3030 {
3031 "type" : "expression",
3032 "value" : {
3033 "type" : "expression",
3034 "value" : {
3035 "op" : "&",
3036 "left" : {
3037 "type" : "field",
3038 "value" : ["standard_metadata", "egress_spec"]
3039 },
3040 "right" : {
3041 "type" : "hexstr",
3042 "value" : "0xffffffff"
3043 }
3044 }
3045 }
3046 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003047 ],
3048 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003049 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003050 "line" : 31,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003051 "column" : 38,
3052 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3053 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003054 },
3055 {
3056 "op" : "count",
3057 "parameters" : [
3058 {
3059 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003060 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003061 },
3062 {
3063 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003064 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003065 }
3066 ],
3067 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003068 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003069 "line" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003070 "column" : 12,
3071 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3072 }
3073 }
3074 ]
3075 },
3076 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003077 "name" : "act_18",
3078 "id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003079 "runtime_data" : [],
3080 "primitives" : [
3081 {
3082 "op" : "assign",
3083 "parameters" : [
3084 {
3085 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003086 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003087 },
3088 {
3089 "type" : "expression",
3090 "value" : {
3091 "type" : "expression",
3092 "value" : {
3093 "op" : "&",
3094 "left" : {
3095 "type" : "field",
3096 "value" : ["standard_metadata", "ingress_port"]
3097 },
3098 "right" : {
3099 "type" : "hexstr",
3100 "value" : "0xffffffff"
3101 }
3102 }
3103 }
3104 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003105 ],
3106 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003107 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003108 "line" : 34,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003109 "column" : 39,
3110 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3111 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003112 },
3113 {
3114 "op" : "count",
3115 "parameters" : [
3116 {
3117 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003118 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003119 },
3120 {
3121 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003122 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003123 }
3124 ],
3125 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003126 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003127 "line" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003128 "column" : 12,
3129 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3130 }
3131 }
3132 ]
3133 },
3134 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003135 "name" : "nop",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003136 "id" : 51,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003137 "runtime_data" : [],
Charles Chancd03f072018-08-31 17:46:37 -07003138 "primitives" : []
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003139 },
3140 {
Charles Chancd03f072018-08-31 17:46:37 -07003141 "name" : "FabricEgress.spgw_egress.gtpu_encap",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003142 "id" : 52,
Charles Chancd03f072018-08-31 17:46:37 -07003143 "runtime_data" : [],
3144 "primitives" : [
3145 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003146 "op" : "add_header",
3147 "parameters" : [
3148 {
3149 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003150 "value" : "gtpu_ipv4"
3151 }
3152 ],
3153 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003154 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003155 "line" : 190,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003156 "column" : 8,
3157 "source_fragment" : "gtpu_ipv4.setValid()"
3158 }
3159 },
3160 {
3161 "op" : "assign",
3162 "parameters" : [
3163 {
3164 "type" : "field",
3165 "value" : ["gtpu_ipv4", "version"]
3166 },
3167 {
3168 "type" : "hexstr",
3169 "value" : "0x04"
3170 }
3171 ],
3172 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003173 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003174 "line" : 191,
Yi Tseng3d3956d2018-01-31 17:28:05 -08003175 "column" : 8,
3176 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003177 }
3178 },
3179 {
3180 "op" : "assign",
3181 "parameters" : [
3182 {
3183 "type" : "field",
3184 "value" : ["gtpu_ipv4", "ihl"]
3185 },
3186 {
3187 "type" : "hexstr",
3188 "value" : "0x05"
3189 }
3190 ],
3191 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003192 "filename" : "include/control/../define.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003193 "line" : 119,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003194 "column" : 28,
3195 "source_fragment" : "5; ..."
3196 }
3197 },
3198 {
3199 "op" : "assign",
3200 "parameters" : [
3201 {
3202 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003203 "value" : ["gtpu_ipv4", "dscp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003204 },
3205 {
3206 "type" : "hexstr",
3207 "value" : "0x00"
3208 }
3209 ],
3210 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003211 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003212 "line" : 193,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003213 "column" : 8,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003214 "source_fragment" : "gtpu_ipv4.dscp = 0"
3215 }
3216 },
3217 {
3218 "op" : "assign",
3219 "parameters" : [
3220 {
3221 "type" : "field",
3222 "value" : ["gtpu_ipv4", "ecn"]
3223 },
3224 {
3225 "type" : "hexstr",
3226 "value" : "0x00"
3227 }
3228 ],
3229 "source_info" : {
3230 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003231 "line" : 194,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003232 "column" : 8,
3233 "source_fragment" : "gtpu_ipv4.ecn = 0"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003234 }
3235 },
3236 {
3237 "op" : "assign",
3238 "parameters" : [
3239 {
3240 "type" : "field",
3241 "value" : ["gtpu_ipv4", "total_len"]
3242 },
3243 {
3244 "type" : "expression",
3245 "value" : {
3246 "type" : "expression",
3247 "value" : {
3248 "op" : "&",
3249 "left" : {
3250 "type" : "expression",
3251 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003252 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003253 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003254 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003255 "value" : ["ipv4", "total_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003256 },
3257 "right" : {
3258 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003259 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003260 }
3261 }
3262 },
3263 "right" : {
3264 "type" : "hexstr",
3265 "value" : "0xffff"
3266 }
3267 }
3268 }
3269 }
3270 ],
3271 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003272 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003273 "line" : 195,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003274 "column" : 8,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003275 "source_fragment" : "gtpu_ipv4.total_len = ipv4.total_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003276 }
3277 },
3278 {
3279 "op" : "assign",
3280 "parameters" : [
3281 {
3282 "type" : "field",
3283 "value" : ["gtpu_ipv4", "identification"]
3284 },
3285 {
3286 "type" : "hexstr",
3287 "value" : "0x1513"
3288 }
3289 ],
3290 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003291 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003292 "line" : 197,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003293 "column" : 8,
3294 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
3295 }
3296 },
3297 {
3298 "op" : "assign",
3299 "parameters" : [
3300 {
3301 "type" : "field",
3302 "value" : ["gtpu_ipv4", "flags"]
3303 },
3304 {
3305 "type" : "hexstr",
3306 "value" : "0x00"
3307 }
3308 ],
3309 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003310 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003311 "line" : 198,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003312 "column" : 8,
3313 "source_fragment" : "gtpu_ipv4.flags = 0"
3314 }
3315 },
3316 {
3317 "op" : "assign",
3318 "parameters" : [
3319 {
3320 "type" : "field",
3321 "value" : ["gtpu_ipv4", "frag_offset"]
3322 },
3323 {
3324 "type" : "hexstr",
3325 "value" : "0x0000"
3326 }
3327 ],
3328 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003329 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003330 "line" : 199,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003331 "column" : 8,
3332 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
3333 }
3334 },
3335 {
3336 "op" : "assign",
3337 "parameters" : [
3338 {
3339 "type" : "field",
3340 "value" : ["gtpu_ipv4", "ttl"]
3341 },
3342 {
3343 "type" : "hexstr",
3344 "value" : "0x40"
3345 }
3346 ],
3347 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003348 "filename" : "include/control/../define.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003349 "line" : 132,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003350 "column" : 32,
3351 "source_fragment" : "64; ..."
3352 }
3353 },
3354 {
3355 "op" : "assign",
3356 "parameters" : [
3357 {
3358 "type" : "field",
3359 "value" : ["gtpu_ipv4", "protocol"]
3360 },
3361 {
3362 "type" : "hexstr",
3363 "value" : "0x11"
3364 }
3365 ],
3366 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003367 "filename" : "include/control/../define.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003368 "line" : 116,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003369 "column" : 25,
3370 "source_fragment" : "17; ..."
3371 }
3372 },
3373 {
3374 "op" : "assign",
3375 "parameters" : [
3376 {
3377 "type" : "field",
3378 "value" : ["gtpu_ipv4", "dst_addr"]
3379 },
3380 {
3381 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003382 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr20"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003383 }
3384 ],
3385 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003386 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003387 "line" : 202,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003388 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003389 "source_fragment" : "gtpu_ipv4.dst_addr = fabric_meta.spgw.s1u_enb_addr; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003390 }
3391 },
3392 {
3393 "op" : "assign",
3394 "parameters" : [
3395 {
3396 "type" : "field",
3397 "value" : ["gtpu_ipv4", "src_addr"]
3398 },
3399 {
3400 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003401 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr21"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003402 }
3403 ],
3404 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003405 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003406 "line" : 203,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003407 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003408 "source_fragment" : "gtpu_ipv4.src_addr = fabric_meta.spgw.s1u_sgw_addr; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003409 }
3410 },
3411 {
3412 "op" : "assign",
3413 "parameters" : [
3414 {
3415 "type" : "field",
3416 "value" : ["gtpu_ipv4", "hdr_checksum"]
3417 },
3418 {
3419 "type" : "hexstr",
3420 "value" : "0x0000"
3421 }
3422 ],
3423 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003424 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003425 "line" : 204,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003426 "column" : 8,
3427 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
3428 }
3429 },
3430 {
3431 "op" : "add_header",
3432 "parameters" : [
3433 {
3434 "type" : "header",
3435 "value" : "gtpu_udp"
3436 }
3437 ],
3438 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003439 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003440 "line" : 206,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003441 "column" : 8,
3442 "source_fragment" : "gtpu_udp.setValid()"
3443 }
3444 },
3445 {
3446 "op" : "assign",
3447 "parameters" : [
3448 {
3449 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003450 "value" : ["gtpu_udp", "sport"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003451 },
3452 {
3453 "type" : "hexstr",
3454 "value" : "0x0868"
3455 }
3456 ],
3457 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003458 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003459 "line" : 207,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003460 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003461 "source_fragment" : "gtpu_udp.sport = 2152"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003462 }
3463 },
3464 {
3465 "op" : "assign",
3466 "parameters" : [
3467 {
3468 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003469 "value" : ["gtpu_udp", "dport"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003470 },
3471 {
3472 "type" : "hexstr",
3473 "value" : "0x0868"
3474 }
3475 ],
3476 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003477 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003478 "line" : 208,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003479 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003480 "source_fragment" : "gtpu_udp.dport = 2152"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003481 }
3482 },
3483 {
3484 "op" : "assign",
3485 "parameters" : [
3486 {
3487 "type" : "field",
3488 "value" : ["gtpu_udp", "len"]
3489 },
3490 {
3491 "type" : "expression",
3492 "value" : {
3493 "type" : "expression",
3494 "value" : {
3495 "op" : "&",
3496 "left" : {
3497 "type" : "expression",
3498 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003499 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003500 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003501 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003502 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len18"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003503 },
3504 "right" : {
3505 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003506 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003507 }
3508 }
3509 },
3510 "right" : {
3511 "type" : "hexstr",
3512 "value" : "0xffff"
3513 }
3514 }
3515 }
3516 }
3517 ],
3518 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003519 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003520 "line" : 209,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003521 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003522 "source_fragment" : "gtpu_udp.len = fabric_meta.spgw.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003523 }
3524 },
3525 {
3526 "op" : "assign",
3527 "parameters" : [
3528 {
3529 "type" : "field",
3530 "value" : ["gtpu_udp", "checksum"]
3531 },
3532 {
3533 "type" : "hexstr",
3534 "value" : "0x0000"
3535 }
3536 ],
3537 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003538 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003539 "line" : 211,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003540 "column" : 8,
3541 "source_fragment" : "gtpu_udp.checksum = 0"
3542 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08003543 },
3544 {
3545 "op" : "add_header",
3546 "parameters" : [
3547 {
3548 "type" : "header",
3549 "value" : "gtpu"
3550 }
3551 ],
3552 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003553 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003554 "line" : 213,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003555 "column" : 8,
3556 "source_fragment" : "gtpu.setValid()"
3557 }
3558 },
3559 {
3560 "op" : "assign",
3561 "parameters" : [
3562 {
3563 "type" : "field",
3564 "value" : ["gtpu", "version"]
3565 },
3566 {
3567 "type" : "hexstr",
3568 "value" : "0x01"
3569 }
3570 ],
3571 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003572 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003573 "line" : 214,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003574 "column" : 8,
3575 "source_fragment" : "gtpu.version = 0x01"
3576 }
3577 },
3578 {
3579 "op" : "assign",
3580 "parameters" : [
3581 {
3582 "type" : "field",
3583 "value" : ["gtpu", "pt"]
3584 },
3585 {
3586 "type" : "hexstr",
3587 "value" : "0x01"
3588 }
3589 ],
3590 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003591 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003592 "line" : 215,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003593 "column" : 8,
3594 "source_fragment" : "gtpu.pt = 0x01"
3595 }
3596 },
3597 {
3598 "op" : "assign",
3599 "parameters" : [
3600 {
3601 "type" : "field",
3602 "value" : ["gtpu", "spare"]
3603 },
3604 {
3605 "type" : "hexstr",
3606 "value" : "0x00"
3607 }
3608 ],
3609 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003610 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003611 "line" : 216,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003612 "column" : 8,
3613 "source_fragment" : "gtpu.spare = 0"
3614 }
3615 },
3616 {
3617 "op" : "assign",
3618 "parameters" : [
3619 {
3620 "type" : "field",
3621 "value" : ["gtpu", "ex_flag"]
3622 },
3623 {
3624 "type" : "hexstr",
3625 "value" : "0x00"
3626 }
3627 ],
3628 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003629 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003630 "line" : 217,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003631 "column" : 8,
3632 "source_fragment" : "gtpu.ex_flag = 0"
3633 }
3634 },
3635 {
3636 "op" : "assign",
3637 "parameters" : [
3638 {
3639 "type" : "field",
3640 "value" : ["gtpu", "seq_flag"]
3641 },
3642 {
3643 "type" : "hexstr",
3644 "value" : "0x00"
3645 }
3646 ],
3647 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003648 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003649 "line" : 218,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003650 "column" : 8,
3651 "source_fragment" : "gtpu.seq_flag = 0"
3652 }
3653 },
3654 {
3655 "op" : "assign",
3656 "parameters" : [
3657 {
3658 "type" : "field",
3659 "value" : ["gtpu", "npdu_flag"]
3660 },
3661 {
3662 "type" : "hexstr",
3663 "value" : "0x00"
3664 }
3665 ],
3666 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003667 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003668 "line" : 219,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003669 "column" : 8,
3670 "source_fragment" : "gtpu.npdu_flag = 0"
3671 }
3672 },
3673 {
3674 "op" : "assign",
3675 "parameters" : [
3676 {
3677 "type" : "field",
3678 "value" : ["gtpu", "msgtype"]
3679 },
3680 {
3681 "type" : "hexstr",
3682 "value" : "0xff"
3683 }
3684 ],
3685 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003686 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003687 "line" : 220,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003688 "column" : 8,
3689 "source_fragment" : "gtpu.msgtype = 0xff"
3690 }
3691 },
3692 {
3693 "op" : "assign",
3694 "parameters" : [
3695 {
3696 "type" : "field",
3697 "value" : ["gtpu", "msglen"]
3698 },
3699 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003700 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003701 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len18"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003702 }
3703 ],
3704 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003705 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003706 "line" : 221,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003707 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003708 "source_fragment" : "gtpu.msglen = fabric_meta.spgw.ipv4_len; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003709 }
3710 },
3711 {
3712 "op" : "assign",
3713 "parameters" : [
3714 {
3715 "type" : "field",
3716 "value" : ["gtpu", "teid"]
3717 },
3718 {
3719 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003720 "value" : ["scalars", "fabric_metadata_t._spgw_teid19"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003721 }
3722 ],
3723 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003724 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003725 "line" : 222,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003726 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003727 "source_fragment" : "gtpu.teid = fabric_meta.spgw.teid; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003728 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003729 }
3730 ]
3731 },
3732 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003733 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
3734 "id" : 53,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003735 "runtime_data" : [],
3736 "primitives" : [
3737 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003738 "op" : "remove_header",
3739 "parameters" : [
3740 {
3741 "type" : "header",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003742 "value" : "mpls"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003743 }
3744 ],
3745 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003746 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003747 "line" : 252,
Yi Tseng47eac892018-07-11 02:17:04 +08003748 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003749 "source_fragment" : "hdr.mpls.setInvalid()"
Yi Tseng47eac892018-07-11 02:17:04 +08003750 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003751 },
Yi Tseng47eac892018-07-11 02:17:04 +08003752 {
3753 "op" : "assign",
3754 "parameters" : [
3755 {
3756 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003757 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Yi Tseng47eac892018-07-11 02:17:04 +08003758 },
3759 {
3760 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003761 "value" : ["scalars", "fabric_metadata_t._ip_eth_type1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003762 }
3763 ],
3764 "source_info" : {
3765 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003766 "line" : 254,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003767 "column" : 33,
3768 "source_fragment" : "= fabric_metadata.ip_eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003769 }
3770 }
3771 ]
3772 },
3773 {
3774 "name" : "FabricEgress.egress_next.set_mpls",
3775 "id" : 54,
3776 "runtime_data" : [],
3777 "primitives" : [
3778 {
3779 "op" : "add_header",
3780 "parameters" : [
3781 {
3782 "type" : "header",
3783 "value" : "mpls"
Yi Tseng47eac892018-07-11 02:17:04 +08003784 }
3785 ],
3786 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003787 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003788 "line" : 259,
Yi Tseng47eac892018-07-11 02:17:04 +08003789 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003790 "source_fragment" : "hdr.mpls.setValid()"
3791 }
3792 },
3793 {
3794 "op" : "assign",
3795 "parameters" : [
3796 {
3797 "type" : "field",
3798 "value" : ["mpls", "label"]
3799 },
3800 {
3801 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003802 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003803 }
3804 ],
3805 "source_info" : {
3806 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003807 "line" : 260,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003808 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003809 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003810 }
3811 },
3812 {
3813 "op" : "assign",
3814 "parameters" : [
3815 {
3816 "type" : "field",
3817 "value" : ["mpls", "tc"]
3818 },
3819 {
3820 "type" : "hexstr",
3821 "value" : "0x00"
3822 }
3823 ],
3824 "source_info" : {
3825 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003826 "line" : 261,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003827 "column" : 8,
3828 "source_fragment" : "hdr.mpls.tc = 3w0"
3829 }
3830 },
3831 {
3832 "op" : "assign",
3833 "parameters" : [
3834 {
3835 "type" : "field",
3836 "value" : ["mpls", "bos"]
3837 },
3838 {
3839 "type" : "hexstr",
3840 "value" : "0x01"
3841 }
3842 ],
3843 "source_info" : {
3844 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003845 "line" : 262,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003846 "column" : 8,
3847 "source_fragment" : "hdr.mpls.bos = 1w1"
3848 }
3849 },
3850 {
3851 "op" : "assign",
3852 "parameters" : [
3853 {
3854 "type" : "field",
3855 "value" : ["mpls", "ttl"]
3856 },
3857 {
3858 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003859 "value" : ["scalars", "fabric_metadata_t._mpls_ttl6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003860 }
3861 ],
3862 "source_info" : {
3863 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003864 "line" : 263,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003865 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003866 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003867 }
3868 },
3869 {
3870 "op" : "assign",
3871 "parameters" : [
3872 {
3873 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003874 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003875 },
3876 {
3877 "type" : "hexstr",
3878 "value" : "0x8847"
3879 }
3880 ],
3881 "source_info" : {
3882 "filename" : "include/control/../define.p4",
3883 "line" : 108,
3884 "column" : 31,
3885 "source_fragment" : "0x8847; ..."
3886 }
3887 }
3888 ]
3889 },
3890 {
3891 "name" : "FabricEgress.egress_next.push_vlan",
3892 "id" : 55,
3893 "runtime_data" : [],
3894 "primitives" : [
3895 {
3896 "op" : "add_header",
3897 "parameters" : [
3898 {
3899 "type" : "header",
3900 "value" : "vlan_tag"
3901 }
3902 ],
3903 "source_info" : {
3904 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003905 "line" : 271,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003906 "column" : 8,
3907 "source_fragment" : "hdr.vlan_tag.setValid()"
3908 }
3909 },
3910 {
3911 "op" : "assign",
3912 "parameters" : [
3913 {
3914 "type" : "field",
3915 "value" : ["vlan_tag", "cfi"]
3916 },
3917 {
3918 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003919 "value" : ["scalars", "fabric_metadata_t._vlan_cfi4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003920 }
3921 ],
3922 "source_info" : {
3923 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003924 "line" : 272,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003925 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003926 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003927 }
3928 },
3929 {
3930 "op" : "assign",
3931 "parameters" : [
3932 {
3933 "type" : "field",
3934 "value" : ["vlan_tag", "pri"]
3935 },
3936 {
3937 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003938 "value" : ["scalars", "fabric_metadata_t._vlan_pri3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003939 }
3940 ],
3941 "source_info" : {
3942 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003943 "line" : 273,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003944 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003945 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003946 }
3947 },
3948 {
3949 "op" : "assign",
3950 "parameters" : [
3951 {
3952 "type" : "field",
3953 "value" : ["vlan_tag", "eth_type"]
3954 },
3955 {
3956 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003957 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003958 }
3959 ],
3960 "source_info" : {
3961 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003962 "line" : 274,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003963 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003964 "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003965 }
3966 },
3967 {
3968 "op" : "assign",
3969 "parameters" : [
3970 {
3971 "type" : "field",
3972 "value" : ["vlan_tag", "vlan_id"]
3973 },
3974 {
3975 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003976 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003977 }
3978 ],
3979 "source_info" : {
3980 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003981 "line" : 275,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003982 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003983 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003984 }
3985 },
3986 {
3987 "op" : "assign",
3988 "parameters" : [
3989 {
3990 "type" : "field",
3991 "value" : ["ethernet", "eth_type"]
3992 },
3993 {
3994 "type" : "hexstr",
3995 "value" : "0x8100"
3996 }
3997 ],
3998 "source_info" : {
3999 "filename" : "include/control/../define.p4",
4000 "line" : 107,
4001 "column" : 31,
4002 "source_fragment" : "0x8100; ..."
4003 }
4004 }
4005 ]
4006 },
4007 {
4008 "name" : "FabricEgress.egress_next.pop_vlan",
4009 "id" : 56,
4010 "runtime_data" : [],
4011 "primitives" : [
4012 {
4013 "op" : "assign",
4014 "parameters" : [
4015 {
4016 "type" : "field",
4017 "value" : ["ethernet", "eth_type"]
4018 },
4019 {
4020 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004021 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004022 }
4023 ],
4024 "source_info" : {
4025 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004026 "line" : 286,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004027 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004028 "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.eth_type; ..."
Yi Tseng47eac892018-07-11 02:17:04 +08004029 }
4030 },
4031 {
4032 "op" : "remove_header",
4033 "parameters" : [
4034 {
4035 "type" : "header",
4036 "value" : "vlan_tag"
4037 }
4038 ],
4039 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004040 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004041 "line" : 287,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004042 "column" : 8,
4043 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4044 }
4045 }
4046 ]
4047 },
4048 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004049 "name" : "act_19",
4050 "id" : 57,
4051 "runtime_data" : [],
4052 "primitives" : [
4053 {
4054 "op" : "drop",
4055 "parameters" : [],
4056 "source_info" : {
4057 "filename" : "include/control/packetio.p4",
4058 "line" : 47,
4059 "column" : 16,
4060 "source_fragment" : "mark_to_drop()"
4061 }
4062 }
4063 ]
4064 },
4065 {
4066 "name" : "act_20",
4067 "id" : 58,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004068 "runtime_data" : [],
4069 "primitives" : [
4070 {
4071 "op" : "add_header",
4072 "parameters" : [
4073 {
4074 "type" : "header",
4075 "value" : "packet_in"
4076 }
4077 ],
4078 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004079 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004080 "line" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004081 "column" : 12,
4082 "source_fragment" : "hdr.packet_in.setValid()"
4083 }
4084 },
4085 {
4086 "op" : "assign",
4087 "parameters" : [
4088 {
4089 "type" : "field",
4090 "value" : ["packet_in", "ingress_port"]
4091 },
4092 {
4093 "type" : "field",
4094 "value" : ["standard_metadata", "ingress_port"]
4095 }
4096 ],
4097 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004098 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004099 "line" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004100 "column" : 12,
4101 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4102 }
4103 }
4104 ]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004105 },
4106 {
4107 "name" : "act_21",
4108 "id" : 59,
4109 "runtime_data" : [],
4110 "primitives" : [
4111 {
4112 "op" : "drop",
4113 "parameters" : [],
4114 "source_info" : {
4115 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004116 "line" : 308,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004117 "column" : 12,
4118 "source_fragment" : "mark_to_drop()"
4119 }
4120 }
4121 ]
4122 },
4123 {
4124 "name" : "act_22",
4125 "id" : 60,
4126 "runtime_data" : [],
4127 "primitives" : [
4128 {
4129 "op" : "assign",
4130 "parameters" : [
4131 {
4132 "type" : "field",
4133 "value" : ["scalars", "egress_next_tmp"]
4134 },
4135 {
4136 "type" : "expression",
4137 "value" : {
4138 "type" : "expression",
4139 "value" : {
4140 "op" : "b2d",
4141 "left" : null,
4142 "right" : {
4143 "type" : "bool",
4144 "value" : true
4145 }
4146 }
4147 }
4148 }
4149 ]
4150 }
4151 ]
4152 },
4153 {
4154 "name" : "act_23",
4155 "id" : 61,
4156 "runtime_data" : [],
4157 "primitives" : [
4158 {
4159 "op" : "assign",
4160 "parameters" : [
4161 {
4162 "type" : "field",
4163 "value" : ["scalars", "egress_next_tmp"]
4164 },
4165 {
4166 "type" : "expression",
4167 "value" : {
4168 "type" : "expression",
4169 "value" : {
4170 "op" : "b2d",
4171 "left" : null,
4172 "right" : {
4173 "type" : "bool",
4174 "value" : false
4175 }
4176 }
4177 }
4178 }
4179 ]
4180 }
4181 ]
4182 },
4183 {
4184 "name" : "act_24",
4185 "id" : 62,
4186 "runtime_data" : [],
4187 "primitives" : [
4188 {
4189 "op" : "drop",
4190 "parameters" : [],
4191 "source_info" : {
4192 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004193 "line" : 327,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004194 "column" : 35,
4195 "source_fragment" : "mark_to_drop()"
4196 }
4197 }
4198 ]
4199 },
4200 {
4201 "name" : "act_25",
4202 "id" : 63,
4203 "runtime_data" : [],
4204 "primitives" : [
4205 {
4206 "op" : "assign",
4207 "parameters" : [
4208 {
4209 "type" : "field",
4210 "value" : ["mpls", "ttl"]
4211 },
4212 {
4213 "type" : "expression",
4214 "value" : {
4215 "type" : "expression",
4216 "value" : {
4217 "op" : "&",
4218 "left" : {
4219 "type" : "expression",
4220 "value" : {
4221 "op" : "+",
4222 "left" : {
4223 "type" : "field",
4224 "value" : ["mpls", "ttl"]
4225 },
4226 "right" : {
4227 "type" : "hexstr",
4228 "value" : "0xff"
4229 }
4230 }
4231 },
4232 "right" : {
4233 "type" : "hexstr",
4234 "value" : "0xff"
4235 }
4236 }
4237 }
4238 }
4239 ],
4240 "source_info" : {
4241 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004242 "line" : 326,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004243 "column" : 12,
4244 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
4245 }
4246 }
4247 ]
4248 },
4249 {
4250 "name" : "act_26",
4251 "id" : 64,
4252 "runtime_data" : [],
4253 "primitives" : [
4254 {
4255 "op" : "drop",
4256 "parameters" : [],
4257 "source_info" : {
4258 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004259 "line" : 331,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004260 "column" : 39,
4261 "source_fragment" : "mark_to_drop()"
4262 }
4263 }
4264 ]
4265 },
4266 {
4267 "name" : "act_27",
4268 "id" : 65,
4269 "runtime_data" : [],
4270 "primitives" : [
4271 {
4272 "op" : "assign",
4273 "parameters" : [
4274 {
4275 "type" : "field",
4276 "value" : ["ipv4", "ttl"]
4277 },
4278 {
4279 "type" : "expression",
4280 "value" : {
4281 "type" : "expression",
4282 "value" : {
4283 "op" : "&",
4284 "left" : {
4285 "type" : "expression",
4286 "value" : {
4287 "op" : "+",
4288 "left" : {
4289 "type" : "field",
4290 "value" : ["ipv4", "ttl"]
4291 },
4292 "right" : {
4293 "type" : "hexstr",
4294 "value" : "0xff"
4295 }
4296 }
4297 },
4298 "right" : {
4299 "type" : "hexstr",
4300 "value" : "0xff"
4301 }
4302 }
4303 }
4304 }
4305 ],
4306 "source_info" : {
4307 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004308 "line" : 330,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004309 "column" : 16,
4310 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
4311 }
4312 }
4313 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004314 }
4315 ],
4316 "pipelines" : [
4317 {
4318 "name" : "ingress",
4319 "id" : 0,
4320 "source_info" : {
4321 "filename" : "fabric.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004322 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004323 "column" : 8,
4324 "source_fragment" : "FabricIngress"
4325 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004326 "init_table" : "tbl_act",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004327 "tables" : [
4328 {
4329 "name" : "tbl_act",
4330 "id" : 0,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004331 "source_info" : {
4332 "filename" : "fabric.p4",
4333 "line" : 58,
4334 "column" : 50,
4335 "source_fragment" : "hdr.gtpu_ipv4, hdr.gtpu_udp"
4336 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004337 "key" : [],
4338 "match_type" : "exact",
4339 "type" : "simple",
4340 "max_size" : 1024,
4341 "with_counters" : false,
4342 "support_timeout" : false,
4343 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004344 "action_ids" : [32],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004345 "actions" : ["act_0"],
4346 "base_default_next" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004347 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004348 "act_0" : "node_3"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004349 },
4350 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004351 "action_id" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004352 "action_const" : true,
4353 "action_data" : [],
4354 "action_entry_const" : true
4355 }
4356 },
4357 {
4358 "name" : "tbl_act_0",
4359 "id" : 1,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004360 "source_info" : {
4361 "filename" : "include/spgw.p4",
4362 "line" : 30,
4363 "column" : 32,
4364 "source_fragment" : "return"
4365 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004366 "key" : [],
4367 "match_type" : "exact",
4368 "type" : "simple",
4369 "max_size" : 1024,
4370 "with_counters" : false,
4371 "support_timeout" : false,
4372 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004373 "action_ids" : [31],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004374 "actions" : ["act"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004375 "base_default_next" : "node_5",
4376 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004377 "act" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004378 },
4379 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004380 "action_id" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004381 "action_const" : true,
4382 "action_data" : [],
4383 "action_entry_const" : true
4384 }
4385 },
4386 {
4387 "name" : "tbl_act_1",
4388 "id" : 2,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004389 "source_info" : {
4390 "filename" : "include/spgw.p4",
4391 "line" : 31,
4392 "column" : 18,
4393 "source_fragment" : "= ipv4; ..."
4394 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004395 "key" : [],
4396 "match_type" : "exact",
4397 "type" : "simple",
4398 "max_size" : 1024,
4399 "with_counters" : false,
4400 "support_timeout" : false,
4401 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004402 "action_ids" : [35],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004403 "actions" : ["act_3"],
4404 "base_default_next" : "node_7",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004405 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004406 "act_3" : "node_7"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004407 },
4408 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004409 "action_id" : 35,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004410 "action_const" : true,
4411 "action_data" : [],
4412 "action_entry_const" : true
4413 }
4414 },
4415 {
4416 "name" : "tbl_act_2",
4417 "id" : 3,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004418 "source_info" : {
4419 "filename" : "include/spgw.p4",
4420 "line" : 35,
4421 "column" : 16,
4422 "source_fragment" : "="
4423 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004424 "key" : [],
4425 "match_type" : "exact",
4426 "type" : "simple",
4427 "max_size" : 1024,
4428 "with_counters" : false,
4429 "support_timeout" : false,
4430 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004431 "action_ids" : [33],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004432 "actions" : ["act_1"],
4433 "base_default_next" : "node_10",
4434 "next_tables" : {
4435 "act_1" : "node_10"
4436 },
4437 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004438 "action_id" : 33,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004439 "action_const" : true,
4440 "action_data" : [],
4441 "action_entry_const" : true
4442 }
4443 },
4444 {
4445 "name" : "tbl_act_3",
4446 "id" : 4,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004447 "source_info" : {
4448 "filename" : "include/spgw.p4",
4449 "line" : 37,
4450 "column" : 12,
4451 "source_fragment" : "udp.setInvalid()"
4452 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004453 "key" : [],
4454 "match_type" : "exact",
4455 "type" : "simple",
4456 "max_size" : 1024,
4457 "with_counters" : false,
4458 "support_timeout" : false,
4459 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004460 "action_ids" : [34],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004461 "actions" : ["act_2"],
4462 "base_default_next" : "node_10",
4463 "next_tables" : {
4464 "act_2" : "node_10"
4465 },
4466 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004467 "action_id" : 34,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004468 "action_const" : true,
4469 "action_data" : [],
4470 "action_entry_const" : true
4471 }
4472 },
4473 {
4474 "name" : "tbl_act_4",
4475 "id" : 5,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004476 "source_info" : {
4477 "filename" : "include/control/packetio.p4",
4478 "line" : 25,
4479 "column" : 42,
4480 "source_fragment" : "= hdr.packet_out.egress_port; ..."
4481 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004482 "key" : [],
4483 "match_type" : "exact",
4484 "type" : "simple",
4485 "max_size" : 1024,
4486 "with_counters" : false,
4487 "support_timeout" : false,
4488 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004489 "action_ids" : [36],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004490 "actions" : ["act_4"],
4491 "base_default_next" : null,
4492 "next_tables" : {
4493 "act_4" : null
4494 },
4495 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004496 "action_id" : 36,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004497 "action_const" : true,
4498 "action_data" : [],
4499 "action_entry_const" : true
4500 }
4501 },
4502 {
4503 "name" : "tbl_act_5",
4504 "id" : 6,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004505 "source_info" : {
4506 "filename" : "include/control/filtering.p4",
4507 "line" : 105,
4508 "column" : 37,
4509 "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
4510 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004511 "key" : [],
4512 "match_type" : "exact",
4513 "type" : "simple",
4514 "max_size" : 1024,
4515 "with_counters" : false,
4516 "support_timeout" : false,
4517 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004518 "action_ids" : [37],
4519 "actions" : ["act_5"],
4520 "base_default_next" : "node_14",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004521 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004522 "act_5" : "node_14"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004523 },
4524 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004525 "action_id" : 37,
4526 "action_const" : true,
4527 "action_data" : [],
4528 "action_entry_const" : true
4529 }
4530 },
4531 {
4532 "name" : "tbl_act_6",
4533 "id" : 7,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004534 "source_info" : {
4535 "filename" : "include/control/filtering.p4",
4536 "line" : 115,
4537 "column" : 37,
4538 "source_fragment" : "="
4539 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004540 "key" : [],
4541 "match_type" : "exact",
4542 "type" : "simple",
4543 "max_size" : 1024,
4544 "with_counters" : false,
4545 "support_timeout" : false,
4546 "direct_meters" : null,
4547 "action_ids" : [38],
4548 "actions" : ["act_6"],
4549 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
4550 "next_tables" : {
4551 "act_6" : "FabricIngress.filtering.ingress_port_vlan"
4552 },
4553 "default_entry" : {
4554 "action_id" : 38,
4555 "action_const" : true,
4556 "action_data" : [],
4557 "action_entry_const" : true
4558 }
4559 },
4560 {
4561 "name" : "FabricIngress.filtering.ingress_port_vlan",
4562 "id" : 8,
4563 "source_info" : {
4564 "filename" : "include/control/filtering.p4",
4565 "line" : 51,
4566 "column" : 10,
4567 "source_fragment" : "ingress_port_vlan"
4568 },
4569 "key" : [
4570 {
4571 "match_type" : "exact",
4572 "name" : "ig_port",
4573 "target" : ["standard_metadata", "ingress_port"],
4574 "mask" : null
4575 },
4576 {
4577 "match_type" : "exact",
4578 "name" : "vlan_is_valid",
4579 "target" : ["vlan_tag", "$valid$"],
4580 "mask" : null
4581 },
4582 {
4583 "match_type" : "ternary",
4584 "name" : "vlan_id",
4585 "target" : ["vlan_tag", "vlan_id"],
4586 "mask" : null
4587 }
4588 ],
4589 "match_type" : "ternary",
4590 "type" : "simple",
4591 "max_size" : 1024,
4592 "with_counters" : true,
4593 "support_timeout" : false,
4594 "direct_meters" : null,
4595 "action_ids" : [11, 12, 13],
4596 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
4597 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
4598 "next_tables" : {
4599 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
4600 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
4601 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
4602 },
4603 "default_entry" : {
4604 "action_id" : 11,
4605 "action_const" : true,
4606 "action_data" : [],
4607 "action_entry_const" : true
4608 }
4609 },
4610 {
4611 "name" : "FabricIngress.filtering.fwd_classifier",
4612 "id" : 9,
4613 "source_info" : {
4614 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004615 "line" : 87,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004616 "column" : 10,
4617 "source_fragment" : "fwd_classifier"
4618 },
4619 "key" : [
4620 {
4621 "match_type" : "exact",
4622 "name" : "ig_port",
4623 "target" : ["standard_metadata", "ingress_port"],
4624 "mask" : null
4625 },
4626 {
4627 "match_type" : "ternary",
4628 "name" : "eth_dst",
4629 "target" : ["ethernet", "dst_addr"],
4630 "mask" : null
4631 },
4632 {
4633 "match_type" : "exact",
4634 "name" : "eth_type",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004635 "target" : ["scalars", "fabric_metadata_t._eth_type0"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004636 "mask" : null
4637 }
4638 ],
4639 "match_type" : "ternary",
4640 "type" : "simple",
4641 "max_size" : 1024,
4642 "with_counters" : true,
4643 "support_timeout" : false,
4644 "direct_meters" : null,
4645 "action_ids" : [14],
4646 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
4647 "base_default_next" : "tbl_act_7",
4648 "next_tables" : {
4649 "FabricIngress.filtering.set_forwarding_type" : "tbl_act_7"
4650 },
4651 "default_entry" : {
4652 "action_id" : 14,
4653 "action_const" : true,
4654 "action_data" : ["0x0"],
4655 "action_entry_const" : true
4656 }
4657 },
4658 {
4659 "name" : "tbl_act_7",
4660 "id" : 10,
4661 "key" : [],
4662 "match_type" : "exact",
4663 "type" : "simple",
4664 "max_size" : 1024,
4665 "with_counters" : false,
4666 "support_timeout" : false,
4667 "direct_meters" : null,
4668 "action_ids" : [47],
4669 "actions" : ["act_15"],
4670 "base_default_next" : "node_19",
4671 "next_tables" : {
4672 "act_15" : "node_19"
4673 },
4674 "default_entry" : {
4675 "action_id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004676 "action_const" : true,
4677 "action_data" : [],
4678 "action_entry_const" : true
4679 }
4680 },
4681 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004682 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004683 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004684 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004685 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004686 "line" : 82,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004687 "column" : 10,
4688 "source_fragment" : "s1u_filter_table"
4689 },
4690 "key" : [
4691 {
4692 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004693 "name" : "gtp_ipv4_dst",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004694 "target" : ["gtpu_ipv4", "dst_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004695 "mask" : null
4696 }
4697 ],
4698 "match_type" : "exact",
4699 "type" : "simple",
4700 "max_size" : 1024,
4701 "with_counters" : false,
4702 "support_timeout" : false,
4703 "direct_meters" : null,
4704 "action_ids" : [1],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004705 "actions" : ["nop"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004706 "base_default_next" : null,
4707 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004708 "__HIT__" : "tbl_act_8",
4709 "__MISS__" : "tbl_act_9"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004710 },
4711 "default_entry" : {
4712 "action_id" : 1,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004713 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004714 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004715 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004716 }
4717 },
4718 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004719 "name" : "tbl_act_8",
4720 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004721 "key" : [],
4722 "match_type" : "exact",
4723 "type" : "simple",
4724 "max_size" : 1024,
4725 "with_counters" : false,
4726 "support_timeout" : false,
4727 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004728 "action_ids" : [39],
4729 "actions" : ["act_7"],
4730 "base_default_next" : "node_23",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004731 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004732 "act_7" : "node_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004733 },
4734 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004735 "action_id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004736 "action_const" : true,
4737 "action_data" : [],
4738 "action_entry_const" : true
4739 }
4740 },
4741 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004742 "name" : "tbl_act_9",
4743 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004744 "key" : [],
4745 "match_type" : "exact",
4746 "type" : "simple",
4747 "max_size" : 1024,
4748 "with_counters" : false,
4749 "support_timeout" : false,
4750 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004751 "action_ids" : [40],
4752 "actions" : ["act_8"],
4753 "base_default_next" : "node_23",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004754 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004755 "act_8" : "node_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004756 },
4757 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004758 "action_id" : 40,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004759 "action_const" : true,
4760 "action_data" : [],
4761 "action_entry_const" : true
4762 }
4763 },
4764 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004765 "name" : "tbl_act_10",
4766 "id" : 14,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004767 "source_info" : {
4768 "filename" : "include/spgw.p4",
4769 "line" : 148,
4770 "column" : 16,
4771 "source_fragment" : "mark_to_drop()"
4772 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004773 "key" : [],
4774 "match_type" : "exact",
4775 "type" : "simple",
4776 "max_size" : 1024,
4777 "with_counters" : false,
4778 "support_timeout" : false,
4779 "direct_meters" : null,
4780 "action_ids" : [41],
4781 "actions" : ["act_9"],
4782 "base_default_next" : "tbl_act_11",
4783 "next_tables" : {
4784 "act_9" : "tbl_act_11"
4785 },
4786 "default_entry" : {
4787 "action_id" : 41,
4788 "action_const" : true,
4789 "action_data" : [],
4790 "action_entry_const" : true
4791 }
4792 },
4793 {
4794 "name" : "tbl_act_11",
4795 "id" : 15,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004796 "source_info" : {
4797 "filename" : "include/spgw.p4",
4798 "line" : 150,
4799 "column" : 39,
4800 "source_fragment" : "="
4801 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004802 "key" : [],
4803 "match_type" : "exact",
4804 "type" : "simple",
4805 "max_size" : 1024,
4806 "with_counters" : false,
4807 "support_timeout" : false,
4808 "direct_meters" : null,
4809 "action_ids" : [42],
4810 "actions" : ["act_10"],
4811 "base_default_next" : "tbl_spgw_ingress_gtpu_decap",
4812 "next_tables" : {
4813 "act_10" : "tbl_spgw_ingress_gtpu_decap"
4814 },
4815 "default_entry" : {
4816 "action_id" : 42,
4817 "action_const" : true,
4818 "action_data" : [],
4819 "action_entry_const" : true
4820 }
4821 },
4822 {
4823 "name" : "tbl_spgw_ingress_gtpu_decap",
4824 "id" : 16,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004825 "source_info" : {
4826 "filename" : "include/spgw.p4",
4827 "line" : 151,
4828 "column" : 12,
4829 "source_fragment" : "gtpu_decap()"
4830 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004831 "key" : [],
4832 "match_type" : "exact",
4833 "type" : "simple",
4834 "max_size" : 1024,
4835 "with_counters" : false,
4836 "support_timeout" : false,
4837 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004838 "action_ids" : [9],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004839 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
4840 "base_default_next" : "node_33",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004841 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004842 "FabricIngress.spgw_ingress.gtpu_decap" : "node_33"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004843 },
4844 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004845 "action_id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004846 "action_const" : true,
4847 "action_data" : [],
4848 "action_entry_const" : true
4849 }
4850 },
4851 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004852 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004853 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004854 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004855 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004856 "line" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004857 "column" : 10,
4858 "source_fragment" : "dl_sess_lookup"
4859 },
4860 "key" : [
4861 {
4862 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004863 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004864 "target" : ["ipv4", "dst_addr"],
4865 "mask" : null
4866 }
4867 ],
4868 "match_type" : "exact",
4869 "type" : "simple",
4870 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004871 "with_counters" : true,
4872 "support_timeout" : false,
4873 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004874 "action_ids" : [10, 0],
4875 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "nop"],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004876 "base_default_next" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004877 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004878 "__HIT__" : "tbl_act_12",
4879 "__MISS__" : "tbl_act_13"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004880 },
4881 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004882 "action_id" : 0,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004883 "action_const" : true,
4884 "action_data" : [],
4885 "action_entry_const" : true
4886 }
4887 },
4888 {
4889 "name" : "tbl_act_12",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004890 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004891 "key" : [],
4892 "match_type" : "exact",
4893 "type" : "simple",
4894 "max_size" : 1024,
4895 "with_counters" : false,
4896 "support_timeout" : false,
4897 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004898 "action_ids" : [43],
4899 "actions" : ["act_11"],
4900 "base_default_next" : "node_30",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004901 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004902 "act_11" : "node_30"
Yi Tseng27b9bc02018-04-12 14:52:40 +08004903 },
4904 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004905 "action_id" : 43,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004906 "action_const" : true,
4907 "action_data" : [],
4908 "action_entry_const" : true
4909 }
4910 },
4911 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004912 "name" : "tbl_act_13",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004913 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004914 "key" : [],
4915 "match_type" : "exact",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004916 "type" : "simple",
4917 "max_size" : 1024,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004918 "with_counters" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004919 "support_timeout" : false,
4920 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004921 "action_ids" : [44],
4922 "actions" : ["act_12"],
4923 "base_default_next" : "node_30",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004924 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004925 "act_12" : "node_30"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004926 },
4927 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004928 "action_id" : 44,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004929 "action_const" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004930 "action_data" : [],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004931 "action_entry_const" : true
4932 }
4933 },
4934 {
4935 "name" : "tbl_act_14",
4936 "id" : 20,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004937 "source_info" : {
4938 "filename" : "include/spgw.p4",
4939 "line" : 153,
4940 "column" : 39,
4941 "source_fragment" : "="
4942 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004943 "key" : [],
4944 "match_type" : "exact",
4945 "type" : "simple",
4946 "max_size" : 1024,
4947 "with_counters" : false,
4948 "support_timeout" : false,
4949 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004950 "action_ids" : [45],
4951 "actions" : ["act_13"],
4952 "base_default_next" : "node_33",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004953 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004954 "act_13" : "node_33"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004955 },
4956 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004957 "action_id" : 45,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004958 "action_const" : true,
4959 "action_data" : [],
4960 "action_entry_const" : true
4961 }
4962 },
4963 {
4964 "name" : "tbl_act_15",
4965 "id" : 21,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004966 "source_info" : {
4967 "filename" : "include/spgw.p4",
4968 "line" : 155,
4969 "column" : 39,
4970 "source_fragment" : "= SPGW_DIR_UNKNOWN; ..."
4971 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004972 "key" : [],
4973 "match_type" : "exact",
4974 "type" : "simple",
4975 "max_size" : 1024,
4976 "with_counters" : false,
4977 "support_timeout" : false,
4978 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004979 "action_ids" : [46],
4980 "actions" : ["act_14"],
4981 "base_default_next" : "node_33",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004982 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004983 "act_14" : "node_33"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004984 },
4985 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004986 "action_id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004987 "action_const" : true,
4988 "action_data" : [],
4989 "action_entry_const" : true
4990 }
4991 },
4992 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004993 "name" : "tbl_act_16",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004994 "id" : 22,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004995 "source_info" : {
4996 "filename" : "include/spgw.p4",
4997 "line" : 174,
4998 "column" : 34,
4999 "source_fragment" : "="
5000 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005001 "key" : [],
5002 "match_type" : "exact",
5003 "type" : "simple",
5004 "max_size" : 1024,
5005 "with_counters" : false,
5006 "support_timeout" : false,
5007 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005008 "action_ids" : [48],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005009 "actions" : ["act_16"],
5010 "base_default_next" : "node_35",
5011 "next_tables" : {
5012 "act_16" : "node_35"
5013 },
5014 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005015 "action_id" : 48,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005016 "action_const" : true,
5017 "action_data" : [],
5018 "action_entry_const" : true
5019 }
5020 },
5021 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005022 "name" : "FabricIngress.forwarding.bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005023 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005024 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005025 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005026 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005027 "column" : 10,
5028 "source_fragment" : "bridging"
5029 },
5030 "key" : [
5031 {
5032 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005033 "name" : "vlan_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005034 "target" : ["scalars", "fabric_metadata_t._vlan_id2"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005035 "mask" : null
5036 },
5037 {
5038 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005039 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005040 "target" : ["ethernet", "dst_addr"],
5041 "mask" : null
5042 }
5043 ],
5044 "match_type" : "ternary",
5045 "type" : "simple",
5046 "max_size" : 1024,
5047 "with_counters" : true,
5048 "support_timeout" : false,
5049 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005050 "action_ids" : [15, 2],
5051 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
5052 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005053 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005054 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.acl.acl",
5055 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005056 },
5057 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005058 "action_id" : 2,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005059 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005060 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005061 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005062 }
5063 },
5064 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005065 "name" : "FabricIngress.forwarding.mpls",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005066 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005067 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005068 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005069 "line" : 71,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005070 "column" : 10,
5071 "source_fragment" : "mpls"
5072 },
5073 "key" : [
5074 {
5075 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005076 "name" : "mpls_label",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005077 "target" : ["scalars", "fabric_metadata_t._mpls_label5"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005078 "mask" : null
5079 }
5080 ],
5081 "match_type" : "exact",
5082 "type" : "simple",
5083 "max_size" : 1024,
5084 "with_counters" : true,
5085 "support_timeout" : false,
5086 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005087 "action_ids" : [16, 3],
5088 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
5089 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005090 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005091 "FabricIngress.forwarding.pop_mpls_and_next" : "FabricIngress.acl.acl",
5092 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005093 },
5094 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005095 "action_id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005096 "action_const" : true,
5097 "action_data" : [],
5098 "action_entry_const" : true
5099 }
5100 },
5101 {
Charles Chan384aea22018-08-23 22:08:02 -07005102 "name" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005103 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005104 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005105 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005106 "line" : 101,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005107 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07005108 "source_fragment" : "routing_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005109 },
5110 "key" : [
5111 {
5112 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005113 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005114 "target" : ["ipv4", "dst_addr"],
5115 "mask" : null
5116 }
5117 ],
5118 "match_type" : "lpm",
5119 "type" : "simple",
5120 "max_size" : 1024,
5121 "with_counters" : true,
5122 "support_timeout" : false,
5123 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005124 "action_ids" : [17, 18, 4],
5125 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
5126 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005127 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005128 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.acl.acl",
5129 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.acl.acl",
5130 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005131 },
5132 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005133 "action_id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005134 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005135 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005136 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005137 }
5138 },
5139 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005140 "name" : "FabricIngress.acl.acl",
5141 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005142 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005143 "filename" : "include/control/acl.p4",
5144 "line" : 60,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005145 "column" : 10,
5146 "source_fragment" : "acl"
5147 },
5148 "key" : [
5149 {
5150 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005151 "name" : "ig_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005152 "target" : ["standard_metadata", "ingress_port"],
5153 "mask" : null
5154 },
5155 {
5156 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005157 "name" : "ip_proto",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005158 "target" : ["scalars", "fabric_metadata_t._ip_proto14"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005159 "mask" : null
5160 },
5161 {
5162 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005163 "name" : "l4_sport",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005164 "target" : ["scalars", "fabric_metadata_t._l4_sport15"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005165 "mask" : null
5166 },
5167 {
5168 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005169 "name" : "l4_dport",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005170 "target" : ["scalars", "fabric_metadata_t._l4_dport16"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005171 "mask" : null
5172 },
5173 {
5174 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005175 "name" : "eth_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005176 "target" : ["ethernet", "dst_addr"],
5177 "mask" : null
5178 },
5179 {
5180 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005181 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005182 "target" : ["ethernet", "src_addr"],
5183 "mask" : null
5184 },
5185 {
5186 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005187 "name" : "vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005188 "target" : ["vlan_tag", "vlan_id"],
5189 "mask" : null
5190 },
5191 {
5192 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005193 "name" : "eth_type",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005194 "target" : ["scalars", "fabric_metadata_t._eth_type0"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08005195 "mask" : null
5196 },
5197 {
5198 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005199 "name" : "ipv4_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005200 "target" : ["ipv4", "src_addr"],
5201 "mask" : null
5202 },
5203 {
5204 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005205 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005206 "target" : ["ipv4", "dst_addr"],
5207 "mask" : null
5208 },
5209 {
5210 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005211 "name" : "icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005212 "target" : ["icmp", "icmp_type"],
5213 "mask" : null
5214 },
5215 {
5216 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005217 "name" : "icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005218 "target" : ["icmp", "icmp_code"],
5219 "mask" : null
5220 }
5221 ],
5222 "match_type" : "ternary",
5223 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005224 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005225 "with_counters" : true,
5226 "support_timeout" : false,
5227 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005228 "action_ids" : [19, 20, 21, 22, 23],
5229 "actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.clone_to_cpu", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"],
5230 "base_default_next" : "node_43",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005231 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005232 "FabricIngress.acl.set_next_id_acl" : "node_43",
5233 "FabricIngress.acl.punt_to_cpu" : "node_43",
5234 "FabricIngress.acl.clone_to_cpu" : "node_43",
5235 "FabricIngress.acl.drop" : "node_43",
5236 "FabricIngress.acl.nop_acl" : "node_43"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005237 },
5238 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005239 "action_id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005240 "action_const" : true,
5241 "action_data" : [],
5242 "action_entry_const" : true
5243 }
5244 },
5245 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005246 "name" : "FabricIngress.next.xconnect",
5247 "id" : 27,
5248 "source_info" : {
5249 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005250 "line" : 104,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005251 "column" : 10,
5252 "source_fragment" : "xconnect"
5253 },
5254 "key" : [
5255 {
5256 "match_type" : "exact",
5257 "name" : "ig_port",
5258 "target" : ["standard_metadata", "ingress_port"],
5259 "mask" : null
5260 },
5261 {
5262 "match_type" : "exact",
5263 "name" : "next_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005264 "target" : ["scalars", "fabric_metadata_t._next_id10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005265 "mask" : null
5266 }
5267 ],
5268 "match_type" : "exact",
5269 "type" : "simple",
5270 "max_size" : 1024,
5271 "with_counters" : true,
5272 "support_timeout" : false,
5273 "direct_meters" : null,
5274 "action_ids" : [25, 26, 6],
5275 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
5276 "base_default_next" : "FabricIngress.next.hashed",
5277 "next_tables" : {
5278 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
5279 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
5280 "nop" : "FabricIngress.next.hashed"
5281 },
5282 "default_entry" : {
5283 "action_id" : 6,
5284 "action_const" : true,
5285 "action_data" : [],
5286 "action_entry_const" : true
5287 }
5288 },
5289 {
5290 "name" : "FabricIngress.next.hashed",
5291 "id" : 28,
5292 "source_info" : {
5293 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005294 "line" : 184,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005295 "column" : 10,
5296 "source_fragment" : "hashed"
5297 },
5298 "key" : [
5299 {
5300 "match_type" : "exact",
5301 "name" : "next_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005302 "target" : ["scalars", "fabric_metadata_t._next_id10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005303 "mask" : null
5304 }
5305 ],
5306 "match_type" : "exact",
5307 "type" : "indirect_ws",
5308 "action_profile" : "FabricIngress.next.hashed_selector",
5309 "max_size" : 1024,
5310 "with_counters" : true,
5311 "support_timeout" : false,
5312 "direct_meters" : null,
5313 "action_ids" : [27, 28, 29, 7],
5314 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
5315 "base_default_next" : "FabricIngress.next.multicast",
5316 "next_tables" : {
5317 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
5318 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
5319 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
5320 "nop" : "FabricIngress.next.multicast"
5321 }
5322 },
5323 {
5324 "name" : "FabricIngress.next.multicast",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005325 "id" : 29,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005326 "source_info" : {
5327 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005328 "line" : 218,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005329 "column" : 10,
5330 "source_fragment" : "multicast"
5331 },
5332 "key" : [
5333 {
5334 "match_type" : "exact",
5335 "name" : "next_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005336 "target" : ["scalars", "fabric_metadata_t._next_id10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005337 "mask" : null
5338 }
5339 ],
5340 "match_type" : "exact",
5341 "type" : "simple",
5342 "max_size" : 1024,
5343 "with_counters" : true,
5344 "support_timeout" : false,
5345 "direct_meters" : null,
5346 "action_ids" : [30, 8],
5347 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
5348 "base_default_next" : "FabricIngress.next.next_vlan",
5349 "next_tables" : {
5350 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
5351 "nop" : "FabricIngress.next.next_vlan"
5352 },
5353 "default_entry" : {
5354 "action_id" : 8,
5355 "action_const" : true,
5356 "action_data" : [],
5357 "action_entry_const" : true
5358 }
5359 },
5360 {
5361 "name" : "FabricIngress.next.next_vlan",
5362 "id" : 30,
5363 "source_info" : {
5364 "filename" : "include/control/next.p4",
5365 "line" : 74,
5366 "column" : 10,
5367 "source_fragment" : "next_vlan"
5368 },
5369 "key" : [
5370 {
5371 "match_type" : "exact",
5372 "name" : "next_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005373 "target" : ["scalars", "fabric_metadata_t._next_id10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005374 "mask" : null
5375 }
5376 ],
5377 "match_type" : "exact",
5378 "type" : "simple",
5379 "max_size" : 1024,
5380 "with_counters" : true,
5381 "support_timeout" : false,
5382 "direct_meters" : null,
5383 "action_ids" : [24, 5],
5384 "actions" : ["FabricIngress.next.set_vlan", "nop"],
5385 "base_default_next" : "node_48",
5386 "next_tables" : {
5387 "FabricIngress.next.set_vlan" : "node_48",
5388 "nop" : "node_48"
5389 },
5390 "default_entry" : {
5391 "action_id" : 5,
5392 "action_const" : true,
5393 "action_data" : [],
5394 "action_entry_const" : true
5395 }
5396 },
5397 {
5398 "name" : "tbl_act_17",
5399 "id" : 31,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005400 "source_info" : {
5401 "filename" : "include/control/port_counter.p4",
5402 "line" : 31,
5403 "column" : 12,
5404 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
5405 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02005406 "key" : [],
5407 "match_type" : "exact",
5408 "type" : "simple",
5409 "max_size" : 1024,
5410 "with_counters" : false,
5411 "support_timeout" : false,
5412 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005413 "action_ids" : [49],
5414 "actions" : ["act_17"],
5415 "base_default_next" : "node_50",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005416 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005417 "act_17" : "node_50"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005418 },
5419 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005420 "action_id" : 49,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005421 "action_const" : true,
5422 "action_data" : [],
5423 "action_entry_const" : true
5424 }
5425 },
5426 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005427 "name" : "tbl_act_18",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005428 "id" : 32,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005429 "source_info" : {
5430 "filename" : "include/control/port_counter.p4",
5431 "line" : 34,
5432 "column" : 12,
5433 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
5434 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005435 "key" : [],
5436 "match_type" : "exact",
5437 "type" : "simple",
5438 "max_size" : 1024,
5439 "with_counters" : false,
5440 "support_timeout" : false,
5441 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005442 "action_ids" : [50],
5443 "actions" : ["act_18"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005444 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005445 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005446 "act_18" : null
Carmelo Casconea5400af2018-07-17 22:11:54 +02005447 },
5448 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005449 "action_id" : 50,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005450 "action_const" : true,
5451 "action_data" : [],
5452 "action_entry_const" : true
5453 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005454 }
5455 ],
5456 "action_profiles" : [
5457 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005458 "name" : "FabricIngress.next.hashed_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005459 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005460 "source_info" : {
5461 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005462 "line" : 165,
5463 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005464 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005465 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005466 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005467 "selector" : {
5468 "algo" : "crc16",
5469 "input" : [
5470 {
5471 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005472 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005473 },
5474 {
5475 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005476 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005477 },
5478 {
5479 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005480 "value" : ["scalars", "fabric_metadata_t._ip_proto14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005481 },
5482 {
5483 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005484 "value" : ["scalars", "fabric_metadata_t._l4_sport15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005485 },
5486 {
5487 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005488 "value" : ["scalars", "fabric_metadata_t._l4_dport16"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005489 }
5490 ]
5491 }
5492 }
5493 ],
5494 "conditionals" : [
5495 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005496 "name" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005497 "id" : 0,
5498 "source_info" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005499 "filename" : "include/spgw.p4",
5500 "line" : 30,
5501 "column" : 12,
5502 "source_fragment" : "! is_gtpu_encapped"
5503 },
5504 "expression" : {
5505 "type" : "expression",
5506 "value" : {
5507 "op" : "not",
5508 "left" : null,
5509 "right" : {
5510 "type" : "expression",
5511 "value" : {
5512 "op" : "d2b",
5513 "left" : null,
5514 "right" : {
5515 "type" : "field",
5516 "value" : ["gtpu", "$valid$"]
5517 }
5518 }
5519 }
5520 }
5521 },
5522 "true_next" : "tbl_act_0",
5523 "false_next" : "node_5"
5524 },
5525 {
5526 "name" : "node_5",
5527 "id" : 1,
5528 "expression" : {
5529 "type" : "expression",
5530 "value" : {
5531 "op" : "not",
5532 "left" : null,
5533 "right" : {
5534 "type" : "expression",
5535 "value" : {
5536 "op" : "d2b",
5537 "left" : null,
5538 "right" : {
5539 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005540 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005541 }
5542 }
5543 }
5544 }
5545 },
5546 "true_next" : "tbl_act_1",
5547 "false_next" : "node_10"
5548 },
5549 {
5550 "name" : "node_7",
5551 "id" : 2,
5552 "source_info" : {
5553 "filename" : "include/spgw.p4",
5554 "line" : 34,
5555 "column" : 12,
5556 "source_fragment" : "inner_udp.isValid()"
5557 },
5558 "expression" : {
5559 "type" : "expression",
5560 "value" : {
5561 "op" : "d2b",
5562 "left" : null,
5563 "right" : {
5564 "type" : "field",
5565 "value" : ["inner_udp", "$valid$"]
5566 }
5567 }
5568 },
5569 "true_next" : "tbl_act_2",
5570 "false_next" : "tbl_act_3"
5571 },
5572 {
5573 "name" : "node_10",
5574 "id" : 3,
5575 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005576 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005577 "line" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005578 "column" : 12,
5579 "source_fragment" : "hdr.packet_out.isValid()"
5580 },
5581 "expression" : {
5582 "type" : "expression",
5583 "value" : {
5584 "op" : "d2b",
5585 "left" : null,
5586 "right" : {
5587 "type" : "field",
5588 "value" : ["packet_out", "$valid$"]
5589 }
5590 }
5591 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005592 "true_next" : "tbl_act_4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005593 "false_next" : "node_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005594 },
5595 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005596 "name" : "node_12",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005597 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005598 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005599 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005600 "line" : 104,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005601 "column" : 12,
5602 "source_fragment" : "hdr.vlan_tag.isValid()"
5603 },
5604 "expression" : {
5605 "type" : "expression",
5606 "value" : {
5607 "op" : "d2b",
5608 "left" : null,
5609 "right" : {
5610 "type" : "field",
5611 "value" : ["vlan_tag", "$valid$"]
5612 }
5613 }
5614 },
5615 "true_next" : "tbl_act_5",
5616 "false_next" : "node_14"
5617 },
5618 {
5619 "name" : "node_14",
5620 "id" : 5,
5621 "source_info" : {
5622 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005623 "line" : 110,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005624 "column" : 12,
5625 "source_fragment" : "!hdr.mpls.isValid()"
5626 },
5627 "expression" : {
5628 "type" : "expression",
5629 "value" : {
5630 "op" : "not",
5631 "left" : null,
5632 "right" : {
5633 "type" : "expression",
5634 "value" : {
5635 "op" : "d2b",
5636 "left" : null,
5637 "right" : {
5638 "type" : "field",
5639 "value" : ["mpls", "$valid$"]
5640 }
5641 }
5642 }
5643 }
5644 },
5645 "true_next" : "tbl_act_6",
5646 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
5647 },
5648 {
5649 "name" : "node_19",
5650 "id" : 6,
5651 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005652 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005653 "line" : 143,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005654 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005655 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005656 },
5657 "expression" : {
5658 "type" : "expression",
5659 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005660 "op" : "d2b",
5661 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005662 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005663 "type" : "field",
5664 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005665 }
5666 }
5667 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005668 "true_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
5669 "false_next" : "FabricIngress.spgw_ingress.dl_sess_lookup"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005670 },
5671 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005672 "name" : "node_23",
5673 "id" : 7,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005674 "source_info" : {
5675 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005676 "line" : 147,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005677 "column" : 16,
5678 "source_fragment" : "!s1u_filter_table.apply().hit"
5679 },
5680 "expression" : {
5681 "type" : "expression",
5682 "value" : {
5683 "op" : "not",
5684 "left" : null,
5685 "right" : {
5686 "type" : "expression",
5687 "value" : {
5688 "op" : "d2b",
5689 "left" : null,
5690 "right" : {
5691 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005692 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005693 }
5694 }
5695 }
5696 }
5697 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005698 "true_next" : "tbl_act_10",
5699 "false_next" : "tbl_act_11"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005700 },
5701 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005702 "name" : "node_30",
5703 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005704 "expression" : {
5705 "type" : "expression",
5706 "value" : {
5707 "op" : "d2b",
5708 "left" : null,
5709 "right" : {
5710 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005711 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005712 }
5713 }
5714 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005715 "true_next" : "tbl_act_14",
5716 "false_next" : "tbl_act_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005717 },
5718 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005719 "name" : "node_33",
5720 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005721 "expression" : {
5722 "type" : "expression",
5723 "value" : {
5724 "op" : "not",
5725 "left" : null,
5726 "right" : {
5727 "type" : "expression",
5728 "value" : {
5729 "op" : "d2b",
5730 "left" : null,
5731 "right" : {
5732 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005733 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005734 }
5735 }
5736 }
5737 }
5738 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005739 "true_next" : "tbl_act_16",
5740 "false_next" : "node_35"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005741 },
5742 {
5743 "name" : "node_35",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005744 "id" : 10,
5745 "source_info" : {
5746 "filename" : "fabric.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005747 "line" : 67,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005748 "column" : 12,
5749 "source_fragment" : "fabric_metadata.skip_forwarding == false"
5750 },
5751 "expression" : {
5752 "type" : "expression",
5753 "value" : {
5754 "op" : "==",
5755 "left" : {
5756 "type" : "expression",
5757 "value" : {
5758 "op" : "d2b",
5759 "left" : null,
5760 "right" : {
5761 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005762 "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005763 }
5764 }
5765 },
5766 "right" : {
5767 "type" : "bool",
5768 "value" : false
5769 }
5770 }
5771 },
5772 "true_next" : "node_36",
5773 "false_next" : "FabricIngress.acl.acl"
5774 },
5775 {
5776 "name" : "node_36",
5777 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005778 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005779 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005780 "line" : 141,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005781 "column" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005782 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
5783 },
5784 "expression" : {
5785 "type" : "expression",
5786 "value" : {
5787 "op" : "==",
5788 "left" : {
5789 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005790 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005791 },
5792 "right" : {
5793 "type" : "hexstr",
5794 "value" : "0x00"
5795 }
5796 }
5797 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005798 "true_next" : "FabricIngress.forwarding.bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005799 "false_next" : "node_38"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005800 },
5801 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005802 "name" : "node_38",
5803 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005804 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005805 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005806 "line" : 142,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005807 "column" : 17,
5808 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
5809 },
5810 "expression" : {
5811 "type" : "expression",
5812 "value" : {
5813 "op" : "==",
5814 "left" : {
5815 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005816 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005817 },
5818 "right" : {
5819 "type" : "hexstr",
5820 "value" : "0x01"
5821 }
5822 }
5823 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005824 "true_next" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005825 "false_next" : "node_40"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005826 },
5827 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005828 "name" : "node_40",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005829 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005830 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005831 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005832 "line" : 143,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005833 "column" : 17,
5834 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
5835 },
5836 "expression" : {
5837 "type" : "expression",
5838 "value" : {
5839 "op" : "==",
5840 "left" : {
5841 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005842 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005843 },
5844 "right" : {
5845 "type" : "hexstr",
5846 "value" : "0x02"
5847 }
5848 }
5849 },
Charles Chan384aea22018-08-23 22:08:02 -07005850 "true_next" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005851 "false_next" : "FabricIngress.acl.acl"
5852 },
5853 {
5854 "name" : "node_43",
5855 "id" : 14,
5856 "source_info" : {
5857 "filename" : "fabric.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005858 "line" : 71,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005859 "column" : 12,
5860 "source_fragment" : "fabric_metadata.skip_next == false"
5861 },
5862 "expression" : {
5863 "type" : "expression",
5864 "value" : {
5865 "op" : "==",
5866 "left" : {
5867 "type" : "expression",
5868 "value" : {
5869 "op" : "d2b",
5870 "left" : null,
5871 "right" : {
5872 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005873 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005874 }
5875 }
5876 },
5877 "right" : {
5878 "type" : "bool",
5879 "value" : false
5880 }
5881 }
5882 },
5883 "false_next" : null,
5884 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005885 },
5886 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005887 "name" : "node_48",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005888 "id" : 15,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005889 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005890 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005891 "line" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005892 "column" : 12,
5893 "source_fragment" : "standard_metadata.egress_spec < 511"
5894 },
5895 "expression" : {
5896 "type" : "expression",
5897 "value" : {
5898 "op" : "<",
5899 "left" : {
5900 "type" : "field",
5901 "value" : ["standard_metadata", "egress_spec"]
5902 },
5903 "right" : {
5904 "type" : "hexstr",
5905 "value" : "0x01ff"
5906 }
5907 }
5908 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005909 "true_next" : "tbl_act_17",
5910 "false_next" : "node_50"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005911 },
5912 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005913 "name" : "node_50",
5914 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005915 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005916 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005917 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005918 "column" : 12,
5919 "source_fragment" : "standard_metadata.ingress_port < 511"
5920 },
5921 "expression" : {
5922 "type" : "expression",
5923 "value" : {
5924 "op" : "<",
5925 "left" : {
5926 "type" : "field",
5927 "value" : ["standard_metadata", "ingress_port"]
5928 },
5929 "right" : {
5930 "type" : "hexstr",
5931 "value" : "0x01ff"
5932 }
5933 }
5934 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005935 "false_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005936 "true_next" : "tbl_act_18"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005937 }
5938 ]
5939 },
5940 {
5941 "name" : "egress",
5942 "id" : 1,
5943 "source_info" : {
5944 "filename" : "fabric.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005945 "line" : 85,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005946 "column" : 8,
5947 "source_fragment" : "FabricEgress"
5948 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005949 "init_table" : "node_54",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005950 "tables" : [
5951 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005952 "name" : "tbl_act_19",
5953 "id" : 33,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005954 "source_info" : {
5955 "filename" : "include/control/packetio.p4",
5956 "line" : 47,
5957 "column" : 16,
5958 "source_fragment" : "mark_to_drop()"
5959 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02005960 "key" : [],
5961 "match_type" : "exact",
5962 "type" : "simple",
5963 "max_size" : 1024,
5964 "with_counters" : false,
5965 "support_timeout" : false,
5966 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005967 "action_ids" : [57],
5968 "actions" : ["act_19"],
5969 "base_default_next" : "tbl_act_20",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005970 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005971 "act_19" : "tbl_act_20"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005972 },
5973 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005974 "action_id" : 57,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005975 "action_const" : true,
5976 "action_data" : [],
5977 "action_entry_const" : true
5978 }
5979 },
5980 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005981 "name" : "tbl_act_20",
5982 "id" : 34,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005983 "source_info" : {
5984 "filename" : "include/control/packetio.p4",
5985 "line" : 49,
5986 "column" : 12,
5987 "source_fragment" : "hdr.packet_in.setValid(); ..."
5988 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005989 "key" : [],
5990 "match_type" : "exact",
5991 "type" : "simple",
5992 "max_size" : 1024,
5993 "with_counters" : false,
5994 "support_timeout" : false,
5995 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005996 "action_ids" : [58],
5997 "actions" : ["act_20"],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005998 "base_default_next" : null,
5999 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006000 "act_20" : null
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006001 },
6002 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006003 "action_id" : 58,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006004 "action_const" : true,
6005 "action_data" : [],
6006 "action_entry_const" : true
6007 }
6008 },
6009 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006010 "name" : "tbl_act_21",
6011 "id" : 35,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006012 "source_info" : {
6013 "filename" : "include/control/next.p4",
6014 "line" : 308,
6015 "column" : 12,
6016 "source_fragment" : "mark_to_drop()"
6017 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006018 "key" : [],
6019 "match_type" : "exact",
6020 "type" : "simple",
6021 "max_size" : 1024,
6022 "with_counters" : false,
6023 "support_timeout" : false,
6024 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006025 "action_ids" : [59],
6026 "actions" : ["act_21"],
6027 "base_default_next" : "node_61",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006028 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006029 "act_21" : "node_61"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006030 },
6031 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006032 "action_id" : 59,
6033 "action_const" : true,
6034 "action_data" : [],
6035 "action_entry_const" : true
6036 }
6037 },
6038 {
6039 "name" : "tbl_egress_next_pop_mpls_if_present",
6040 "id" : 36,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006041 "source_info" : {
6042 "filename" : "include/control/next.p4",
6043 "line" : 312,
6044 "column" : 36,
6045 "source_fragment" : "pop_mpls_if_present()"
6046 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006047 "key" : [],
6048 "match_type" : "exact",
6049 "type" : "simple",
6050 "max_size" : 1024,
6051 "with_counters" : false,
6052 "support_timeout" : false,
6053 "direct_meters" : null,
6054 "action_ids" : [53],
6055 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
6056 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6057 "next_tables" : {
6058 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
6059 },
6060 "default_entry" : {
6061 "action_id" : 53,
6062 "action_const" : true,
6063 "action_data" : [],
6064 "action_entry_const" : true
6065 }
6066 },
6067 {
6068 "name" : "tbl_egress_next_set_mpls",
6069 "id" : 37,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006070 "source_info" : {
6071 "filename" : "include/control/next.p4",
6072 "line" : 314,
6073 "column" : 12,
6074 "source_fragment" : "set_mpls()"
6075 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006076 "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" : [54],
6084 "actions" : ["FabricEgress.egress_next.set_mpls"],
6085 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6086 "next_tables" : {
6087 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
6088 },
6089 "default_entry" : {
6090 "action_id" : 54,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006091 "action_const" : true,
6092 "action_data" : [],
6093 "action_entry_const" : true
6094 }
6095 },
6096 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006097 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006098 "id" : 38,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006099 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006100 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006101 "line" : 291,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006102 "column" : 10,
6103 "source_fragment" : "egress_vlan"
6104 },
6105 "key" : [
6106 {
6107 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006108 "name" : "vlan_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006109 "target" : ["scalars", "fabric_metadata_t._vlan_id2"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006110 "mask" : null
6111 },
6112 {
6113 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006114 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006115 "target" : ["standard_metadata", "egress_port"],
6116 "mask" : null
6117 }
6118 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006119 "match_type" : "exact",
6120 "type" : "simple",
6121 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08006122 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006123 "support_timeout" : false,
6124 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006125 "action_ids" : [56, 51],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006126 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006127 "base_default_next" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006128 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006129 "__HIT__" : "tbl_act_22",
6130 "__MISS__" : "tbl_act_23"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006131 },
6132 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006133 "action_id" : 51,
6134 "action_const" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006135 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006136 "action_entry_const" : true
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006137 }
6138 },
6139 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006140 "name" : "tbl_act_22",
6141 "id" : 39,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006142 "key" : [],
6143 "match_type" : "exact",
6144 "type" : "simple",
6145 "max_size" : 1024,
6146 "with_counters" : false,
6147 "support_timeout" : false,
6148 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006149 "action_ids" : [60],
6150 "actions" : ["act_22"],
6151 "base_default_next" : "node_68",
6152 "next_tables" : {
6153 "act_22" : "node_68"
6154 },
6155 "default_entry" : {
6156 "action_id" : 60,
6157 "action_const" : true,
6158 "action_data" : [],
6159 "action_entry_const" : true
6160 }
6161 },
6162 {
6163 "name" : "tbl_act_23",
6164 "id" : 40,
6165 "key" : [],
6166 "match_type" : "exact",
6167 "type" : "simple",
6168 "max_size" : 1024,
6169 "with_counters" : false,
6170 "support_timeout" : false,
6171 "direct_meters" : null,
6172 "action_ids" : [61],
6173 "actions" : ["act_23"],
6174 "base_default_next" : "node_68",
6175 "next_tables" : {
6176 "act_23" : "node_68"
6177 },
6178 "default_entry" : {
6179 "action_id" : 61,
6180 "action_const" : true,
6181 "action_data" : [],
6182 "action_entry_const" : true
6183 }
6184 },
6185 {
6186 "name" : "tbl_egress_next_push_vlan",
6187 "id" : 41,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006188 "source_info" : {
6189 "filename" : "include/control/next.p4",
6190 "line" : 320,
6191 "column" : 16,
6192 "source_fragment" : "push_vlan()"
6193 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006194 "key" : [],
6195 "match_type" : "exact",
6196 "type" : "simple",
6197 "max_size" : 1024,
6198 "with_counters" : false,
6199 "support_timeout" : false,
6200 "direct_meters" : null,
6201 "action_ids" : [55],
6202 "actions" : ["FabricEgress.egress_next.push_vlan"],
6203 "base_default_next" : "node_71",
6204 "next_tables" : {
6205 "FabricEgress.egress_next.push_vlan" : "node_71"
6206 },
6207 "default_entry" : {
6208 "action_id" : 55,
6209 "action_const" : true,
6210 "action_data" : [],
6211 "action_entry_const" : true
6212 }
6213 },
6214 {
6215 "name" : "tbl_act_24",
6216 "id" : 42,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006217 "source_info" : {
6218 "filename" : "include/control/next.p4",
6219 "line" : 326,
6220 "column" : 25,
6221 "source_fragment" : "="
6222 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006223 "key" : [],
6224 "match_type" : "exact",
6225 "type" : "simple",
6226 "max_size" : 1024,
6227 "with_counters" : false,
6228 "support_timeout" : false,
6229 "direct_meters" : null,
6230 "action_ids" : [63],
6231 "actions" : ["act_25"],
6232 "base_default_next" : "node_73",
6233 "next_tables" : {
6234 "act_25" : "node_73"
6235 },
6236 "default_entry" : {
6237 "action_id" : 63,
6238 "action_const" : true,
6239 "action_data" : [],
6240 "action_entry_const" : true
6241 }
6242 },
6243 {
6244 "name" : "tbl_act_25",
6245 "id" : 43,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006246 "source_info" : {
6247 "filename" : "include/control/next.p4",
6248 "line" : 327,
6249 "column" : 35,
6250 "source_fragment" : "mark_to_drop()"
6251 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006252 "key" : [],
6253 "match_type" : "exact",
6254 "type" : "simple",
6255 "max_size" : 1024,
6256 "with_counters" : false,
6257 "support_timeout" : false,
6258 "direct_meters" : null,
6259 "action_ids" : [62],
6260 "actions" : ["act_24"],
6261 "base_default_next" : "node_79",
6262 "next_tables" : {
6263 "act_24" : "node_79"
6264 },
6265 "default_entry" : {
6266 "action_id" : 62,
6267 "action_const" : true,
6268 "action_data" : [],
6269 "action_entry_const" : true
6270 }
6271 },
6272 {
6273 "name" : "tbl_act_26",
6274 "id" : 44,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006275 "source_info" : {
6276 "filename" : "include/control/next.p4",
6277 "line" : 330,
6278 "column" : 29,
6279 "source_fragment" : "="
6280 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006281 "key" : [],
6282 "match_type" : "exact",
6283 "type" : "simple",
6284 "max_size" : 1024,
6285 "with_counters" : false,
6286 "support_timeout" : false,
6287 "direct_meters" : null,
6288 "action_ids" : [65],
6289 "actions" : ["act_27"],
6290 "base_default_next" : "node_77",
6291 "next_tables" : {
6292 "act_27" : "node_77"
6293 },
6294 "default_entry" : {
6295 "action_id" : 65,
6296 "action_const" : true,
6297 "action_data" : [],
6298 "action_entry_const" : true
6299 }
6300 },
6301 {
6302 "name" : "tbl_act_27",
6303 "id" : 45,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006304 "source_info" : {
6305 "filename" : "include/control/next.p4",
6306 "line" : 331,
6307 "column" : 39,
6308 "source_fragment" : "mark_to_drop()"
6309 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006310 "key" : [],
6311 "match_type" : "exact",
6312 "type" : "simple",
6313 "max_size" : 1024,
6314 "with_counters" : false,
6315 "support_timeout" : false,
6316 "direct_meters" : null,
6317 "action_ids" : [64],
6318 "actions" : ["act_26"],
6319 "base_default_next" : "node_79",
6320 "next_tables" : {
6321 "act_26" : "node_79"
6322 },
6323 "default_entry" : {
6324 "action_id" : 64,
6325 "action_const" : true,
6326 "action_data" : [],
6327 "action_entry_const" : true
6328 }
6329 },
6330 {
6331 "name" : "tbl_spgw_egress_gtpu_encap",
6332 "id" : 46,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006333 "source_info" : {
6334 "filename" : "include/spgw.p4",
6335 "line" : 227,
6336 "column" : 12,
6337 "source_fragment" : "gtpu_encap()"
6338 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006339 "key" : [],
6340 "match_type" : "exact",
6341 "type" : "simple",
6342 "max_size" : 1024,
6343 "with_counters" : false,
6344 "support_timeout" : false,
6345 "direct_meters" : null,
6346 "action_ids" : [52],
Yi Tseng27b9bc02018-04-12 14:52:40 +08006347 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006348 "base_default_next" : null,
6349 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006350 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006351 },
6352 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006353 "action_id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006354 "action_const" : true,
6355 "action_data" : [],
6356 "action_entry_const" : true
6357 }
6358 }
6359 ],
6360 "action_profiles" : [],
6361 "conditionals" : [
6362 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006363 "name" : "node_54",
6364 "id" : 17,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006365 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006366 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006367 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006368 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006369 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006370 },
6371 "expression" : {
6372 "type" : "expression",
6373 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006374 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006375 "left" : {
6376 "type" : "expression",
6377 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006378 "op" : "d2b",
6379 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006380 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006381 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006382 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out12"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02006383 }
6384 }
6385 },
6386 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006387 "type" : "bool",
6388 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02006389 }
6390 }
6391 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006392 "true_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006393 "false_next" : "node_55"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006394 },
6395 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006396 "name" : "node_55",
6397 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006398 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006399 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006400 "line" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006401 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08006402 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006403 },
6404 "expression" : {
6405 "type" : "expression",
6406 "value" : {
6407 "op" : "==",
6408 "left" : {
6409 "type" : "field",
6410 "value" : ["standard_metadata", "egress_port"]
6411 },
6412 "right" : {
6413 "type" : "hexstr",
6414 "value" : "0x00ff"
6415 }
6416 }
6417 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006418 "true_next" : "node_56",
6419 "false_next" : "node_59"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006420 },
6421 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006422 "name" : "node_56",
6423 "id" : 19,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006424 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006425 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006426 "line" : 44,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006427 "column" : 16,
6428 "source_fragment" : "fabric_metadata.is_multicast == true && ..."
6429 },
6430 "expression" : {
6431 "type" : "expression",
6432 "value" : {
6433 "op" : "and",
6434 "left" : {
6435 "type" : "expression",
6436 "value" : {
6437 "op" : "==",
6438 "left" : {
6439 "type" : "expression",
6440 "value" : {
6441 "op" : "d2b",
6442 "left" : null,
6443 "right" : {
6444 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006445 "value" : ["scalars", "fabric_metadata_t._is_multicast11"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006446 }
6447 }
6448 },
6449 "right" : {
6450 "type" : "bool",
6451 "value" : true
6452 }
6453 }
6454 },
6455 "right" : {
6456 "type" : "expression",
6457 "value" : {
6458 "op" : "==",
6459 "left" : {
6460 "type" : "expression",
6461 "value" : {
6462 "op" : "d2b",
6463 "left" : null,
6464 "right" : {
6465 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006466 "value" : ["scalars", "fabric_metadata_t._clone_to_cpu13"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006467 }
6468 }
6469 },
6470 "right" : {
6471 "type" : "bool",
6472 "value" : false
6473 }
6474 }
6475 }
6476 }
6477 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006478 "true_next" : "tbl_act_19",
6479 "false_next" : "tbl_act_20"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006480 },
6481 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006482 "name" : "node_59",
6483 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006484 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006485 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006486 "line" : 306,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006487 "column" : 12,
6488 "source_fragment" : "fabric_metadata.is_multicast == true ..."
6489 },
6490 "expression" : {
6491 "type" : "expression",
6492 "value" : {
6493 "op" : "and",
6494 "left" : {
6495 "type" : "expression",
6496 "value" : {
6497 "op" : "==",
6498 "left" : {
6499 "type" : "expression",
6500 "value" : {
6501 "op" : "d2b",
6502 "left" : null,
6503 "right" : {
6504 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006505 "value" : ["scalars", "fabric_metadata_t._is_multicast11"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006506 }
6507 }
6508 },
6509 "right" : {
6510 "type" : "bool",
6511 "value" : true
6512 }
6513 }
6514 },
6515 "right" : {
6516 "type" : "expression",
6517 "value" : {
6518 "op" : "==",
6519 "left" : {
6520 "type" : "field",
6521 "value" : ["standard_metadata", "ingress_port"]
6522 },
6523 "right" : {
6524 "type" : "field",
6525 "value" : ["standard_metadata", "egress_port"]
6526 }
6527 }
6528 }
6529 }
6530 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006531 "true_next" : "tbl_act_21",
6532 "false_next" : "node_61"
6533 },
6534 {
6535 "name" : "node_61",
6536 "id" : 21,
6537 "source_info" : {
6538 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006539 "line" : 311,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006540 "column" : 12,
6541 "source_fragment" : "fabric_metadata.mpls_label == 0"
6542 },
6543 "expression" : {
6544 "type" : "expression",
6545 "value" : {
6546 "op" : "==",
6547 "left" : {
6548 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006549 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006550 },
6551 "right" : {
6552 "type" : "hexstr",
6553 "value" : "0x000000"
6554 }
6555 }
6556 },
6557 "true_next" : "node_62",
6558 "false_next" : "tbl_egress_next_set_mpls"
6559 },
6560 {
6561 "name" : "node_62",
6562 "id" : 22,
6563 "source_info" : {
6564 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006565 "line" : 312,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006566 "column" : 16,
6567 "source_fragment" : "hdr.mpls.isValid()"
6568 },
6569 "expression" : {
6570 "type" : "expression",
6571 "value" : {
6572 "op" : "d2b",
6573 "left" : null,
6574 "right" : {
6575 "type" : "field",
6576 "value" : ["mpls", "$valid$"]
6577 }
6578 }
6579 },
6580 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006581 "false_next" : "FabricEgress.egress_next.egress_vlan"
6582 },
6583 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006584 "name" : "node_68",
6585 "id" : 23,
6586 "source_info" : {
6587 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006588 "line" : 317,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006589 "column" : 12,
6590 "source_fragment" : "!egress_vlan.apply().hit"
6591 },
6592 "expression" : {
6593 "type" : "expression",
6594 "value" : {
6595 "op" : "not",
6596 "left" : null,
6597 "right" : {
6598 "type" : "expression",
6599 "value" : {
6600 "op" : "d2b",
6601 "left" : null,
6602 "right" : {
6603 "type" : "field",
6604 "value" : ["scalars", "egress_next_tmp"]
6605 }
6606 }
6607 }
6608 }
6609 },
6610 "true_next" : "node_69",
6611 "false_next" : "node_71"
6612 },
6613 {
6614 "name" : "node_69",
6615 "id" : 24,
6616 "source_info" : {
6617 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006618 "line" : 319,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006619 "column" : 16,
6620 "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
6621 },
6622 "expression" : {
6623 "type" : "expression",
6624 "value" : {
6625 "op" : "!=",
6626 "left" : {
6627 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006628 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006629 },
6630 "right" : {
6631 "type" : "hexstr",
6632 "value" : "0x0ffe"
6633 }
6634 }
6635 },
6636 "true_next" : "tbl_egress_next_push_vlan",
6637 "false_next" : "node_71"
6638 },
6639 {
6640 "name" : "node_71",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006641 "id" : 25,
6642 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006643 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006644 "line" : 325,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006645 "column" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006646 "source_fragment" : "hdr.mpls.isValid()"
6647 },
6648 "expression" : {
6649 "type" : "expression",
6650 "value" : {
6651 "op" : "d2b",
6652 "left" : null,
6653 "right" : {
6654 "type" : "field",
6655 "value" : ["mpls", "$valid$"]
6656 }
6657 }
6658 },
6659 "true_next" : "tbl_act_24",
6660 "false_next" : "node_75"
6661 },
6662 {
6663 "name" : "node_73",
6664 "id" : 26,
6665 "source_info" : {
6666 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006667 "line" : 327,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006668 "column" : 16,
6669 "source_fragment" : "hdr.mpls.ttl == 0"
6670 },
6671 "expression" : {
6672 "type" : "expression",
6673 "value" : {
6674 "op" : "==",
6675 "left" : {
6676 "type" : "field",
6677 "value" : ["mpls", "ttl"]
6678 },
6679 "right" : {
6680 "type" : "hexstr",
6681 "value" : "0x00"
6682 }
6683 }
6684 },
6685 "true_next" : "tbl_act_25",
6686 "false_next" : "node_79"
6687 },
6688 {
6689 "name" : "node_75",
6690 "id" : 27,
6691 "source_info" : {
6692 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006693 "line" : 329,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006694 "column" : 15,
6695 "source_fragment" : "hdr.ipv4.isValid()"
6696 },
6697 "expression" : {
6698 "type" : "expression",
6699 "value" : {
6700 "op" : "d2b",
6701 "left" : null,
6702 "right" : {
6703 "type" : "field",
6704 "value" : ["ipv4", "$valid$"]
6705 }
6706 }
6707 },
6708 "true_next" : "tbl_act_26",
6709 "false_next" : "node_79"
6710 },
6711 {
6712 "name" : "node_77",
6713 "id" : 28,
6714 "source_info" : {
6715 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006716 "line" : 331,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006717 "column" : 20,
6718 "source_fragment" : "hdr.ipv4.ttl == 0"
6719 },
6720 "expression" : {
6721 "type" : "expression",
6722 "value" : {
6723 "op" : "==",
6724 "left" : {
6725 "type" : "field",
6726 "value" : ["ipv4", "ttl"]
6727 },
6728 "right" : {
6729 "type" : "hexstr",
6730 "value" : "0x00"
6731 }
6732 }
6733 },
6734 "true_next" : "tbl_act_27",
6735 "false_next" : "node_79"
6736 },
6737 {
6738 "name" : "node_79",
6739 "id" : 29,
6740 "source_info" : {
6741 "filename" : "include/spgw.p4",
6742 "line" : 226,
6743 "column" : 12,
6744 "source_fragment" : "fabric_meta.spgw.direction == SPGW_DIR_DOWNLINK"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006745 },
6746 "expression" : {
6747 "type" : "expression",
6748 "value" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006749 "op" : "==",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006750 "left" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006751 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006752 "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006753 },
6754 "right" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006755 "type" : "hexstr",
6756 "value" : "0x02"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006757 }
6758 }
6759 },
6760 "false_next" : null,
6761 "true_next" : "tbl_spgw_egress_gtpu_encap"
6762 }
6763 ]
6764 }
6765 ],
6766 "checksums" : [
6767 {
6768 "name" : "cksum",
6769 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006770 "source_info" : {
6771 "filename" : "include/checksum.p4",
6772 "line" : 28,
6773 "column" : 8,
6774 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
6775 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006776 "target" : ["ipv4", "hdr_checksum"],
6777 "type" : "generic",
6778 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006779 "verify" : false,
6780 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006781 "if_cond" : {
6782 "type" : "expression",
6783 "value" : {
6784 "op" : "d2b",
6785 "left" : null,
6786 "right" : {
6787 "type" : "field",
6788 "value" : ["ipv4", "$valid$"]
6789 }
6790 }
6791 }
6792 },
6793 {
6794 "name" : "cksum_0",
6795 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006796 "source_info" : {
6797 "filename" : "include/spgw.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006798 "line" : 242,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006799 "column" : 8,
6800 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
6801 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006802 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006803 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006804 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006805 "verify" : false,
6806 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006807 "if_cond" : {
6808 "type" : "expression",
6809 "value" : {
6810 "op" : "d2b",
6811 "left" : null,
6812 "right" : {
6813 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006814 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006815 }
6816 }
6817 }
6818 },
6819 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006820 "name" : "cksum_1",
6821 "id" : 2,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006822 "source_info" : {
6823 "filename" : "include/checksum.p4",
6824 "line" : 57,
6825 "column" : 8,
6826 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
6827 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006828 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006829 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006830 "calculation" : "calc_1",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006831 "verify" : true,
6832 "update" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006833 "if_cond" : {
6834 "type" : "expression",
6835 "value" : {
6836 "op" : "d2b",
6837 "left" : null,
6838 "right" : {
6839 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006840 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006841 }
6842 }
6843 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006844 }
6845 ],
6846 "force_arith" : [],
6847 "extern_instances" : [],
6848 "field_aliases" : [
6849 [
6850 "queueing_metadata.enq_timestamp",
6851 ["standard_metadata", "enq_timestamp"]
6852 ],
6853 [
6854 "queueing_metadata.enq_qdepth",
6855 ["standard_metadata", "enq_qdepth"]
6856 ],
6857 [
6858 "queueing_metadata.deq_timedelta",
6859 ["standard_metadata", "deq_timedelta"]
6860 ],
6861 [
6862 "queueing_metadata.deq_qdepth",
6863 ["standard_metadata", "deq_qdepth"]
6864 ],
6865 [
6866 "intrinsic_metadata.ingress_global_timestamp",
6867 ["standard_metadata", "ingress_global_timestamp"]
6868 ],
6869 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08006870 "intrinsic_metadata.egress_global_timestamp",
6871 ["standard_metadata", "egress_global_timestamp"]
6872 ],
6873 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006874 "intrinsic_metadata.lf_field_list",
6875 ["standard_metadata", "lf_field_list"]
6876 ],
6877 [
6878 "intrinsic_metadata.mcast_grp",
6879 ["standard_metadata", "mcast_grp"]
6880 ],
6881 [
6882 "intrinsic_metadata.resubmit_flag",
6883 ["standard_metadata", "resubmit_flag"]
6884 ],
6885 [
6886 "intrinsic_metadata.egress_rid",
6887 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08006888 ],
6889 [
6890 "intrinsic_metadata.recirculate_flag",
6891 ["standard_metadata", "recirculate_flag"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006892 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006893 ],
6894 "program" : "fabric.p4",
6895 "__meta__" : {
6896 "version" : [2, 18],
6897 "compiler" : "https://github.com/p4lang/p4c"
6898 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08006899}