blob: 860a5a3e80a4e7646e8ea27d455035e5ef36fb5e [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],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020063 ["recirculate_flag", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070064 ["checksum_error", 1, false],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -070065 ["parser_error", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070066 ["priority", 3, false],
67 ["_padding", 2, false]
Carmelo Cascone6af4e172018-06-15 16:01:30 +020068 ]
69 },
70 {
71 "name" : "ethernet_t",
72 "id" : 2,
73 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080074 ["dst_addr", 48, false],
75 ["src_addr", 48, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080076 ["eth_type", 16, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080077 ]
78 },
79 {
80 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020081 "id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080082 "fields" : [
83 ["pri", 3, false],
84 ["cfi", 1, false],
85 ["vlan_id", 12, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080086 ["eth_type", 16, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080087 ]
88 },
89 {
90 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020091 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080092 "fields" : [
93 ["label", 20, false],
94 ["tc", 3, false],
95 ["bos", 1, false],
96 ["ttl", 8, false]
97 ]
98 },
99 {
100 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200101 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800102 "fields" : [
103 ["version", 4, false],
104 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900105 ["dscp", 6, false],
106 ["ecn", 2, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800107 ["total_len", 16, false],
108 ["identification", 16, false],
109 ["flags", 3, false],
110 ["frag_offset", 13, false],
111 ["ttl", 8, false],
112 ["protocol", 8, false],
113 ["hdr_checksum", 16, false],
114 ["src_addr", 32, false],
115 ["dst_addr", 32, false]
116 ]
117 },
118 {
119 "name" : "udp_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200120 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800121 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800122 ["sport", 16, false],
123 ["dport", 16, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800124 ["len", 16, false],
125 ["checksum", 16, false]
126 ]
127 },
128 {
129 "name" : "gtpu_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200130 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800131 "fields" : [
132 ["version", 3, false],
133 ["pt", 1, false],
134 ["spare", 1, false],
135 ["ex_flag", 1, false],
136 ["seq_flag", 1, false],
137 ["npdu_flag", 1, false],
138 ["msgtype", 8, false],
139 ["msglen", 16, false],
140 ["teid", 32, false]
141 ]
142 },
143 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800144 "name" : "tcp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800145 "id" : 8,
146 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800147 ["sport", 16, false],
148 ["dport", 16, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800149 ["seq_no", 32, false],
150 ["ack_no", 32, false],
151 ["data_offset", 4, false],
152 ["res", 3, false],
153 ["ecn", 3, false],
154 ["ctrl", 6, false],
155 ["window", 16, false],
156 ["checksum", 16, false],
157 ["urgent_ptr", 16, false]
158 ]
159 },
160 {
161 "name" : "icmp_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800162 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800163 "fields" : [
164 ["icmp_type", 8, false],
165 ["icmp_code", 8, false],
166 ["checksum", 16, false],
167 ["identifier", 16, false],
168 ["sequence_number", 16, false],
169 ["timestamp", 64, false]
170 ]
171 },
172 {
173 "name" : "packet_out_header_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800174 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800175 "fields" : [
176 ["egress_port", 9, false],
177 ["_pad", 7, false]
178 ]
179 },
180 {
181 "name" : "packet_in_header_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800182 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800183 "fields" : [
184 ["ingress_port", 9, false],
185 ["_pad", 7, false]
186 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800187 }
188 ],
189 "headers" : [
190 {
191 "name" : "scalars",
192 "id" : 0,
193 "header_type" : "scalars_0",
194 "metadata" : true,
195 "pi_omit" : true
196 },
197 {
198 "name" : "standard_metadata",
199 "id" : 1,
200 "header_type" : "standard_metadata",
201 "metadata" : true,
202 "pi_omit" : true
203 },
204 {
205 "name" : "ethernet",
206 "id" : 2,
207 "header_type" : "ethernet_t",
208 "metadata" : false,
209 "pi_omit" : true
210 },
211 {
212 "name" : "vlan_tag",
213 "id" : 3,
214 "header_type" : "vlan_tag_t",
215 "metadata" : false,
216 "pi_omit" : true
217 },
218 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800219 "name" : "inner_vlan_tag",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800220 "id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800221 "header_type" : "vlan_tag_t",
222 "metadata" : false,
223 "pi_omit" : true
224 },
225 {
226 "name" : "mpls",
227 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800228 "header_type" : "mpls_t",
229 "metadata" : false,
230 "pi_omit" : true
231 },
232 {
233 "name" : "gtpu_ipv4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800234 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800235 "header_type" : "ipv4_t",
236 "metadata" : false,
237 "pi_omit" : true
238 },
239 {
240 "name" : "gtpu_udp",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800241 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800242 "header_type" : "udp_t",
243 "metadata" : false,
244 "pi_omit" : true
245 },
246 {
247 "name" : "gtpu",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800248 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800249 "header_type" : "gtpu_t",
250 "metadata" : false,
251 "pi_omit" : true
252 },
253 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700254 "name" : "inner_ipv4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800255 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800256 "header_type" : "ipv4_t",
257 "metadata" : false,
258 "pi_omit" : true
259 },
260 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700261 "name" : "inner_udp",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800262 "id" : 10,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700263 "header_type" : "udp_t",
264 "metadata" : false,
265 "pi_omit" : true
266 },
267 {
268 "name" : "ipv4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700269 "id" : 11,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800270 "header_type" : "ipv4_t",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800271 "metadata" : false,
272 "pi_omit" : true
273 },
274 {
275 "name" : "tcp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700276 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800277 "header_type" : "tcp_t",
278 "metadata" : false,
279 "pi_omit" : true
280 },
281 {
282 "name" : "udp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700283 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800284 "header_type" : "udp_t",
285 "metadata" : false,
286 "pi_omit" : true
287 },
288 {
289 "name" : "icmp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700290 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800291 "header_type" : "icmp_t",
292 "metadata" : false,
293 "pi_omit" : true
294 },
295 {
296 "name" : "packet_out",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700297 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800298 "header_type" : "packet_out_header_t",
299 "metadata" : false,
300 "pi_omit" : true
301 },
302 {
303 "name" : "packet_in",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700304 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800305 "header_type" : "packet_in_header_t",
306 "metadata" : false,
307 "pi_omit" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800308 }
309 ],
310 "header_stacks" : [],
311 "header_union_types" : [],
312 "header_unions" : [],
313 "header_union_stacks" : [],
314 "field_lists" : [],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700315 "errors" : [
Carmelo Cascone9b607da2019-05-08 14:03:01 -0700316 ["NoError", 0],
317 ["PacketTooShort", 1],
318 ["NoMatch", 2],
319 ["StackOutOfBounds", 3],
320 ["HeaderTooShort", 4],
321 ["ParserTimeout", 5],
322 ["ParserInvalidArgument", 6]
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700323 ],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800324 "enums" : [],
325 "parsers" : [
326 {
327 "name" : "parser",
328 "id" : 0,
329 "init_state" : "start",
330 "parse_states" : [
331 {
332 "name" : "start",
333 "id" : 0,
334 "parser_ops" : [],
335 "transitions" : [
336 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800337 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800338 "value" : "0x00ff",
339 "mask" : null,
340 "next_state" : "parse_packet_out"
341 },
342 {
343 "value" : "default",
344 "mask" : null,
345 "next_state" : "parse_ethernet"
346 }
347 ],
348 "transition_key" : [
349 {
350 "type" : "field",
351 "value" : ["standard_metadata", "ingress_port"]
352 }
353 ]
354 },
355 {
356 "name" : "parse_packet_out",
357 "id" : 1,
358 "parser_ops" : [
359 {
360 "parameters" : [
361 {
362 "type" : "regular",
363 "value" : "packet_out"
364 }
365 ],
366 "op" : "extract"
367 }
368 ],
369 "transitions" : [
370 {
371 "value" : "default",
372 "mask" : null,
373 "next_state" : "parse_ethernet"
374 }
375 ],
376 "transition_key" : []
377 },
378 {
379 "name" : "parse_ethernet",
380 "id" : 2,
381 "parser_ops" : [
382 {
383 "parameters" : [
384 {
385 "type" : "regular",
386 "value" : "ethernet"
387 }
388 ],
389 "op" : "extract"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800390 },
391 {
392 "parameters" : [
393 {
394 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800395 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800396 },
397 {
398 "type" : "field",
399 "value" : ["ethernet", "eth_type"]
400 }
401 ],
402 "op" : "set"
403 },
404 {
405 "parameters" : [
406 {
407 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800408 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800409 },
410 {
411 "type" : "hexstr",
412 "value" : "0x0ffe"
413 }
414 ],
415 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800416 }
417 ],
418 "transitions" : [
419 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800420 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800421 "value" : "0x8100",
422 "mask" : null,
423 "next_state" : "parse_vlan_tag"
424 },
425 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800426 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800427 "value" : "0x8847",
428 "mask" : null,
429 "next_state" : "parse_mpls"
430 },
431 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800432 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800433 "value" : "0x0800",
434 "mask" : null,
435 "next_state" : "parse_ipv4"
436 },
437 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800438 "value" : "default",
439 "mask" : null,
440 "next_state" : null
441 }
442 ],
443 "transition_key" : [
444 {
445 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800446 "value" : ["ethernet", "eth_type"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800447 }
448 ]
449 },
450 {
451 "name" : "parse_vlan_tag",
452 "id" : 3,
453 "parser_ops" : [
454 {
455 "parameters" : [
456 {
457 "type" : "regular",
458 "value" : "vlan_tag"
459 }
460 ],
461 "op" : "extract"
462 }
463 ],
464 "transitions" : [
465 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800466 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800467 "value" : "0x0800",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800468 "mask" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800469 "next_state" : "parse_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800470 },
471 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800472 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800473 "value" : "0x8847",
474 "mask" : null,
475 "next_state" : "parse_mpls"
476 },
477 {
478 "type" : "hexstr",
479 "value" : "0x8100",
480 "mask" : null,
481 "next_state" : "parse_inner_vlan_tag"
482 },
483 {
484 "value" : "default",
485 "mask" : null,
486 "next_state" : null
487 }
488 ],
489 "transition_key" : [
490 {
491 "type" : "field",
492 "value" : ["vlan_tag", "eth_type"]
493 }
494 ]
495 },
496 {
497 "name" : "parse_inner_vlan_tag",
498 "id" : 4,
499 "parser_ops" : [
500 {
501 "parameters" : [
502 {
503 "type" : "regular",
504 "value" : "inner_vlan_tag"
505 }
506 ],
507 "op" : "extract"
508 }
509 ],
510 "transitions" : [
511 {
512 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800513 "value" : "0x0800",
514 "mask" : null,
515 "next_state" : "parse_ipv4"
516 },
517 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800518 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800519 "value" : "0x8847",
520 "mask" : null,
521 "next_state" : "parse_mpls"
522 },
523 {
524 "value" : "default",
525 "mask" : null,
526 "next_state" : null
527 }
528 ],
529 "transition_key" : [
530 {
531 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800532 "value" : ["inner_vlan_tag", "eth_type"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800533 }
534 ]
535 },
536 {
537 "name" : "parse_mpls",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800538 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800539 "parser_ops" : [
540 {
541 "parameters" : [
542 {
543 "type" : "regular",
544 "value" : "mpls"
545 }
546 ],
547 "op" : "extract"
548 },
549 {
550 "parameters" : [
551 {
552 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800553 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800554 },
555 {
556 "type" : "field",
557 "value" : ["mpls", "label"]
558 }
559 ],
560 "op" : "set"
561 },
562 {
563 "parameters" : [
564 {
565 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800566 "value" : ["scalars", "fabric_metadata_t._mpls_ttl6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800567 },
568 {
569 "type" : "field",
570 "value" : ["mpls", "ttl"]
571 }
572 ],
573 "op" : "set"
574 },
575 {
576 "parameters" : [
577 {
578 "type" : "field",
579 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800580 },
581 {
582 "type" : "lookahead",
583 "value" : [0, 4]
584 }
585 ],
586 "op" : "set"
587 }
588 ],
589 "transitions" : [
590 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800591 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800592 "value" : "0x04",
593 "mask" : null,
594 "next_state" : "parse_ipv4"
595 },
596 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800597 "value" : "default",
598 "mask" : null,
599 "next_state" : "parse_ethernet"
600 }
601 ],
602 "transition_key" : [
603 {
604 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800605 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800606 }
607 ]
608 },
609 {
610 "name" : "parse_ipv4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800611 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800612 "parser_ops" : [
613 {
614 "parameters" : [
615 {
616 "type" : "regular",
617 "value" : "ipv4"
618 }
619 ],
620 "op" : "extract"
621 },
622 {
623 "parameters" : [
624 {
625 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800626 "value" : ["scalars", "fabric_metadata_t._ip_proto14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800627 },
628 {
629 "type" : "field",
630 "value" : ["ipv4", "protocol"]
631 }
632 ],
633 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800634 },
635 {
636 "parameters" : [
637 {
638 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800639 "value" : ["scalars", "fabric_metadata_t._ip_eth_type1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800640 },
641 {
642 "type" : "hexstr",
643 "value" : "0x0800"
644 }
645 ],
646 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800647 }
648 ],
649 "transitions" : [
650 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800651 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800652 "value" : "0x06",
653 "mask" : null,
654 "next_state" : "parse_tcp"
655 },
656 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800657 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800658 "value" : "0x11",
659 "mask" : null,
660 "next_state" : "parse_udp"
661 },
662 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800663 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800664 "value" : "0x01",
665 "mask" : null,
666 "next_state" : "parse_icmp"
667 },
668 {
669 "value" : "default",
670 "mask" : null,
671 "next_state" : null
672 }
673 ],
674 "transition_key" : [
675 {
676 "type" : "field",
677 "value" : ["ipv4", "protocol"]
678 }
679 ]
680 },
681 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800682 "name" : "parse_tcp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200683 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800684 "parser_ops" : [
685 {
686 "parameters" : [
687 {
688 "type" : "regular",
689 "value" : "tcp"
690 }
691 ],
692 "op" : "extract"
693 },
694 {
695 "parameters" : [
696 {
697 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800698 "value" : ["scalars", "fabric_metadata_t._l4_sport15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800699 },
700 {
701 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800702 "value" : ["tcp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800703 }
704 ],
705 "op" : "set"
706 },
707 {
708 "parameters" : [
709 {
710 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800711 "value" : ["scalars", "fabric_metadata_t._l4_dport16"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800712 },
713 {
714 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800715 "value" : ["tcp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800716 }
717 ],
718 "op" : "set"
719 }
720 ],
721 "transitions" : [
722 {
723 "value" : "default",
724 "mask" : null,
725 "next_state" : null
726 }
727 ],
728 "transition_key" : []
729 },
730 {
731 "name" : "parse_udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200732 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800733 "parser_ops" : [
734 {
735 "parameters" : [
736 {
737 "type" : "regular",
738 "value" : "udp"
739 }
740 ],
741 "op" : "extract"
742 },
743 {
744 "parameters" : [
745 {
746 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800747 "value" : ["scalars", "fabric_metadata_t._l4_sport15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800748 },
749 {
750 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800751 "value" : ["udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800752 }
753 ],
754 "op" : "set"
755 },
756 {
757 "parameters" : [
758 {
759 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800760 "value" : ["scalars", "fabric_metadata_t._l4_dport16"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800761 },
762 {
763 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800764 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800765 }
766 ],
767 "op" : "set"
768 }
769 ],
770 "transitions" : [
771 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800772 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800773 "value" : "0x0868",
774 "mask" : null,
775 "next_state" : "parse_gtpu"
776 },
777 {
778 "value" : "default",
779 "mask" : null,
780 "next_state" : null
781 }
782 ],
783 "transition_key" : [
784 {
785 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800786 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800787 }
788 ]
789 },
790 {
791 "name" : "parse_icmp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200792 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800793 "parser_ops" : [
794 {
795 "parameters" : [
796 {
797 "type" : "regular",
798 "value" : "icmp"
799 }
800 ],
801 "op" : "extract"
802 }
803 ],
804 "transitions" : [
805 {
806 "value" : "default",
807 "mask" : null,
808 "next_state" : null
809 }
810 ],
811 "transition_key" : []
812 },
813 {
814 "name" : "parse_gtpu",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200815 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800816 "parser_ops" : [
817 {
818 "parameters" : [
819 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700820 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800821 "value" : ["scalars", "tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700822 },
823 {
824 "type" : "expression",
825 "value" : {
826 "type" : "expression",
827 "value" : {
828 "op" : "&",
829 "left" : {
830 "type" : "expression",
831 "value" : {
832 "op" : "&",
833 "left" : {
834 "type" : "expression",
835 "value" : {
836 "op" : ">>",
837 "left" : {
838 "type" : "field",
839 "value" : ["ipv4", "dst_addr"]
840 },
841 "right" : {
842 "type" : "hexstr",
843 "value" : "0x18"
844 }
845 }
846 },
847 "right" : {
848 "type" : "hexstr",
849 "value" : "0xffffffff"
850 }
851 }
852 },
853 "right" : {
854 "type" : "hexstr",
855 "value" : "0xff"
856 }
857 }
858 }
859 }
860 ],
861 "op" : "set"
862 }
863 ],
864 "transitions" : [
865 {
866 "type" : "hexstr",
867 "value" : "0x8c",
868 "mask" : null,
869 "next_state" : "do_parse_gtpu"
870 },
871 {
872 "value" : "default",
873 "mask" : null,
874 "next_state" : null
875 }
876 ],
877 "transition_key" : [
878 {
879 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800880 "value" : ["scalars", "tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700881 }
882 ]
883 },
884 {
885 "name" : "do_parse_gtpu",
886 "id" : 11,
887 "parser_ops" : [
888 {
889 "parameters" : [
890 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800891 "type" : "regular",
892 "value" : "gtpu"
893 }
894 ],
895 "op" : "extract"
896 },
897 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800898 "parameters" : [
899 {
900 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700901 "value" : "inner_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800902 }
903 ],
904 "op" : "extract"
905 }
906 ],
907 "transitions" : [
908 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800909 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800910 "value" : "0x06",
911 "mask" : null,
912 "next_state" : "parse_tcp"
913 },
914 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800915 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800916 "value" : "0x11",
917 "mask" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700918 "next_state" : "parse_inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800919 },
920 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800921 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800922 "value" : "0x01",
923 "mask" : null,
924 "next_state" : "parse_icmp"
925 },
926 {
927 "value" : "default",
928 "mask" : null,
929 "next_state" : null
930 }
931 ],
932 "transition_key" : [
933 {
934 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700935 "value" : ["inner_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800936 }
937 ]
938 },
939 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700940 "name" : "parse_inner_udp",
941 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800942 "parser_ops" : [
943 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800944 "parameters" : [
945 {
946 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700947 "value" : "inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800948 }
949 ],
950 "op" : "extract"
951 },
952 {
953 "parameters" : [
954 {
955 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800956 "value" : ["scalars", "fabric_metadata_t._l4_sport15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800957 },
958 {
959 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800960 "value" : ["inner_udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800961 }
962 ],
963 "op" : "set"
964 },
965 {
966 "parameters" : [
967 {
968 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -0800969 "value" : ["scalars", "fabric_metadata_t._l4_dport16"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800970 },
971 {
972 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800973 "value" : ["inner_udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800974 }
975 ],
976 "op" : "set"
977 }
978 ],
979 "transitions" : [
980 {
981 "value" : "default",
982 "mask" : null,
983 "next_state" : null
984 }
985 ],
986 "transition_key" : []
987 }
988 ]
989 }
990 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800991 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800992 "deparsers" : [
993 {
994 "name" : "deparser",
995 "id" : 0,
996 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200997 "filename" : "include/parser.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800998 "line" : 243,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800999 "column" : 8,
1000 "source_fragment" : "FabricDeparser"
1001 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001002 "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 -08001003 }
1004 ],
1005 "meter_arrays" : [],
1006 "counter_arrays" : [
1007 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001008 "name" : "FabricIngress.spgw_ingress.ue_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001009 "id" : 0,
1010 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001011 "binding" : "FabricIngress.spgw_ingress.dl_sess_lookup",
1012 "source_info" : {
1013 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001014 "line" : 52,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001015 "column" : 50,
1016 "source_fragment" : "ue_counter"
1017 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001018 },
1019 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001020 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001021 "id" : 1,
1022 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001023 "binding" : "FabricIngress.filtering.ingress_port_vlan",
1024 "source_info" : {
1025 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001026 "line" : 31,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001027 "column" : 50,
1028 "source_fragment" : "ingress_port_vlan_counter"
1029 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001030 },
1031 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001032 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001033 "id" : 2,
1034 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001035 "binding" : "FabricIngress.filtering.fwd_classifier",
1036 "source_info" : {
1037 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001038 "line" : 80,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001039 "column" : 50,
1040 "source_fragment" : "fwd_classifier_counter"
1041 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001042 },
1043 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001044 "name" : "FabricIngress.forwarding.bridging_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001045 "id" : 3,
1046 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001047 "binding" : "FabricIngress.forwarding.bridging",
1048 "source_info" : {
1049 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001050 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001051 "column" : 50,
1052 "source_fragment" : "bridging_counter"
1053 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001054 },
1055 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001056 "name" : "FabricIngress.forwarding.mpls_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001057 "id" : 4,
1058 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001059 "binding" : "FabricIngress.forwarding.mpls",
1060 "source_info" : {
1061 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001062 "line" : 63,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001063 "column" : 50,
1064 "source_fragment" : "mpls_counter"
1065 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001066 },
1067 {
Charles Chan384aea22018-08-23 22:08:02 -07001068 "name" : "FabricIngress.forwarding.routing_v4_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001069 "id" : 5,
1070 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001071 "binding" : "FabricIngress.forwarding.routing_v4",
1072 "source_info" : {
1073 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001074 "line" : 87,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001075 "column" : 50,
1076 "source_fragment" : "routing_v4_counter"
1077 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001078 },
1079 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001080 "name" : "FabricIngress.acl.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001081 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001082 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001083 "binding" : "FabricIngress.acl.acl",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001084 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001085 "filename" : "include/control/acl.p4",
1086 "line" : 30,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001087 "column" : 50,
1088 "source_fragment" : "acl_counter"
1089 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001090 },
1091 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001092 "name" : "FabricIngress.next.next_vlan_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001093 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001094 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001095 "binding" : "FabricIngress.next.next_vlan",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001096 "source_info" : {
1097 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001098 "line" : 67,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001099 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001100 "source_fragment" : "next_vlan_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001101 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001102 },
1103 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001104 "name" : "FabricIngress.next.xconnect_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001105 "id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001106 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001107 "binding" : "FabricIngress.next.xconnect",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001108 "source_info" : {
1109 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001110 "line" : 92,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001111 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001112 "source_fragment" : "xconnect_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001113 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001114 },
1115 {
1116 "name" : "FabricIngress.next.hashed_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001117 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001118 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001119 "binding" : "FabricIngress.next.hashed",
1120 "source_info" : {
1121 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001122 "line" : 166,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001123 "column" : 50,
1124 "source_fragment" : "hashed_counter"
1125 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001126 },
1127 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001128 "name" : "FabricIngress.next.multicast_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001129 "id" : 10,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001130 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001131 "binding" : "FabricIngress.next.multicast",
1132 "source_info" : {
1133 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001134 "line" : 210,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001135 "column" : 50,
1136 "source_fragment" : "multicast_counter"
1137 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00001138 },
1139 {
1140 "name" : "FabricIngress.port_counters_control.egress_port_counter",
1141 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001142 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001143 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001144 "line" : 26,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001145 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001146 "source_fragment" : "egress_port_counter"
1147 },
1148 "size" : 511,
1149 "is_direct" : false
1150 },
1151 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001152 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001153 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001154 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001155 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001156 "line" : 27,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001157 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001158 "source_fragment" : "ingress_port_counter"
1159 },
1160 "size" : 511,
1161 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08001162 },
1163 {
1164 "name" : "FabricEgress.egress_next.egress_vlan_counter",
1165 "id" : 13,
1166 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001167 "binding" : "FabricEgress.egress_next.egress_vlan",
1168 "source_info" : {
1169 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001170 "line" : 283,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001171 "column" : 50,
1172 "source_fragment" : "egress_vlan_counter"
1173 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001174 }
1175 ],
1176 "register_arrays" : [],
1177 "calculations" : [
1178 {
1179 "name" : "calc",
1180 "id" : 0,
1181 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001182 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001183 "line" : 28,
1184 "column" : 8,
1185 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1186 },
1187 "algo" : "csum16",
1188 "input" : [
1189 {
1190 "type" : "field",
1191 "value" : ["ipv4", "version"]
1192 },
1193 {
1194 "type" : "field",
1195 "value" : ["ipv4", "ihl"]
1196 },
1197 {
1198 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001199 "value" : ["ipv4", "dscp"]
1200 },
1201 {
1202 "type" : "field",
1203 "value" : ["ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001204 },
1205 {
1206 "type" : "field",
1207 "value" : ["ipv4", "total_len"]
1208 },
1209 {
1210 "type" : "field",
1211 "value" : ["ipv4", "identification"]
1212 },
1213 {
1214 "type" : "field",
1215 "value" : ["ipv4", "flags"]
1216 },
1217 {
1218 "type" : "field",
1219 "value" : ["ipv4", "frag_offset"]
1220 },
1221 {
1222 "type" : "field",
1223 "value" : ["ipv4", "ttl"]
1224 },
1225 {
1226 "type" : "field",
1227 "value" : ["ipv4", "protocol"]
1228 },
1229 {
1230 "type" : "field",
1231 "value" : ["ipv4", "src_addr"]
1232 },
1233 {
1234 "type" : "field",
1235 "value" : ["ipv4", "dst_addr"]
1236 }
1237 ]
1238 },
1239 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001240 "name" : "calc_0",
1241 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001242 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001243 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001244 "line" : 243,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001245 "column" : 8,
1246 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1247 },
1248 "algo" : "csum16",
1249 "input" : [
1250 {
1251 "type" : "field",
1252 "value" : ["gtpu_ipv4", "version"]
1253 },
1254 {
1255 "type" : "field",
1256 "value" : ["gtpu_ipv4", "ihl"]
1257 },
1258 {
1259 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001260 "value" : ["gtpu_ipv4", "dscp"]
1261 },
1262 {
1263 "type" : "field",
1264 "value" : ["gtpu_ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001265 },
1266 {
1267 "type" : "field",
1268 "value" : ["gtpu_ipv4", "total_len"]
1269 },
1270 {
1271 "type" : "field",
1272 "value" : ["gtpu_ipv4", "identification"]
1273 },
1274 {
1275 "type" : "field",
1276 "value" : ["gtpu_ipv4", "flags"]
1277 },
1278 {
1279 "type" : "field",
1280 "value" : ["gtpu_ipv4", "frag_offset"]
1281 },
1282 {
1283 "type" : "field",
1284 "value" : ["gtpu_ipv4", "ttl"]
1285 },
1286 {
1287 "type" : "field",
1288 "value" : ["gtpu_ipv4", "protocol"]
1289 },
1290 {
1291 "type" : "field",
1292 "value" : ["gtpu_ipv4", "src_addr"]
1293 },
1294 {
1295 "type" : "field",
1296 "value" : ["gtpu_ipv4", "dst_addr"]
1297 }
1298 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001299 },
1300 {
1301 "name" : "calc_1",
1302 "id" : 2,
1303 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001304 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001305 "line" : 57,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001306 "column" : 8,
1307 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1308 },
1309 "algo" : "csum16",
1310 "input" : [
1311 {
1312 "type" : "field",
1313 "value" : ["ipv4", "version"]
1314 },
1315 {
1316 "type" : "field",
1317 "value" : ["ipv4", "ihl"]
1318 },
1319 {
1320 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001321 "value" : ["ipv4", "dscp"]
1322 },
1323 {
1324 "type" : "field",
1325 "value" : ["ipv4", "ecn"]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001326 },
1327 {
1328 "type" : "field",
1329 "value" : ["ipv4", "total_len"]
1330 },
1331 {
1332 "type" : "field",
1333 "value" : ["ipv4", "identification"]
1334 },
1335 {
1336 "type" : "field",
1337 "value" : ["ipv4", "flags"]
1338 },
1339 {
1340 "type" : "field",
1341 "value" : ["ipv4", "frag_offset"]
1342 },
1343 {
1344 "type" : "field",
1345 "value" : ["ipv4", "ttl"]
1346 },
1347 {
1348 "type" : "field",
1349 "value" : ["ipv4", "protocol"]
1350 },
1351 {
1352 "type" : "field",
1353 "value" : ["ipv4", "src_addr"]
1354 },
1355 {
1356 "type" : "field",
1357 "value" : ["ipv4", "dst_addr"]
1358 }
1359 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001360 }
1361 ],
1362 "learn_lists" : [],
1363 "actions" : [
1364 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001365 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001366 "id" : 0,
1367 "runtime_data" : [],
1368 "primitives" : []
1369 },
1370 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001371 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001372 "id" : 1,
1373 "runtime_data" : [],
1374 "primitives" : []
1375 },
1376 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001377 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001378 "id" : 2,
1379 "runtime_data" : [],
1380 "primitives" : []
1381 },
1382 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001383 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001384 "id" : 3,
1385 "runtime_data" : [],
1386 "primitives" : []
1387 },
1388 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001389 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001390 "id" : 4,
1391 "runtime_data" : [],
1392 "primitives" : []
1393 },
1394 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001395 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001396 "id" : 5,
1397 "runtime_data" : [],
1398 "primitives" : []
1399 },
1400 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001401 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001402 "id" : 6,
1403 "runtime_data" : [],
1404 "primitives" : []
1405 },
1406 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001407 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001408 "id" : 7,
1409 "runtime_data" : [],
1410 "primitives" : []
1411 },
1412 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001413 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001414 "id" : 8,
1415 "runtime_data" : [],
1416 "primitives" : []
1417 },
1418 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001419 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001420 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001421 "runtime_data" : [],
1422 "primitives" : [
1423 {
1424 "op" : "remove_header",
1425 "parameters" : [
1426 {
1427 "type" : "header",
1428 "value" : "gtpu_ipv4"
1429 }
1430 ],
1431 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001432 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001433 "line" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001434 "column" : 8,
1435 "source_fragment" : "gtpu_ipv4.setInvalid()"
1436 }
1437 },
1438 {
1439 "op" : "remove_header",
1440 "parameters" : [
1441 {
1442 "type" : "header",
1443 "value" : "gtpu_udp"
1444 }
1445 ],
1446 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001447 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001448 "line" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001449 "column" : 8,
1450 "source_fragment" : "gtpu_udp.setInvalid()"
1451 }
1452 },
1453 {
1454 "op" : "remove_header",
1455 "parameters" : [
1456 {
1457 "type" : "header",
1458 "value" : "gtpu"
1459 }
1460 ],
1461 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001462 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001463 "line" : 58,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001464 "column" : 8,
1465 "source_fragment" : "gtpu.setInvalid()"
1466 }
1467 }
1468 ]
1469 },
1470 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001471 "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001472 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001473 "runtime_data" : [
1474 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001475 "name" : "teid",
1476 "bitwidth" : 32
1477 },
1478 {
1479 "name" : "s1u_enb_addr",
1480 "bitwidth" : 32
1481 },
1482 {
1483 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001484 "bitwidth" : 32
1485 }
1486 ],
1487 "primitives" : [
1488 {
1489 "op" : "assign",
1490 "parameters" : [
1491 {
1492 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001493 "value" : ["scalars", "fabric_metadata_t._spgw_teid19"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001494 },
1495 {
1496 "type" : "runtime_data",
1497 "value" : 0
1498 }
1499 ],
1500 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001501 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001502 "line" : 64,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001503 "column" : 30,
1504 "source_fragment" : "= teid; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001505 }
1506 },
1507 {
1508 "op" : "assign",
1509 "parameters" : [
1510 {
1511 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001512 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr20"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001513 },
1514 {
1515 "type" : "runtime_data",
1516 "value" : 1
1517 }
1518 ],
1519 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001520 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001521 "line" : 65,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001522 "column" : 38,
1523 "source_fragment" : "= s1u_enb_addr; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001524 }
1525 },
1526 {
1527 "op" : "assign",
1528 "parameters" : [
1529 {
1530 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001531 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr21"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001532 },
1533 {
1534 "type" : "runtime_data",
1535 "value" : 2
1536 }
1537 ],
1538 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001539 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001540 "line" : 66,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001541 "column" : 38,
1542 "source_fragment" : "= s1u_sgw_addr; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001543 }
1544 }
1545 ]
1546 },
1547 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001548 "name" : "FabricIngress.filtering.deny",
1549 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001550 "runtime_data" : [],
1551 "primitives" : [
1552 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001553 "op" : "assign",
1554 "parameters" : [
1555 {
1556 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001557 "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001558 },
1559 {
1560 "type" : "expression",
1561 "value" : {
1562 "type" : "expression",
1563 "value" : {
1564 "op" : "b2d",
1565 "left" : null,
1566 "right" : {
1567 "type" : "bool",
1568 "value" : true
1569 }
1570 }
1571 }
1572 }
1573 ],
1574 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001575 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001576 "line" : 36,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001577 "column" : 40,
1578 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001579 }
1580 },
1581 {
1582 "op" : "assign",
1583 "parameters" : [
1584 {
1585 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001586 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001587 },
1588 {
1589 "type" : "expression",
1590 "value" : {
1591 "type" : "expression",
1592 "value" : {
1593 "op" : "b2d",
1594 "left" : null,
1595 "right" : {
1596 "type" : "bool",
1597 "value" : true
1598 }
1599 }
1600 }
1601 }
1602 ],
1603 "source_info" : {
1604 "filename" : "include/control/filtering.p4",
1605 "line" : 37,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001606 "column" : 34,
1607 "source_fragment" : "= true; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001608 }
1609 }
1610 ]
1611 },
1612 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001613 "name" : "FabricIngress.filtering.permit",
1614 "id" : 12,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001615 "runtime_data" : [],
1616 "primitives" : []
1617 },
1618 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001619 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
1620 "id" : 13,
1621 "runtime_data" : [
1622 {
1623 "name" : "vlan_id",
1624 "bitwidth" : 12
1625 }
1626 ],
1627 "primitives" : [
1628 {
1629 "op" : "assign",
1630 "parameters" : [
1631 {
1632 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001633 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001634 },
1635 {
1636 "type" : "runtime_data",
1637 "value" : 0
1638 }
1639 ],
1640 "source_info" : {
1641 "filename" : "include/control/filtering.p4",
1642 "line" : 47,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001643 "column" : 32,
1644 "source_fragment" : "= vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001645 }
1646 }
1647 ]
1648 },
1649 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001650 "name" : "FabricIngress.filtering.set_forwarding_type",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001651 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001652 "runtime_data" : [
1653 {
1654 "name" : "fwd_type",
1655 "bitwidth" : 3
1656 }
1657 ],
1658 "primitives" : [
1659 {
1660 "op" : "assign",
1661 "parameters" : [
1662 {
1663 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001664 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001665 },
1666 {
1667 "type" : "runtime_data",
1668 "value" : 0
1669 }
1670 ],
1671 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001672 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001673 "line" : 83,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001674 "column" : 33,
1675 "source_fragment" : "= fwd_type; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001676 }
1677 }
1678 ]
1679 },
1680 {
Yi Tseng47eac892018-07-11 02:17:04 +08001681 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001682 "id" : 15,
1683 "runtime_data" : [
1684 {
1685 "name" : "next_id",
1686 "bitwidth" : 32
1687 }
1688 ],
1689 "primitives" : [
1690 {
1691 "op" : "assign",
1692 "parameters" : [
1693 {
1694 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001695 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001696 },
1697 {
1698 "type" : "runtime_data",
1699 "value" : 0
1700 }
1701 ],
1702 "source_info" : {
1703 "filename" : "include/control/forwarding.p4",
1704 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001705 "column" : 32,
1706 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001707 }
1708 }
1709 ]
1710 },
1711 {
1712 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
1713 "id" : 16,
1714 "runtime_data" : [
1715 {
1716 "name" : "next_id",
1717 "bitwidth" : 32
1718 }
1719 ],
1720 "primitives" : [
1721 {
1722 "op" : "assign",
1723 "parameters" : [
1724 {
1725 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001726 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001727 },
1728 {
1729 "type" : "hexstr",
1730 "value" : "0x000000"
1731 }
1732 ],
1733 "source_info" : {
1734 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001735 "line" : 66,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001736 "column" : 35,
1737 "source_fragment" : "= 0; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001738 }
1739 },
1740 {
1741 "op" : "assign",
1742 "parameters" : [
1743 {
1744 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001745 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001746 },
1747 {
1748 "type" : "runtime_data",
1749 "value" : 0
1750 }
1751 ],
1752 "source_info" : {
1753 "filename" : "include/control/forwarding.p4",
1754 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001755 "column" : 32,
1756 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001757 }
1758 }
1759 ]
1760 },
1761 {
1762 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001763 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001764 "runtime_data" : [
1765 {
1766 "name" : "next_id",
1767 "bitwidth" : 32
1768 }
1769 ],
1770 "primitives" : [
1771 {
1772 "op" : "assign",
1773 "parameters" : [
1774 {
1775 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001776 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001777 },
1778 {
1779 "type" : "runtime_data",
1780 "value" : 0
1781 }
1782 ],
1783 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001784 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001785 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001786 "column" : 32,
1787 "source_fragment" : "= next_id; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001788 }
1789 }
1790 ]
1791 },
1792 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001793 "name" : "FabricIngress.forwarding.nop_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001794 "id" : 18,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001795 "runtime_data" : [],
1796 "primitives" : []
Yi Tseng47eac892018-07-11 02:17:04 +08001797 },
1798 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001799 "name" : "FabricIngress.acl.set_next_id_acl",
Charles Chancf696e52018-08-16 16:25:13 -07001800 "id" : 19,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001801 "runtime_data" : [
1802 {
1803 "name" : "next_id",
1804 "bitwidth" : 32
1805 }
1806 ],
1807 "primitives" : [
1808 {
1809 "op" : "assign",
1810 "parameters" : [
1811 {
1812 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001813 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08001814 },
1815 {
1816 "type" : "runtime_data",
1817 "value" : 0
1818 }
1819 ],
1820 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001821 "filename" : "include/control/acl.p4",
1822 "line" : 33,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001823 "column" : 32,
1824 "source_fragment" : "= next_id; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001825 }
1826 }
1827 ]
1828 },
1829 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001830 "name" : "FabricIngress.acl.punt_to_cpu",
Charles Chancf696e52018-08-16 16:25:13 -07001831 "id" : 20,
Charles Chancd03f072018-08-31 17:46:37 -07001832 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001833 "primitives" : [
1834 {
1835 "op" : "assign",
1836 "parameters" : [
1837 {
1838 "type" : "field",
1839 "value" : ["standard_metadata", "egress_spec"]
1840 },
1841 {
1842 "type" : "hexstr",
1843 "value" : "0x00ff"
1844 }
1845 ],
1846 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001847 "filename" : "include/control/acl.p4",
1848 "line" : 39,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001849 "column" : 8,
1850 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001851 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001852 },
1853 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001854 "op" : "assign",
1855 "parameters" : [
1856 {
1857 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001858 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001859 },
1860 {
1861 "type" : "expression",
1862 "value" : {
1863 "type" : "expression",
1864 "value" : {
1865 "op" : "b2d",
1866 "left" : null,
1867 "right" : {
1868 "type" : "bool",
1869 "value" : true
1870 }
1871 }
1872 }
1873 }
1874 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001875 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001876 "filename" : "include/control/acl.p4",
1877 "line" : 40,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001878 "column" : 34,
1879 "source_fragment" : "= true; ..."
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001880 }
1881 }
1882 ]
1883 },
1884 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001885 "name" : "FabricIngress.acl.clone_to_cpu",
1886 "id" : 21,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001887 "runtime_data" : [],
1888 "primitives" : [
1889 {
1890 "op" : "assign",
1891 "parameters" : [
1892 {
1893 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001894 "value" : ["scalars", "fabric_metadata_t._clone_to_cpu13"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001895 },
1896 {
1897 "type" : "expression",
1898 "value" : {
1899 "type" : "expression",
1900 "value" : {
1901 "op" : "b2d",
1902 "left" : null,
1903 "right" : {
1904 "type" : "bool",
1905 "value" : true
1906 }
1907 }
1908 }
1909 }
1910 ],
1911 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001912 "filename" : "include/control/acl.p4",
1913 "line" : 46,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001914 "column" : 37,
1915 "source_fragment" : "= true; ..."
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001916 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001917 }
1918 ]
1919 },
1920 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001921 "name" : "FabricIngress.acl.drop",
1922 "id" : 22,
Yi Tseng47eac892018-07-11 02:17:04 +08001923 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001924 "primitives" : [
1925 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001926 "op" : "mark_to_drop",
1927 "parameters" : [
1928 {
1929 "type" : "header",
1930 "value" : "standard_metadata"
1931 }
1932 ],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001933 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001934 "filename" : "include/control/acl.p4",
1935 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001936 "column" : 8,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001937 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001938 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001939 },
1940 {
1941 "op" : "assign",
1942 "parameters" : [
1943 {
1944 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001945 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001946 },
1947 {
1948 "type" : "expression",
1949 "value" : {
1950 "type" : "expression",
1951 "value" : {
1952 "op" : "b2d",
1953 "left" : null,
1954 "right" : {
1955 "type" : "bool",
1956 "value" : true
1957 }
1958 }
1959 }
1960 }
1961 ],
1962 "source_info" : {
1963 "filename" : "include/control/acl.p4",
1964 "line" : 52,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001965 "column" : 34,
1966 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001967 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001968 }
1969 ]
1970 },
1971 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001972 "name" : "FabricIngress.acl.nop_acl",
1973 "id" : 23,
Charles Chancf696e52018-08-16 16:25:13 -07001974 "runtime_data" : [],
1975 "primitives" : []
1976 },
1977 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001978 "name" : "FabricIngress.next.set_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001979 "id" : 24,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001980 "runtime_data" : [
1981 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001982 "name" : "vlan_id",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001983 "bitwidth" : 12
1984 }
1985 ],
1986 "primitives" : [
1987 {
1988 "op" : "assign",
1989 "parameters" : [
1990 {
1991 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001992 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001993 },
1994 {
1995 "type" : "runtime_data",
1996 "value" : 0
1997 }
1998 ],
1999 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002000 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002001 "line" : 70,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002002 "column" : 32,
2003 "source_fragment" : "= vlan_id; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002004 }
2005 }
2006 ]
2007 },
2008 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002009 "name" : "FabricIngress.next.output_xconnect",
2010 "id" : 25,
2011 "runtime_data" : [
2012 {
2013 "name" : "port_num",
2014 "bitwidth" : 9
2015 }
2016 ],
2017 "primitives" : [
2018 {
2019 "op" : "assign",
2020 "parameters" : [
2021 {
2022 "type" : "field",
2023 "value" : ["standard_metadata", "egress_spec"]
2024 },
2025 {
2026 "type" : "runtime_data",
2027 "value" : 0
2028 }
2029 ],
2030 "source_info" : {
2031 "filename" : "include/control/next.p4",
2032 "line" : 31,
2033 "column" : 5,
2034 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2035 }
2036 }
2037 ]
2038 },
2039 {
2040 "name" : "FabricIngress.next.set_next_id_xconnect",
2041 "id" : 26,
2042 "runtime_data" : [
2043 {
2044 "name" : "next_id",
2045 "bitwidth" : 32
2046 }
2047 ],
2048 "primitives" : [
2049 {
2050 "op" : "assign",
2051 "parameters" : [
2052 {
2053 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002054 "value" : ["scalars", "fabric_metadata_t._next_id10"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002055 },
2056 {
2057 "type" : "runtime_data",
2058 "value" : 0
2059 }
2060 ],
2061 "source_info" : {
2062 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002063 "line" : 100,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002064 "column" : 32,
2065 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002066 }
2067 }
2068 ]
2069 },
2070 {
2071 "name" : "FabricIngress.next.output_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002072 "id" : 27,
Yi Tseng47eac892018-07-11 02:17:04 +08002073 "runtime_data" : [
2074 {
2075 "name" : "port_num",
2076 "bitwidth" : 9
2077 }
2078 ],
2079 "primitives" : [
2080 {
2081 "op" : "assign",
2082 "parameters" : [
2083 {
2084 "type" : "field",
2085 "value" : ["standard_metadata", "egress_spec"]
2086 },
2087 {
2088 "type" : "runtime_data",
2089 "value" : 0
2090 }
2091 ],
2092 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002093 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002094 "line" : 31,
2095 "column" : 5,
2096 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng47eac892018-07-11 02:17:04 +08002097 }
2098 }
2099 ]
2100 },
2101 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002102 "name" : "FabricIngress.next.routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002103 "id" : 28,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002104 "runtime_data" : [
2105 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002106 "name" : "port_num",
2107 "bitwidth" : 9
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002108 },
2109 {
2110 "name" : "smac",
2111 "bitwidth" : 48
2112 },
2113 {
2114 "name" : "dmac",
2115 "bitwidth" : 48
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002116 }
2117 ],
2118 "primitives" : [
2119 {
2120 "op" : "assign",
2121 "parameters" : [
2122 {
2123 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002124 "value" : ["ethernet", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002125 },
2126 {
2127 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002128 "value" : 1
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002129 }
2130 ],
2131 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002132 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002133 "line" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002134 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002135 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2136 }
2137 },
2138 {
2139 "op" : "assign",
2140 "parameters" : [
2141 {
2142 "type" : "field",
2143 "value" : ["ethernet", "dst_addr"]
2144 },
2145 {
2146 "type" : "runtime_data",
2147 "value" : 2
2148 }
2149 ],
2150 "source_info" : {
2151 "filename" : "include/control/next.p4",
2152 "line" : 41,
2153 "column" : 8,
2154 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002155 }
2156 },
2157 {
2158 "op" : "assign",
2159 "parameters" : [
2160 {
2161 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002162 "value" : ["standard_metadata", "egress_spec"]
2163 },
2164 {
2165 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002166 "value" : 0
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002167 }
2168 ],
2169 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002170 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002171 "line" : 31,
2172 "column" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002173 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2174 }
2175 }
2176 ]
2177 },
2178 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002179 "name" : "FabricIngress.next.mpls_routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002180 "id" : 29,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002181 "runtime_data" : [
2182 {
2183 "name" : "port_num",
2184 "bitwidth" : 9
2185 },
2186 {
2187 "name" : "smac",
2188 "bitwidth" : 48
2189 },
2190 {
2191 "name" : "dmac",
2192 "bitwidth" : 48
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002193 },
2194 {
2195 "name" : "label",
2196 "bitwidth" : 20
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002197 }
2198 ],
2199 "primitives" : [
2200 {
2201 "op" : "assign",
2202 "parameters" : [
2203 {
2204 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002205 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002206 },
2207 {
2208 "type" : "runtime_data",
2209 "value" : 3
2210 }
2211 ],
2212 "source_info" : {
2213 "filename" : "include/control/next.p4",
2214 "line" : 46,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002215 "column" : 35,
2216 "source_fragment" : "= label; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002217 }
2218 },
2219 {
2220 "op" : "assign",
2221 "parameters" : [
2222 {
2223 "type" : "field",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002224 "value" : ["ethernet", "src_addr"]
2225 },
2226 {
2227 "type" : "runtime_data",
2228 "value" : 1
2229 }
2230 ],
2231 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002232 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002233 "line" : 36,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002234 "column" : 8,
2235 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2236 }
2237 },
2238 {
2239 "op" : "assign",
2240 "parameters" : [
2241 {
2242 "type" : "field",
2243 "value" : ["ethernet", "dst_addr"]
2244 },
2245 {
2246 "type" : "runtime_data",
2247 "value" : 2
2248 }
2249 ],
2250 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002251 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002252 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002253 "column" : 8,
2254 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2255 }
2256 },
2257 {
2258 "op" : "assign",
2259 "parameters" : [
2260 {
2261 "type" : "field",
2262 "value" : ["standard_metadata", "egress_spec"]
2263 },
2264 {
2265 "type" : "runtime_data",
2266 "value" : 0
2267 }
2268 ],
2269 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002270 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002271 "line" : 31,
2272 "column" : 5,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002273 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2274 }
2275 }
2276 ]
2277 },
2278 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002279 "name" : "FabricIngress.next.set_mcast_group_id",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002280 "id" : 30,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002281 "runtime_data" : [
2282 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002283 "name" : "group_id",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002284 "bitwidth" : 16
2285 }
2286 ],
2287 "primitives" : [
2288 {
2289 "op" : "assign",
2290 "parameters" : [
2291 {
2292 "type" : "field",
2293 "value" : ["standard_metadata", "mcast_grp"]
2294 },
2295 {
2296 "type" : "runtime_data",
2297 "value" : 0
2298 }
2299 ],
2300 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002301 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002302 "line" : 213,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002303 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002304 "source_fragment" : "standard_metadata.mcast_grp = group_id"
Esin Karaman971fb7f2017-12-28 13:44:52 +00002305 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002306 },
2307 {
2308 "op" : "assign",
2309 "parameters" : [
2310 {
2311 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002312 "value" : ["scalars", "fabric_metadata_t._is_multicast11"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002313 },
2314 {
2315 "type" : "expression",
2316 "value" : {
2317 "type" : "expression",
2318 "value" : {
2319 "op" : "b2d",
2320 "left" : null,
2321 "right" : {
2322 "type" : "bool",
2323 "value" : true
2324 }
2325 }
2326 }
2327 }
2328 ],
2329 "source_info" : {
2330 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002331 "line" : 214,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002332 "column" : 37,
2333 "source_fragment" : "= true; ..."
Carmelo Casconea5400af2018-07-17 22:11:54 +02002334 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002335 }
2336 ]
2337 },
2338 {
2339 "name" : "act",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002340 "id" : 31,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002341 "runtime_data" : [],
2342 "primitives" : [
2343 {
2344 "op" : "assign",
2345 "parameters" : [
2346 {
2347 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002348 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002349 },
2350 {
2351 "type" : "expression",
2352 "value" : {
2353 "type" : "expression",
2354 "value" : {
2355 "op" : "b2d",
2356 "left" : null,
2357 "right" : {
2358 "type" : "bool",
2359 "value" : true
2360 }
2361 }
2362 }
2363 }
2364 ],
2365 "source_info" : {
2366 "filename" : "include/spgw.p4",
2367 "line" : 30,
2368 "column" : 32,
2369 "source_fragment" : "return"
2370 }
2371 }
2372 ]
2373 },
2374 {
2375 "name" : "act_0",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002376 "id" : 32,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002377 "runtime_data" : [],
2378 "primitives" : [
2379 {
2380 "op" : "remove_header",
2381 "parameters" : [
2382 {
2383 "type" : "header",
2384 "value" : "gtpu_ipv4"
2385 }
2386 ],
2387 "source_info" : {
2388 "filename" : "fabric.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002389 "line" : 58,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002390 "column" : 50,
2391 "source_fragment" : "hdr.gtpu_ipv4"
2392 }
2393 },
2394 {
2395 "op" : "remove_header",
2396 "parameters" : [
2397 {
2398 "type" : "header",
2399 "value" : "gtpu_udp"
2400 }
2401 ],
2402 "source_info" : {
2403 "filename" : "fabric.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002404 "line" : 58,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002405 "column" : 65,
2406 "source_fragment" : "hdr.gtpu_udp"
2407 }
2408 },
2409 {
2410 "op" : "assign",
2411 "parameters" : [
2412 {
2413 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002414 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002415 },
2416 {
2417 "type" : "expression",
2418 "value" : {
2419 "type" : "expression",
2420 "value" : {
2421 "op" : "b2d",
2422 "left" : null,
2423 "right" : {
2424 "type" : "bool",
2425 "value" : false
2426 }
2427 }
2428 }
2429 }
2430 ]
2431 }
2432 ]
2433 },
2434 {
2435 "name" : "act_1",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002436 "id" : 33,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002437 "runtime_data" : [],
2438 "primitives" : [
2439 {
2440 "op" : "assign_header",
2441 "parameters" : [
2442 {
2443 "type" : "header",
2444 "value" : "udp"
2445 },
2446 {
2447 "type" : "header",
2448 "value" : "inner_udp"
2449 }
2450 ],
2451 "source_info" : {
2452 "filename" : "include/spgw.p4",
2453 "line" : 35,
2454 "column" : 16,
2455 "source_fragment" : "= inner_udp; ..."
2456 }
2457 }
2458 ]
2459 },
2460 {
2461 "name" : "act_2",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002462 "id" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002463 "runtime_data" : [],
2464 "primitives" : [
2465 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002466 "op" : "remove_header",
2467 "parameters" : [
2468 {
2469 "type" : "header",
2470 "value" : "udp"
2471 }
2472 ],
2473 "source_info" : {
2474 "filename" : "include/spgw.p4",
2475 "line" : 37,
2476 "column" : 12,
2477 "source_fragment" : "udp.setInvalid()"
2478 }
2479 }
2480 ]
2481 },
2482 {
2483 "name" : "act_3",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002484 "id" : 35,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002485 "runtime_data" : [],
2486 "primitives" : [
2487 {
2488 "op" : "assign_header",
2489 "parameters" : [
2490 {
2491 "type" : "header",
2492 "value" : "gtpu_ipv4"
2493 },
2494 {
2495 "type" : "header",
2496 "value" : "ipv4"
2497 }
2498 ],
2499 "source_info" : {
2500 "filename" : "include/spgw.p4",
2501 "line" : 31,
2502 "column" : 18,
2503 "source_fragment" : "= ipv4; ..."
2504 }
2505 },
2506 {
2507 "op" : "assign_header",
2508 "parameters" : [
2509 {
2510 "type" : "header",
2511 "value" : "ipv4"
2512 },
2513 {
2514 "type" : "header",
2515 "value" : "inner_ipv4"
2516 }
2517 ],
2518 "source_info" : {
2519 "filename" : "include/spgw.p4",
2520 "line" : 32,
2521 "column" : 13,
2522 "source_fragment" : "= inner_ipv4; ..."
2523 }
2524 },
2525 {
2526 "op" : "assign_header",
2527 "parameters" : [
2528 {
2529 "type" : "header",
2530 "value" : "gtpu_udp"
2531 },
2532 {
2533 "type" : "header",
2534 "value" : "udp"
2535 }
2536 ],
2537 "source_info" : {
2538 "filename" : "include/spgw.p4",
2539 "line" : 33,
2540 "column" : 17,
2541 "source_fragment" : "= udp; ..."
2542 }
2543 }
2544 ]
2545 },
2546 {
2547 "name" : "act_4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002548 "id" : 36,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002549 "runtime_data" : [],
2550 "primitives" : [
2551 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002552 "op" : "assign",
2553 "parameters" : [
2554 {
2555 "type" : "field",
2556 "value" : ["standard_metadata", "egress_spec"]
2557 },
2558 {
2559 "type" : "field",
2560 "value" : ["packet_out", "egress_port"]
2561 }
2562 ],
2563 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002564 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002565 "line" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002566 "column" : 12,
2567 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2568 }
2569 },
2570 {
2571 "op" : "remove_header",
2572 "parameters" : [
2573 {
2574 "type" : "header",
2575 "value" : "packet_out"
2576 }
2577 ],
2578 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002579 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002580 "line" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002581 "column" : 12,
2582 "source_fragment" : "hdr.packet_out.setInvalid()"
2583 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002584 },
2585 {
2586 "op" : "assign",
2587 "parameters" : [
2588 {
2589 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002590 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out12"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002591 },
2592 {
2593 "type" : "expression",
2594 "value" : {
2595 "type" : "expression",
2596 "value" : {
2597 "op" : "b2d",
2598 "left" : null,
2599 "right" : {
2600 "type" : "bool",
2601 "value" : true
2602 }
2603 }
2604 }
2605 }
2606 ],
2607 "source_info" : {
2608 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002609 "line" : 27,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002610 "column" : 53,
2611 "source_fragment" : "= true; ..."
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002612 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002613 },
2614 {
2615 "op" : "exit",
2616 "parameters" : [],
2617 "source_info" : {
2618 "filename" : "include/control/packetio.p4",
2619 "line" : 29,
2620 "column" : 12,
2621 "source_fragment" : "exit"
2622 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002623 }
2624 ]
2625 },
2626 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002627 "name" : "act_5",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002628 "id" : 37,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002629 "runtime_data" : [],
2630 "primitives" : [
2631 {
2632 "op" : "assign",
2633 "parameters" : [
2634 {
2635 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002636 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002637 },
2638 {
2639 "type" : "field",
2640 "value" : ["vlan_tag", "eth_type"]
2641 }
2642 ],
2643 "source_info" : {
2644 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002645 "line" : 105,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002646 "column" : 37,
2647 "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002648 }
2649 },
2650 {
2651 "op" : "assign",
2652 "parameters" : [
2653 {
2654 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002655 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002656 },
2657 {
2658 "type" : "field",
2659 "value" : ["vlan_tag", "vlan_id"]
2660 }
2661 ],
2662 "source_info" : {
2663 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002664 "line" : 106,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002665 "column" : 36,
2666 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002667 }
2668 },
2669 {
2670 "op" : "assign",
2671 "parameters" : [
2672 {
2673 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002674 "value" : ["scalars", "fabric_metadata_t._vlan_pri3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002675 },
2676 {
2677 "type" : "field",
2678 "value" : ["vlan_tag", "pri"]
2679 }
2680 ],
2681 "source_info" : {
2682 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002683 "line" : 107,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002684 "column" : 37,
2685 "source_fragment" : "= hdr.vlan_tag.pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002686 }
2687 },
2688 {
2689 "op" : "assign",
2690 "parameters" : [
2691 {
2692 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002693 "value" : ["scalars", "fabric_metadata_t._vlan_cfi4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002694 },
2695 {
2696 "type" : "field",
2697 "value" : ["vlan_tag", "cfi"]
2698 }
2699 ],
2700 "source_info" : {
2701 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002702 "line" : 108,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002703 "column" : 37,
2704 "source_fragment" : "= hdr.vlan_tag.cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002705 }
2706 }
2707 ]
2708 },
2709 {
2710 "name" : "act_6",
2711 "id" : 38,
2712 "runtime_data" : [],
2713 "primitives" : [
2714 {
2715 "op" : "assign",
2716 "parameters" : [
2717 {
2718 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002719 "value" : ["scalars", "fabric_metadata_t._mpls_ttl6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002720 },
2721 {
2722 "type" : "hexstr",
2723 "value" : "0x41"
2724 }
2725 ],
2726 "source_info" : {
2727 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002728 "line" : 115,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002729 "column" : 37,
2730 "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002731 }
2732 }
2733 ]
2734 },
2735 {
2736 "name" : "act_7",
2737 "id" : 39,
2738 "runtime_data" : [],
2739 "primitives" : [
2740 {
2741 "op" : "assign",
2742 "parameters" : [
2743 {
2744 "type" : "field",
2745 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002746 },
2747 {
2748 "type" : "expression",
2749 "value" : {
2750 "type" : "expression",
2751 "value" : {
2752 "op" : "b2d",
2753 "left" : null,
2754 "right" : {
2755 "type" : "bool",
2756 "value" : true
2757 }
2758 }
2759 }
2760 }
2761 ]
2762 }
2763 ]
2764 },
2765 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002766 "name" : "act_8",
2767 "id" : 40,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002768 "runtime_data" : [],
2769 "primitives" : [
2770 {
2771 "op" : "assign",
2772 "parameters" : [
2773 {
2774 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002775 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002776 },
2777 {
2778 "type" : "expression",
2779 "value" : {
2780 "type" : "expression",
2781 "value" : {
2782 "op" : "b2d",
2783 "left" : null,
2784 "right" : {
2785 "type" : "bool",
2786 "value" : false
2787 }
2788 }
2789 }
2790 }
2791 ]
2792 }
2793 ]
2794 },
2795 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002796 "name" : "act_9",
2797 "id" : 41,
2798 "runtime_data" : [],
2799 "primitives" : [
2800 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002801 "op" : "mark_to_drop",
2802 "parameters" : [
2803 {
2804 "type" : "header",
2805 "value" : "standard_metadata"
2806 }
2807 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002808 "source_info" : {
2809 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002810 "line" : 149,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002811 "column" : 16,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002812 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002813 }
2814 }
2815 ]
2816 },
2817 {
2818 "name" : "act_10",
2819 "id" : 42,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002820 "runtime_data" : [],
2821 "primitives" : [
2822 {
2823 "op" : "assign",
2824 "parameters" : [
2825 {
2826 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002827 "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002828 },
2829 {
2830 "type" : "hexstr",
2831 "value" : "0x01"
2832 }
2833 ],
2834 "source_info" : {
2835 "filename" : "include/control/../define.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002836 "line" : 137,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002837 "column" : 36,
2838 "source_fragment" : "2w1; ..."
2839 }
2840 }
2841 ]
2842 },
2843 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002844 "name" : "act_11",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002845 "id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002846 "runtime_data" : [],
2847 "primitives" : [
2848 {
2849 "op" : "assign",
2850 "parameters" : [
2851 {
2852 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002853 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002854 },
2855 {
2856 "type" : "expression",
2857 "value" : {
2858 "type" : "expression",
2859 "value" : {
2860 "op" : "b2d",
2861 "left" : null,
2862 "right" : {
2863 "type" : "bool",
2864 "value" : true
2865 }
2866 }
2867 }
2868 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002869 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002870 }
2871 ]
2872 },
2873 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002874 "name" : "act_12",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002875 "id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002876 "runtime_data" : [],
2877 "primitives" : [
2878 {
2879 "op" : "assign",
2880 "parameters" : [
2881 {
2882 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002883 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002884 },
2885 {
2886 "type" : "expression",
2887 "value" : {
2888 "type" : "expression",
2889 "value" : {
2890 "op" : "b2d",
2891 "left" : null,
2892 "right" : {
2893 "type" : "bool",
2894 "value" : false
2895 }
2896 }
2897 }
2898 }
2899 ]
2900 }
2901 ]
2902 },
2903 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002904 "name" : "act_13",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002905 "id" : 45,
Yi Tseng27b9bc02018-04-12 14:52:40 +08002906 "runtime_data" : [],
2907 "primitives" : [
2908 {
2909 "op" : "assign",
2910 "parameters" : [
2911 {
2912 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002913 "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08002914 },
2915 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002916 "type" : "hexstr",
2917 "value" : "0x02"
Yi Tseng27b9bc02018-04-12 14:52:40 +08002918 }
2919 ],
2920 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002921 "filename" : "include/control/../define.p4",
2922 "line" : 138,
2923 "column" : 38,
2924 "source_fragment" : "2w2; ..."
Yi Tseng27b9bc02018-04-12 14:52:40 +08002925 }
2926 }
2927 ]
2928 },
2929 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002930 "name" : "act_14",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002931 "id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002932 "runtime_data" : [],
2933 "primitives" : [
2934 {
2935 "op" : "assign",
2936 "parameters" : [
2937 {
2938 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002939 "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002940 },
2941 {
2942 "type" : "hexstr",
2943 "value" : "0x00"
2944 }
2945 ],
2946 "source_info" : {
2947 "filename" : "include/control/../define.p4",
2948 "line" : 136,
2949 "column" : 37,
2950 "source_fragment" : "2w0; ..."
2951 }
2952 },
2953 {
2954 "op" : "assign",
2955 "parameters" : [
2956 {
2957 "type" : "field",
2958 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002959 },
2960 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002961 "type" : "expression",
2962 "value" : {
2963 "type" : "expression",
2964 "value" : {
2965 "op" : "b2d",
2966 "left" : null,
2967 "right" : {
2968 "type" : "bool",
2969 "value" : true
2970 }
2971 }
2972 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002973 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002974 ],
2975 "source_info" : {
2976 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002977 "line" : 158,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002978 "column" : 12,
2979 "source_fragment" : "return"
2980 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002981 }
2982 ]
2983 },
2984 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002985 "name" : "act_15",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002986 "id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002987 "runtime_data" : [],
2988 "primitives" : [
2989 {
2990 "op" : "assign",
2991 "parameters" : [
2992 {
2993 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002994 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002995 },
2996 {
2997 "type" : "expression",
2998 "value" : {
2999 "type" : "expression",
3000 "value" : {
3001 "op" : "b2d",
3002 "left" : null,
3003 "right" : {
3004 "type" : "bool",
3005 "value" : false
3006 }
3007 }
3008 }
3009 }
3010 ]
3011 }
3012 ]
3013 },
3014 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003015 "name" : "act_16",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003016 "id" : 48,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003017 "runtime_data" : [],
3018 "primitives" : [
3019 {
3020 "op" : "assign",
3021 "parameters" : [
3022 {
3023 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003024 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len18"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003025 },
3026 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003027 "type" : "field",
3028 "value" : ["ipv4", "total_len"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003029 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003030 ],
3031 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003032 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003033 "line" : 175,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003034 "column" : 34,
3035 "source_fragment" : "= ipv4.total_len; ..."
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003036 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003037 }
3038 ]
3039 },
3040 {
3041 "name" : "act_17",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003042 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003043 "runtime_data" : [],
3044 "primitives" : [
3045 {
3046 "op" : "assign",
3047 "parameters" : [
3048 {
3049 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003050 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003051 },
3052 {
3053 "type" : "expression",
3054 "value" : {
3055 "type" : "expression",
3056 "value" : {
3057 "op" : "&",
3058 "left" : {
3059 "type" : "field",
3060 "value" : ["standard_metadata", "egress_spec"]
3061 },
3062 "right" : {
3063 "type" : "hexstr",
3064 "value" : "0xffffffff"
3065 }
3066 }
3067 }
3068 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003069 ],
3070 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003071 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003072 "line" : 31,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003073 "column" : 38,
3074 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3075 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003076 },
3077 {
3078 "op" : "count",
3079 "parameters" : [
3080 {
3081 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003082 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003083 },
3084 {
3085 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003086 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003087 }
3088 ],
3089 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003090 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003091 "line" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003092 "column" : 12,
3093 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3094 }
3095 }
3096 ]
3097 },
3098 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003099 "name" : "act_18",
3100 "id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003101 "runtime_data" : [],
3102 "primitives" : [
3103 {
3104 "op" : "assign",
3105 "parameters" : [
3106 {
3107 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003108 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003109 },
3110 {
3111 "type" : "expression",
3112 "value" : {
3113 "type" : "expression",
3114 "value" : {
3115 "op" : "&",
3116 "left" : {
3117 "type" : "field",
3118 "value" : ["standard_metadata", "ingress_port"]
3119 },
3120 "right" : {
3121 "type" : "hexstr",
3122 "value" : "0xffffffff"
3123 }
3124 }
3125 }
3126 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003127 ],
3128 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003129 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003130 "line" : 34,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003131 "column" : 39,
3132 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3133 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003134 },
3135 {
3136 "op" : "count",
3137 "parameters" : [
3138 {
3139 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003140 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003141 },
3142 {
3143 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003144 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003145 }
3146 ],
3147 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003148 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003149 "line" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003150 "column" : 12,
3151 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3152 }
3153 }
3154 ]
3155 },
3156 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003157 "name" : "nop",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003158 "id" : 51,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003159 "runtime_data" : [],
Charles Chancd03f072018-08-31 17:46:37 -07003160 "primitives" : []
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003161 },
3162 {
Charles Chancd03f072018-08-31 17:46:37 -07003163 "name" : "FabricEgress.spgw_egress.gtpu_encap",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003164 "id" : 52,
Charles Chancd03f072018-08-31 17:46:37 -07003165 "runtime_data" : [],
3166 "primitives" : [
3167 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003168 "op" : "add_header",
3169 "parameters" : [
3170 {
3171 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003172 "value" : "gtpu_ipv4"
3173 }
3174 ],
3175 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003176 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003177 "line" : 191,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003178 "column" : 8,
3179 "source_fragment" : "gtpu_ipv4.setValid()"
3180 }
3181 },
3182 {
3183 "op" : "assign",
3184 "parameters" : [
3185 {
3186 "type" : "field",
3187 "value" : ["gtpu_ipv4", "version"]
3188 },
3189 {
3190 "type" : "hexstr",
3191 "value" : "0x04"
3192 }
3193 ],
3194 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003195 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003196 "line" : 192,
Yi Tseng3d3956d2018-01-31 17:28:05 -08003197 "column" : 8,
3198 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003199 }
3200 },
3201 {
3202 "op" : "assign",
3203 "parameters" : [
3204 {
3205 "type" : "field",
3206 "value" : ["gtpu_ipv4", "ihl"]
3207 },
3208 {
3209 "type" : "hexstr",
3210 "value" : "0x05"
3211 }
3212 ],
3213 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003214 "filename" : "include/control/../define.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003215 "line" : 119,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003216 "column" : 28,
3217 "source_fragment" : "5; ..."
3218 }
3219 },
3220 {
3221 "op" : "assign",
3222 "parameters" : [
3223 {
3224 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003225 "value" : ["gtpu_ipv4", "dscp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003226 },
3227 {
3228 "type" : "hexstr",
3229 "value" : "0x00"
3230 }
3231 ],
3232 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003233 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003234 "line" : 194,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003235 "column" : 8,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003236 "source_fragment" : "gtpu_ipv4.dscp = 0"
3237 }
3238 },
3239 {
3240 "op" : "assign",
3241 "parameters" : [
3242 {
3243 "type" : "field",
3244 "value" : ["gtpu_ipv4", "ecn"]
3245 },
3246 {
3247 "type" : "hexstr",
3248 "value" : "0x00"
3249 }
3250 ],
3251 "source_info" : {
3252 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003253 "line" : 195,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003254 "column" : 8,
3255 "source_fragment" : "gtpu_ipv4.ecn = 0"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003256 }
3257 },
3258 {
3259 "op" : "assign",
3260 "parameters" : [
3261 {
3262 "type" : "field",
3263 "value" : ["gtpu_ipv4", "total_len"]
3264 },
3265 {
3266 "type" : "expression",
3267 "value" : {
3268 "type" : "expression",
3269 "value" : {
3270 "op" : "&",
3271 "left" : {
3272 "type" : "expression",
3273 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003274 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003275 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003276 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003277 "value" : ["ipv4", "total_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003278 },
3279 "right" : {
3280 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003281 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003282 }
3283 }
3284 },
3285 "right" : {
3286 "type" : "hexstr",
3287 "value" : "0xffff"
3288 }
3289 }
3290 }
3291 }
3292 ],
3293 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003294 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003295 "line" : 196,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003296 "column" : 8,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003297 "source_fragment" : "gtpu_ipv4.total_len = ipv4.total_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003298 }
3299 },
3300 {
3301 "op" : "assign",
3302 "parameters" : [
3303 {
3304 "type" : "field",
3305 "value" : ["gtpu_ipv4", "identification"]
3306 },
3307 {
3308 "type" : "hexstr",
3309 "value" : "0x1513"
3310 }
3311 ],
3312 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003313 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003314 "line" : 198,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003315 "column" : 8,
3316 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
3317 }
3318 },
3319 {
3320 "op" : "assign",
3321 "parameters" : [
3322 {
3323 "type" : "field",
3324 "value" : ["gtpu_ipv4", "flags"]
3325 },
3326 {
3327 "type" : "hexstr",
3328 "value" : "0x00"
3329 }
3330 ],
3331 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003332 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003333 "line" : 199,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003334 "column" : 8,
3335 "source_fragment" : "gtpu_ipv4.flags = 0"
3336 }
3337 },
3338 {
3339 "op" : "assign",
3340 "parameters" : [
3341 {
3342 "type" : "field",
3343 "value" : ["gtpu_ipv4", "frag_offset"]
3344 },
3345 {
3346 "type" : "hexstr",
3347 "value" : "0x0000"
3348 }
3349 ],
3350 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003351 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003352 "line" : 200,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003353 "column" : 8,
3354 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
3355 }
3356 },
3357 {
3358 "op" : "assign",
3359 "parameters" : [
3360 {
3361 "type" : "field",
3362 "value" : ["gtpu_ipv4", "ttl"]
3363 },
3364 {
3365 "type" : "hexstr",
3366 "value" : "0x40"
3367 }
3368 ],
3369 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003370 "filename" : "include/control/../define.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003371 "line" : 132,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003372 "column" : 32,
3373 "source_fragment" : "64; ..."
3374 }
3375 },
3376 {
3377 "op" : "assign",
3378 "parameters" : [
3379 {
3380 "type" : "field",
3381 "value" : ["gtpu_ipv4", "protocol"]
3382 },
3383 {
3384 "type" : "hexstr",
3385 "value" : "0x11"
3386 }
3387 ],
3388 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003389 "filename" : "include/control/../define.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003390 "line" : 116,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003391 "column" : 25,
3392 "source_fragment" : "17; ..."
3393 }
3394 },
3395 {
3396 "op" : "assign",
3397 "parameters" : [
3398 {
3399 "type" : "field",
3400 "value" : ["gtpu_ipv4", "dst_addr"]
3401 },
3402 {
3403 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003404 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr20"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003405 }
3406 ],
3407 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003408 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003409 "line" : 203,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003410 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003411 "source_fragment" : "gtpu_ipv4.dst_addr = fabric_meta.spgw.s1u_enb_addr; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003412 }
3413 },
3414 {
3415 "op" : "assign",
3416 "parameters" : [
3417 {
3418 "type" : "field",
3419 "value" : ["gtpu_ipv4", "src_addr"]
3420 },
3421 {
3422 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003423 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr21"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003424 }
3425 ],
3426 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003427 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003428 "line" : 204,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003429 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003430 "source_fragment" : "gtpu_ipv4.src_addr = fabric_meta.spgw.s1u_sgw_addr; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003431 }
3432 },
3433 {
3434 "op" : "assign",
3435 "parameters" : [
3436 {
3437 "type" : "field",
3438 "value" : ["gtpu_ipv4", "hdr_checksum"]
3439 },
3440 {
3441 "type" : "hexstr",
3442 "value" : "0x0000"
3443 }
3444 ],
3445 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003446 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003447 "line" : 205,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003448 "column" : 8,
3449 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
3450 }
3451 },
3452 {
3453 "op" : "add_header",
3454 "parameters" : [
3455 {
3456 "type" : "header",
3457 "value" : "gtpu_udp"
3458 }
3459 ],
3460 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003461 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003462 "line" : 207,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003463 "column" : 8,
3464 "source_fragment" : "gtpu_udp.setValid()"
3465 }
3466 },
3467 {
3468 "op" : "assign",
3469 "parameters" : [
3470 {
3471 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003472 "value" : ["gtpu_udp", "sport"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003473 },
3474 {
3475 "type" : "hexstr",
3476 "value" : "0x0868"
3477 }
3478 ],
3479 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003480 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003481 "line" : 208,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003482 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003483 "source_fragment" : "gtpu_udp.sport = 2152"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003484 }
3485 },
3486 {
3487 "op" : "assign",
3488 "parameters" : [
3489 {
3490 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003491 "value" : ["gtpu_udp", "dport"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003492 },
3493 {
3494 "type" : "hexstr",
3495 "value" : "0x0868"
3496 }
3497 ],
3498 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003499 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003500 "line" : 209,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003501 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003502 "source_fragment" : "gtpu_udp.dport = 2152"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003503 }
3504 },
3505 {
3506 "op" : "assign",
3507 "parameters" : [
3508 {
3509 "type" : "field",
3510 "value" : ["gtpu_udp", "len"]
3511 },
3512 {
3513 "type" : "expression",
3514 "value" : {
3515 "type" : "expression",
3516 "value" : {
3517 "op" : "&",
3518 "left" : {
3519 "type" : "expression",
3520 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003521 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003522 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003523 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003524 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len18"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003525 },
3526 "right" : {
3527 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003528 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003529 }
3530 }
3531 },
3532 "right" : {
3533 "type" : "hexstr",
3534 "value" : "0xffff"
3535 }
3536 }
3537 }
3538 }
3539 ],
3540 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003541 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003542 "line" : 210,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003543 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003544 "source_fragment" : "gtpu_udp.len = fabric_meta.spgw.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003545 }
3546 },
3547 {
3548 "op" : "assign",
3549 "parameters" : [
3550 {
3551 "type" : "field",
3552 "value" : ["gtpu_udp", "checksum"]
3553 },
3554 {
3555 "type" : "hexstr",
3556 "value" : "0x0000"
3557 }
3558 ],
3559 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003560 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003561 "line" : 212,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003562 "column" : 8,
3563 "source_fragment" : "gtpu_udp.checksum = 0"
3564 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08003565 },
3566 {
3567 "op" : "add_header",
3568 "parameters" : [
3569 {
3570 "type" : "header",
3571 "value" : "gtpu"
3572 }
3573 ],
3574 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003575 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003576 "line" : 214,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003577 "column" : 8,
3578 "source_fragment" : "gtpu.setValid()"
3579 }
3580 },
3581 {
3582 "op" : "assign",
3583 "parameters" : [
3584 {
3585 "type" : "field",
3586 "value" : ["gtpu", "version"]
3587 },
3588 {
3589 "type" : "hexstr",
3590 "value" : "0x01"
3591 }
3592 ],
3593 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003594 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003595 "line" : 215,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003596 "column" : 8,
3597 "source_fragment" : "gtpu.version = 0x01"
3598 }
3599 },
3600 {
3601 "op" : "assign",
3602 "parameters" : [
3603 {
3604 "type" : "field",
3605 "value" : ["gtpu", "pt"]
3606 },
3607 {
3608 "type" : "hexstr",
3609 "value" : "0x01"
3610 }
3611 ],
3612 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003613 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003614 "line" : 216,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003615 "column" : 8,
3616 "source_fragment" : "gtpu.pt = 0x01"
3617 }
3618 },
3619 {
3620 "op" : "assign",
3621 "parameters" : [
3622 {
3623 "type" : "field",
3624 "value" : ["gtpu", "spare"]
3625 },
3626 {
3627 "type" : "hexstr",
3628 "value" : "0x00"
3629 }
3630 ],
3631 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003632 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003633 "line" : 217,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003634 "column" : 8,
3635 "source_fragment" : "gtpu.spare = 0"
3636 }
3637 },
3638 {
3639 "op" : "assign",
3640 "parameters" : [
3641 {
3642 "type" : "field",
3643 "value" : ["gtpu", "ex_flag"]
3644 },
3645 {
3646 "type" : "hexstr",
3647 "value" : "0x00"
3648 }
3649 ],
3650 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003651 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003652 "line" : 218,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003653 "column" : 8,
3654 "source_fragment" : "gtpu.ex_flag = 0"
3655 }
3656 },
3657 {
3658 "op" : "assign",
3659 "parameters" : [
3660 {
3661 "type" : "field",
3662 "value" : ["gtpu", "seq_flag"]
3663 },
3664 {
3665 "type" : "hexstr",
3666 "value" : "0x00"
3667 }
3668 ],
3669 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003670 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003671 "line" : 219,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003672 "column" : 8,
3673 "source_fragment" : "gtpu.seq_flag = 0"
3674 }
3675 },
3676 {
3677 "op" : "assign",
3678 "parameters" : [
3679 {
3680 "type" : "field",
3681 "value" : ["gtpu", "npdu_flag"]
3682 },
3683 {
3684 "type" : "hexstr",
3685 "value" : "0x00"
3686 }
3687 ],
3688 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003689 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003690 "line" : 220,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003691 "column" : 8,
3692 "source_fragment" : "gtpu.npdu_flag = 0"
3693 }
3694 },
3695 {
3696 "op" : "assign",
3697 "parameters" : [
3698 {
3699 "type" : "field",
3700 "value" : ["gtpu", "msgtype"]
3701 },
3702 {
3703 "type" : "hexstr",
3704 "value" : "0xff"
3705 }
3706 ],
3707 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003708 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003709 "line" : 221,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003710 "column" : 8,
3711 "source_fragment" : "gtpu.msgtype = 0xff"
3712 }
3713 },
3714 {
3715 "op" : "assign",
3716 "parameters" : [
3717 {
3718 "type" : "field",
3719 "value" : ["gtpu", "msglen"]
3720 },
3721 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003722 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003723 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len18"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003724 }
3725 ],
3726 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003727 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003728 "line" : 222,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003729 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003730 "source_fragment" : "gtpu.msglen = fabric_meta.spgw.ipv4_len; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003731 }
3732 },
3733 {
3734 "op" : "assign",
3735 "parameters" : [
3736 {
3737 "type" : "field",
3738 "value" : ["gtpu", "teid"]
3739 },
3740 {
3741 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003742 "value" : ["scalars", "fabric_metadata_t._spgw_teid19"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003743 }
3744 ],
3745 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003746 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003747 "line" : 223,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003748 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003749 "source_fragment" : "gtpu.teid = fabric_meta.spgw.teid; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003750 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003751 }
3752 ]
3753 },
3754 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003755 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
3756 "id" : 53,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003757 "runtime_data" : [],
3758 "primitives" : [
3759 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003760 "op" : "remove_header",
3761 "parameters" : [
3762 {
3763 "type" : "header",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003764 "value" : "mpls"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003765 }
3766 ],
3767 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003768 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003769 "line" : 252,
Yi Tseng47eac892018-07-11 02:17:04 +08003770 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003771 "source_fragment" : "hdr.mpls.setInvalid()"
Yi Tseng47eac892018-07-11 02:17:04 +08003772 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003773 },
Yi Tseng47eac892018-07-11 02:17:04 +08003774 {
3775 "op" : "assign",
3776 "parameters" : [
3777 {
3778 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003779 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Yi Tseng47eac892018-07-11 02:17:04 +08003780 },
3781 {
3782 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003783 "value" : ["scalars", "fabric_metadata_t._ip_eth_type1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003784 }
3785 ],
3786 "source_info" : {
3787 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003788 "line" : 254,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003789 "column" : 33,
3790 "source_fragment" : "= fabric_metadata.ip_eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003791 }
3792 }
3793 ]
3794 },
3795 {
3796 "name" : "FabricEgress.egress_next.set_mpls",
3797 "id" : 54,
3798 "runtime_data" : [],
3799 "primitives" : [
3800 {
3801 "op" : "add_header",
3802 "parameters" : [
3803 {
3804 "type" : "header",
3805 "value" : "mpls"
Yi Tseng47eac892018-07-11 02:17:04 +08003806 }
3807 ],
3808 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003809 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003810 "line" : 259,
Yi Tseng47eac892018-07-11 02:17:04 +08003811 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003812 "source_fragment" : "hdr.mpls.setValid()"
3813 }
3814 },
3815 {
3816 "op" : "assign",
3817 "parameters" : [
3818 {
3819 "type" : "field",
3820 "value" : ["mpls", "label"]
3821 },
3822 {
3823 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003824 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003825 }
3826 ],
3827 "source_info" : {
3828 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003829 "line" : 260,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003830 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003831 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003832 }
3833 },
3834 {
3835 "op" : "assign",
3836 "parameters" : [
3837 {
3838 "type" : "field",
3839 "value" : ["mpls", "tc"]
3840 },
3841 {
3842 "type" : "hexstr",
3843 "value" : "0x00"
3844 }
3845 ],
3846 "source_info" : {
3847 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003848 "line" : 261,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003849 "column" : 8,
3850 "source_fragment" : "hdr.mpls.tc = 3w0"
3851 }
3852 },
3853 {
3854 "op" : "assign",
3855 "parameters" : [
3856 {
3857 "type" : "field",
3858 "value" : ["mpls", "bos"]
3859 },
3860 {
3861 "type" : "hexstr",
3862 "value" : "0x01"
3863 }
3864 ],
3865 "source_info" : {
3866 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003867 "line" : 262,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003868 "column" : 8,
3869 "source_fragment" : "hdr.mpls.bos = 1w1"
3870 }
3871 },
3872 {
3873 "op" : "assign",
3874 "parameters" : [
3875 {
3876 "type" : "field",
3877 "value" : ["mpls", "ttl"]
3878 },
3879 {
3880 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003881 "value" : ["scalars", "fabric_metadata_t._mpls_ttl6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003882 }
3883 ],
3884 "source_info" : {
3885 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003886 "line" : 263,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003887 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003888 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003889 }
3890 },
3891 {
3892 "op" : "assign",
3893 "parameters" : [
3894 {
3895 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003896 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003897 },
3898 {
3899 "type" : "hexstr",
3900 "value" : "0x8847"
3901 }
3902 ],
3903 "source_info" : {
3904 "filename" : "include/control/../define.p4",
3905 "line" : 108,
3906 "column" : 31,
3907 "source_fragment" : "0x8847; ..."
3908 }
3909 }
3910 ]
3911 },
3912 {
3913 "name" : "FabricEgress.egress_next.push_vlan",
3914 "id" : 55,
3915 "runtime_data" : [],
3916 "primitives" : [
3917 {
3918 "op" : "add_header",
3919 "parameters" : [
3920 {
3921 "type" : "header",
3922 "value" : "vlan_tag"
3923 }
3924 ],
3925 "source_info" : {
3926 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003927 "line" : 271,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003928 "column" : 8,
3929 "source_fragment" : "hdr.vlan_tag.setValid()"
3930 }
3931 },
3932 {
3933 "op" : "assign",
3934 "parameters" : [
3935 {
3936 "type" : "field",
3937 "value" : ["vlan_tag", "cfi"]
3938 },
3939 {
3940 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003941 "value" : ["scalars", "fabric_metadata_t._vlan_cfi4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003942 }
3943 ],
3944 "source_info" : {
3945 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003946 "line" : 272,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003947 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003948 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003949 }
3950 },
3951 {
3952 "op" : "assign",
3953 "parameters" : [
3954 {
3955 "type" : "field",
3956 "value" : ["vlan_tag", "pri"]
3957 },
3958 {
3959 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003960 "value" : ["scalars", "fabric_metadata_t._vlan_pri3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003961 }
3962 ],
3963 "source_info" : {
3964 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003965 "line" : 273,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003966 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003967 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003968 }
3969 },
3970 {
3971 "op" : "assign",
3972 "parameters" : [
3973 {
3974 "type" : "field",
3975 "value" : ["vlan_tag", "eth_type"]
3976 },
3977 {
3978 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003979 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003980 }
3981 ],
3982 "source_info" : {
3983 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003984 "line" : 274,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003985 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003986 "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003987 }
3988 },
3989 {
3990 "op" : "assign",
3991 "parameters" : [
3992 {
3993 "type" : "field",
3994 "value" : ["vlan_tag", "vlan_id"]
3995 },
3996 {
3997 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003998 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003999 }
4000 ],
4001 "source_info" : {
4002 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004003 "line" : 275,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004004 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004005 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004006 }
4007 },
4008 {
4009 "op" : "assign",
4010 "parameters" : [
4011 {
4012 "type" : "field",
4013 "value" : ["ethernet", "eth_type"]
4014 },
4015 {
4016 "type" : "hexstr",
4017 "value" : "0x8100"
4018 }
4019 ],
4020 "source_info" : {
4021 "filename" : "include/control/../define.p4",
4022 "line" : 107,
4023 "column" : 31,
4024 "source_fragment" : "0x8100; ..."
4025 }
4026 }
4027 ]
4028 },
4029 {
4030 "name" : "FabricEgress.egress_next.pop_vlan",
4031 "id" : 56,
4032 "runtime_data" : [],
4033 "primitives" : [
4034 {
4035 "op" : "assign",
4036 "parameters" : [
4037 {
4038 "type" : "field",
4039 "value" : ["ethernet", "eth_type"]
4040 },
4041 {
4042 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004043 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004044 }
4045 ],
4046 "source_info" : {
4047 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004048 "line" : 286,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004049 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004050 "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.eth_type; ..."
Yi Tseng47eac892018-07-11 02:17:04 +08004051 }
4052 },
4053 {
4054 "op" : "remove_header",
4055 "parameters" : [
4056 {
4057 "type" : "header",
4058 "value" : "vlan_tag"
4059 }
4060 ],
4061 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004062 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004063 "line" : 287,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004064 "column" : 8,
4065 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4066 }
4067 }
4068 ]
4069 },
4070 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004071 "name" : "act_19",
4072 "id" : 57,
4073 "runtime_data" : [],
4074 "primitives" : [
4075 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004076 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004077 "parameters" : [],
4078 "source_info" : {
4079 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004080 "line" : 41,
4081 "column" : 12,
4082 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004083 }
4084 }
4085 ]
4086 },
4087 {
4088 "name" : "act_20",
4089 "id" : 58,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004090 "runtime_data" : [],
4091 "primitives" : [
4092 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004093 "op" : "mark_to_drop",
4094 "parameters" : [
4095 {
4096 "type" : "header",
4097 "value" : "standard_metadata"
4098 }
4099 ],
4100 "source_info" : {
4101 "filename" : "include/control/packetio.p4",
4102 "line" : 47,
4103 "column" : 16,
4104 "source_fragment" : "mark_to_drop(standard_metadata)"
4105 }
4106 }
4107 ]
4108 },
4109 {
4110 "name" : "act_21",
4111 "id" : 59,
4112 "runtime_data" : [],
4113 "primitives" : [
4114 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004115 "op" : "add_header",
4116 "parameters" : [
4117 {
4118 "type" : "header",
4119 "value" : "packet_in"
4120 }
4121 ],
4122 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004123 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004124 "line" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004125 "column" : 12,
4126 "source_fragment" : "hdr.packet_in.setValid()"
4127 }
4128 },
4129 {
4130 "op" : "assign",
4131 "parameters" : [
4132 {
4133 "type" : "field",
4134 "value" : ["packet_in", "ingress_port"]
4135 },
4136 {
4137 "type" : "field",
4138 "value" : ["standard_metadata", "ingress_port"]
4139 }
4140 ],
4141 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004142 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004143 "line" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004144 "column" : 12,
4145 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4146 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004147 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004148 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004149 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004150 "parameters" : [],
4151 "source_info" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004152 "filename" : "include/control/packetio.p4",
4153 "line" : 52,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004154 "column" : 12,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004155 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004156 }
4157 }
4158 ]
4159 },
4160 {
4161 "name" : "act_22",
4162 "id" : 60,
4163 "runtime_data" : [],
4164 "primitives" : [
4165 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004166 "op" : "mark_to_drop",
4167 "parameters" : [
4168 {
4169 "type" : "header",
4170 "value" : "standard_metadata"
4171 }
4172 ],
4173 "source_info" : {
4174 "filename" : "include/control/next.p4",
4175 "line" : 308,
4176 "column" : 12,
4177 "source_fragment" : "mark_to_drop(standard_metadata)"
4178 }
4179 }
4180 ]
4181 },
4182 {
4183 "name" : "act_23",
4184 "id" : 61,
4185 "runtime_data" : [],
4186 "primitives" : [
4187 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004188 "op" : "assign",
4189 "parameters" : [
4190 {
4191 "type" : "field",
4192 "value" : ["scalars", "egress_next_tmp"]
4193 },
4194 {
4195 "type" : "expression",
4196 "value" : {
4197 "type" : "expression",
4198 "value" : {
4199 "op" : "b2d",
4200 "left" : null,
4201 "right" : {
4202 "type" : "bool",
4203 "value" : true
4204 }
4205 }
4206 }
4207 }
4208 ]
4209 }
4210 ]
4211 },
4212 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004213 "name" : "act_24",
4214 "id" : 62,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004215 "runtime_data" : [],
4216 "primitives" : [
4217 {
4218 "op" : "assign",
4219 "parameters" : [
4220 {
4221 "type" : "field",
4222 "value" : ["scalars", "egress_next_tmp"]
4223 },
4224 {
4225 "type" : "expression",
4226 "value" : {
4227 "type" : "expression",
4228 "value" : {
4229 "op" : "b2d",
4230 "left" : null,
4231 "right" : {
4232 "type" : "bool",
4233 "value" : false
4234 }
4235 }
4236 }
4237 }
4238 ]
4239 }
4240 ]
4241 },
4242 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004243 "name" : "act_25",
4244 "id" : 63,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004245 "runtime_data" : [],
4246 "primitives" : [
4247 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004248 "op" : "mark_to_drop",
4249 "parameters" : [
4250 {
4251 "type" : "header",
4252 "value" : "standard_metadata"
4253 }
4254 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004255 "source_info" : {
4256 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004257 "line" : 327,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004258 "column" : 35,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004259 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004260 }
4261 }
4262 ]
4263 },
4264 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004265 "name" : "act_26",
4266 "id" : 64,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004267 "runtime_data" : [],
4268 "primitives" : [
4269 {
4270 "op" : "assign",
4271 "parameters" : [
4272 {
4273 "type" : "field",
4274 "value" : ["mpls", "ttl"]
4275 },
4276 {
4277 "type" : "expression",
4278 "value" : {
4279 "type" : "expression",
4280 "value" : {
4281 "op" : "&",
4282 "left" : {
4283 "type" : "expression",
4284 "value" : {
4285 "op" : "+",
4286 "left" : {
4287 "type" : "field",
4288 "value" : ["mpls", "ttl"]
4289 },
4290 "right" : {
4291 "type" : "hexstr",
4292 "value" : "0xff"
4293 }
4294 }
4295 },
4296 "right" : {
4297 "type" : "hexstr",
4298 "value" : "0xff"
4299 }
4300 }
4301 }
4302 }
4303 ],
4304 "source_info" : {
4305 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004306 "line" : 326,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004307 "column" : 12,
4308 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
4309 }
4310 }
4311 ]
4312 },
4313 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004314 "name" : "act_27",
4315 "id" : 65,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004316 "runtime_data" : [],
4317 "primitives" : [
4318 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004319 "op" : "mark_to_drop",
4320 "parameters" : [
4321 {
4322 "type" : "header",
4323 "value" : "standard_metadata"
4324 }
4325 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004326 "source_info" : {
4327 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004328 "line" : 331,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004329 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004330 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004331 }
4332 }
4333 ]
4334 },
4335 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004336 "name" : "act_28",
4337 "id" : 66,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004338 "runtime_data" : [],
4339 "primitives" : [
4340 {
4341 "op" : "assign",
4342 "parameters" : [
4343 {
4344 "type" : "field",
4345 "value" : ["ipv4", "ttl"]
4346 },
4347 {
4348 "type" : "expression",
4349 "value" : {
4350 "type" : "expression",
4351 "value" : {
4352 "op" : "&",
4353 "left" : {
4354 "type" : "expression",
4355 "value" : {
4356 "op" : "+",
4357 "left" : {
4358 "type" : "field",
4359 "value" : ["ipv4", "ttl"]
4360 },
4361 "right" : {
4362 "type" : "hexstr",
4363 "value" : "0xff"
4364 }
4365 }
4366 },
4367 "right" : {
4368 "type" : "hexstr",
4369 "value" : "0xff"
4370 }
4371 }
4372 }
4373 }
4374 ],
4375 "source_info" : {
4376 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004377 "line" : 330,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004378 "column" : 16,
4379 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
4380 }
4381 }
4382 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004383 }
4384 ],
4385 "pipelines" : [
4386 {
4387 "name" : "ingress",
4388 "id" : 0,
4389 "source_info" : {
4390 "filename" : "fabric.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004391 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004392 "column" : 8,
4393 "source_fragment" : "FabricIngress"
4394 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004395 "init_table" : "tbl_act",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004396 "tables" : [
4397 {
4398 "name" : "tbl_act",
4399 "id" : 0,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004400 "source_info" : {
4401 "filename" : "fabric.p4",
4402 "line" : 58,
4403 "column" : 50,
4404 "source_fragment" : "hdr.gtpu_ipv4, hdr.gtpu_udp"
4405 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004406 "key" : [],
4407 "match_type" : "exact",
4408 "type" : "simple",
4409 "max_size" : 1024,
4410 "with_counters" : false,
4411 "support_timeout" : false,
4412 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004413 "action_ids" : [32],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004414 "actions" : ["act_0"],
4415 "base_default_next" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004416 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004417 "act_0" : "node_3"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004418 },
4419 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004420 "action_id" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004421 "action_const" : true,
4422 "action_data" : [],
4423 "action_entry_const" : true
4424 }
4425 },
4426 {
4427 "name" : "tbl_act_0",
4428 "id" : 1,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004429 "source_info" : {
4430 "filename" : "include/spgw.p4",
4431 "line" : 30,
4432 "column" : 32,
4433 "source_fragment" : "return"
4434 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004435 "key" : [],
4436 "match_type" : "exact",
4437 "type" : "simple",
4438 "max_size" : 1024,
4439 "with_counters" : false,
4440 "support_timeout" : false,
4441 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004442 "action_ids" : [31],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004443 "actions" : ["act"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004444 "base_default_next" : "node_5",
4445 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004446 "act" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004447 },
4448 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004449 "action_id" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004450 "action_const" : true,
4451 "action_data" : [],
4452 "action_entry_const" : true
4453 }
4454 },
4455 {
4456 "name" : "tbl_act_1",
4457 "id" : 2,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004458 "source_info" : {
4459 "filename" : "include/spgw.p4",
4460 "line" : 31,
4461 "column" : 18,
4462 "source_fragment" : "= ipv4; ..."
4463 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004464 "key" : [],
4465 "match_type" : "exact",
4466 "type" : "simple",
4467 "max_size" : 1024,
4468 "with_counters" : false,
4469 "support_timeout" : false,
4470 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004471 "action_ids" : [35],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004472 "actions" : ["act_3"],
4473 "base_default_next" : "node_7",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004474 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004475 "act_3" : "node_7"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004476 },
4477 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004478 "action_id" : 35,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004479 "action_const" : true,
4480 "action_data" : [],
4481 "action_entry_const" : true
4482 }
4483 },
4484 {
4485 "name" : "tbl_act_2",
4486 "id" : 3,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004487 "source_info" : {
4488 "filename" : "include/spgw.p4",
4489 "line" : 35,
4490 "column" : 16,
4491 "source_fragment" : "="
4492 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004493 "key" : [],
4494 "match_type" : "exact",
4495 "type" : "simple",
4496 "max_size" : 1024,
4497 "with_counters" : false,
4498 "support_timeout" : false,
4499 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004500 "action_ids" : [33],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004501 "actions" : ["act_1"],
4502 "base_default_next" : "node_10",
4503 "next_tables" : {
4504 "act_1" : "node_10"
4505 },
4506 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004507 "action_id" : 33,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004508 "action_const" : true,
4509 "action_data" : [],
4510 "action_entry_const" : true
4511 }
4512 },
4513 {
4514 "name" : "tbl_act_3",
4515 "id" : 4,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004516 "source_info" : {
4517 "filename" : "include/spgw.p4",
4518 "line" : 37,
4519 "column" : 12,
4520 "source_fragment" : "udp.setInvalid()"
4521 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004522 "key" : [],
4523 "match_type" : "exact",
4524 "type" : "simple",
4525 "max_size" : 1024,
4526 "with_counters" : false,
4527 "support_timeout" : false,
4528 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004529 "action_ids" : [34],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004530 "actions" : ["act_2"],
4531 "base_default_next" : "node_10",
4532 "next_tables" : {
4533 "act_2" : "node_10"
4534 },
4535 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004536 "action_id" : 34,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004537 "action_const" : true,
4538 "action_data" : [],
4539 "action_entry_const" : true
4540 }
4541 },
4542 {
4543 "name" : "tbl_act_4",
4544 "id" : 5,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004545 "source_info" : {
4546 "filename" : "include/control/packetio.p4",
4547 "line" : 25,
4548 "column" : 42,
4549 "source_fragment" : "= hdr.packet_out.egress_port; ..."
4550 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004551 "key" : [],
4552 "match_type" : "exact",
4553 "type" : "simple",
4554 "max_size" : 1024,
4555 "with_counters" : false,
4556 "support_timeout" : false,
4557 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004558 "action_ids" : [36],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004559 "actions" : ["act_4"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004560 "base_default_next" : "node_12",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004561 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004562 "act_4" : "node_12"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004563 },
4564 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004565 "action_id" : 36,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004566 "action_const" : true,
4567 "action_data" : [],
4568 "action_entry_const" : true
4569 }
4570 },
4571 {
4572 "name" : "tbl_act_5",
4573 "id" : 6,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004574 "source_info" : {
4575 "filename" : "include/control/filtering.p4",
4576 "line" : 105,
4577 "column" : 37,
4578 "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
4579 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004580 "key" : [],
4581 "match_type" : "exact",
4582 "type" : "simple",
4583 "max_size" : 1024,
4584 "with_counters" : false,
4585 "support_timeout" : false,
4586 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004587 "action_ids" : [37],
4588 "actions" : ["act_5"],
4589 "base_default_next" : "node_14",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004590 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004591 "act_5" : "node_14"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004592 },
4593 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004594 "action_id" : 37,
4595 "action_const" : true,
4596 "action_data" : [],
4597 "action_entry_const" : true
4598 }
4599 },
4600 {
4601 "name" : "tbl_act_6",
4602 "id" : 7,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004603 "source_info" : {
4604 "filename" : "include/control/filtering.p4",
4605 "line" : 115,
4606 "column" : 37,
4607 "source_fragment" : "="
4608 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004609 "key" : [],
4610 "match_type" : "exact",
4611 "type" : "simple",
4612 "max_size" : 1024,
4613 "with_counters" : false,
4614 "support_timeout" : false,
4615 "direct_meters" : null,
4616 "action_ids" : [38],
4617 "actions" : ["act_6"],
4618 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
4619 "next_tables" : {
4620 "act_6" : "FabricIngress.filtering.ingress_port_vlan"
4621 },
4622 "default_entry" : {
4623 "action_id" : 38,
4624 "action_const" : true,
4625 "action_data" : [],
4626 "action_entry_const" : true
4627 }
4628 },
4629 {
4630 "name" : "FabricIngress.filtering.ingress_port_vlan",
4631 "id" : 8,
4632 "source_info" : {
4633 "filename" : "include/control/filtering.p4",
4634 "line" : 51,
4635 "column" : 10,
4636 "source_fragment" : "ingress_port_vlan"
4637 },
4638 "key" : [
4639 {
4640 "match_type" : "exact",
4641 "name" : "ig_port",
4642 "target" : ["standard_metadata", "ingress_port"],
4643 "mask" : null
4644 },
4645 {
4646 "match_type" : "exact",
4647 "name" : "vlan_is_valid",
4648 "target" : ["vlan_tag", "$valid$"],
4649 "mask" : null
4650 },
4651 {
4652 "match_type" : "ternary",
4653 "name" : "vlan_id",
4654 "target" : ["vlan_tag", "vlan_id"],
4655 "mask" : null
4656 }
4657 ],
4658 "match_type" : "ternary",
4659 "type" : "simple",
4660 "max_size" : 1024,
4661 "with_counters" : true,
4662 "support_timeout" : false,
4663 "direct_meters" : null,
4664 "action_ids" : [11, 12, 13],
4665 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
4666 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
4667 "next_tables" : {
4668 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
4669 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
4670 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
4671 },
4672 "default_entry" : {
4673 "action_id" : 11,
4674 "action_const" : true,
4675 "action_data" : [],
4676 "action_entry_const" : true
4677 }
4678 },
4679 {
4680 "name" : "FabricIngress.filtering.fwd_classifier",
4681 "id" : 9,
4682 "source_info" : {
4683 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004684 "line" : 87,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004685 "column" : 10,
4686 "source_fragment" : "fwd_classifier"
4687 },
4688 "key" : [
4689 {
4690 "match_type" : "exact",
4691 "name" : "ig_port",
4692 "target" : ["standard_metadata", "ingress_port"],
4693 "mask" : null
4694 },
4695 {
4696 "match_type" : "ternary",
4697 "name" : "eth_dst",
4698 "target" : ["ethernet", "dst_addr"],
4699 "mask" : null
4700 },
4701 {
4702 "match_type" : "exact",
4703 "name" : "eth_type",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004704 "target" : ["scalars", "fabric_metadata_t._eth_type0"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004705 "mask" : null
4706 }
4707 ],
4708 "match_type" : "ternary",
4709 "type" : "simple",
4710 "max_size" : 1024,
4711 "with_counters" : true,
4712 "support_timeout" : false,
4713 "direct_meters" : null,
4714 "action_ids" : [14],
4715 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
4716 "base_default_next" : "tbl_act_7",
4717 "next_tables" : {
4718 "FabricIngress.filtering.set_forwarding_type" : "tbl_act_7"
4719 },
4720 "default_entry" : {
4721 "action_id" : 14,
4722 "action_const" : true,
4723 "action_data" : ["0x0"],
4724 "action_entry_const" : true
4725 }
4726 },
4727 {
4728 "name" : "tbl_act_7",
4729 "id" : 10,
4730 "key" : [],
4731 "match_type" : "exact",
4732 "type" : "simple",
4733 "max_size" : 1024,
4734 "with_counters" : false,
4735 "support_timeout" : false,
4736 "direct_meters" : null,
4737 "action_ids" : [47],
4738 "actions" : ["act_15"],
4739 "base_default_next" : "node_19",
4740 "next_tables" : {
4741 "act_15" : "node_19"
4742 },
4743 "default_entry" : {
4744 "action_id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004745 "action_const" : true,
4746 "action_data" : [],
4747 "action_entry_const" : true
4748 }
4749 },
4750 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004751 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004752 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004753 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004754 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004755 "line" : 83,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004756 "column" : 10,
4757 "source_fragment" : "s1u_filter_table"
4758 },
4759 "key" : [
4760 {
4761 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004762 "name" : "gtp_ipv4_dst",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004763 "target" : ["gtpu_ipv4", "dst_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004764 "mask" : null
4765 }
4766 ],
4767 "match_type" : "exact",
4768 "type" : "simple",
4769 "max_size" : 1024,
4770 "with_counters" : false,
4771 "support_timeout" : false,
4772 "direct_meters" : null,
4773 "action_ids" : [1],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004774 "actions" : ["nop"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004775 "base_default_next" : null,
4776 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004777 "__HIT__" : "tbl_act_8",
4778 "__MISS__" : "tbl_act_9"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004779 },
4780 "default_entry" : {
4781 "action_id" : 1,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004782 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004783 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004784 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004785 }
4786 },
4787 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004788 "name" : "tbl_act_8",
4789 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004790 "key" : [],
4791 "match_type" : "exact",
4792 "type" : "simple",
4793 "max_size" : 1024,
4794 "with_counters" : false,
4795 "support_timeout" : false,
4796 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004797 "action_ids" : [39],
4798 "actions" : ["act_7"],
4799 "base_default_next" : "node_23",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004800 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004801 "act_7" : "node_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004802 },
4803 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004804 "action_id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004805 "action_const" : true,
4806 "action_data" : [],
4807 "action_entry_const" : true
4808 }
4809 },
4810 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004811 "name" : "tbl_act_9",
4812 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004813 "key" : [],
4814 "match_type" : "exact",
4815 "type" : "simple",
4816 "max_size" : 1024,
4817 "with_counters" : false,
4818 "support_timeout" : false,
4819 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004820 "action_ids" : [40],
4821 "actions" : ["act_8"],
4822 "base_default_next" : "node_23",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004823 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004824 "act_8" : "node_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004825 },
4826 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004827 "action_id" : 40,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004828 "action_const" : true,
4829 "action_data" : [],
4830 "action_entry_const" : true
4831 }
4832 },
4833 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004834 "name" : "tbl_act_10",
4835 "id" : 14,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004836 "source_info" : {
4837 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004838 "line" : 149,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004839 "column" : 16,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004840 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07004841 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004842 "key" : [],
4843 "match_type" : "exact",
4844 "type" : "simple",
4845 "max_size" : 1024,
4846 "with_counters" : false,
4847 "support_timeout" : false,
4848 "direct_meters" : null,
4849 "action_ids" : [41],
4850 "actions" : ["act_9"],
4851 "base_default_next" : "tbl_act_11",
4852 "next_tables" : {
4853 "act_9" : "tbl_act_11"
4854 },
4855 "default_entry" : {
4856 "action_id" : 41,
4857 "action_const" : true,
4858 "action_data" : [],
4859 "action_entry_const" : true
4860 }
4861 },
4862 {
4863 "name" : "tbl_act_11",
4864 "id" : 15,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004865 "source_info" : {
4866 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004867 "line" : 151,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004868 "column" : 39,
4869 "source_fragment" : "="
4870 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004871 "key" : [],
4872 "match_type" : "exact",
4873 "type" : "simple",
4874 "max_size" : 1024,
4875 "with_counters" : false,
4876 "support_timeout" : false,
4877 "direct_meters" : null,
4878 "action_ids" : [42],
4879 "actions" : ["act_10"],
4880 "base_default_next" : "tbl_spgw_ingress_gtpu_decap",
4881 "next_tables" : {
4882 "act_10" : "tbl_spgw_ingress_gtpu_decap"
4883 },
4884 "default_entry" : {
4885 "action_id" : 42,
4886 "action_const" : true,
4887 "action_data" : [],
4888 "action_entry_const" : true
4889 }
4890 },
4891 {
4892 "name" : "tbl_spgw_ingress_gtpu_decap",
4893 "id" : 16,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004894 "source_info" : {
4895 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004896 "line" : 152,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004897 "column" : 12,
4898 "source_fragment" : "gtpu_decap()"
4899 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004900 "key" : [],
4901 "match_type" : "exact",
4902 "type" : "simple",
4903 "max_size" : 1024,
4904 "with_counters" : false,
4905 "support_timeout" : false,
4906 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004907 "action_ids" : [9],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004908 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
4909 "base_default_next" : "node_33",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004910 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004911 "FabricIngress.spgw_ingress.gtpu_decap" : "node_33"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004912 },
4913 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004914 "action_id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004915 "action_const" : true,
4916 "action_data" : [],
4917 "action_entry_const" : true
4918 }
4919 },
4920 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004921 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004922 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004923 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004924 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004925 "line" : 70,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004926 "column" : 10,
4927 "source_fragment" : "dl_sess_lookup"
4928 },
4929 "key" : [
4930 {
4931 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004932 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004933 "target" : ["ipv4", "dst_addr"],
4934 "mask" : null
4935 }
4936 ],
4937 "match_type" : "exact",
4938 "type" : "simple",
4939 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004940 "with_counters" : true,
4941 "support_timeout" : false,
4942 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004943 "action_ids" : [10, 0],
4944 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "nop"],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004945 "base_default_next" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004946 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004947 "__HIT__" : "tbl_act_12",
4948 "__MISS__" : "tbl_act_13"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004949 },
4950 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004951 "action_id" : 0,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004952 "action_const" : true,
4953 "action_data" : [],
4954 "action_entry_const" : true
4955 }
4956 },
4957 {
4958 "name" : "tbl_act_12",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004959 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004960 "key" : [],
4961 "match_type" : "exact",
4962 "type" : "simple",
4963 "max_size" : 1024,
4964 "with_counters" : false,
4965 "support_timeout" : false,
4966 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004967 "action_ids" : [43],
4968 "actions" : ["act_11"],
4969 "base_default_next" : "node_30",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004970 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004971 "act_11" : "node_30"
Yi Tseng27b9bc02018-04-12 14:52:40 +08004972 },
4973 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004974 "action_id" : 43,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004975 "action_const" : true,
4976 "action_data" : [],
4977 "action_entry_const" : true
4978 }
4979 },
4980 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004981 "name" : "tbl_act_13",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004982 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004983 "key" : [],
4984 "match_type" : "exact",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004985 "type" : "simple",
4986 "max_size" : 1024,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004987 "with_counters" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004988 "support_timeout" : false,
4989 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004990 "action_ids" : [44],
4991 "actions" : ["act_12"],
4992 "base_default_next" : "node_30",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004993 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004994 "act_12" : "node_30"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004995 },
4996 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004997 "action_id" : 44,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004998 "action_const" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004999 "action_data" : [],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005000 "action_entry_const" : true
5001 }
5002 },
5003 {
5004 "name" : "tbl_act_14",
5005 "id" : 20,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005006 "source_info" : {
5007 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005008 "line" : 154,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005009 "column" : 39,
5010 "source_fragment" : "="
5011 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005012 "key" : [],
5013 "match_type" : "exact",
5014 "type" : "simple",
5015 "max_size" : 1024,
5016 "with_counters" : false,
5017 "support_timeout" : false,
5018 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005019 "action_ids" : [45],
5020 "actions" : ["act_13"],
5021 "base_default_next" : "node_33",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005022 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005023 "act_13" : "node_33"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005024 },
5025 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005026 "action_id" : 45,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005027 "action_const" : true,
5028 "action_data" : [],
5029 "action_entry_const" : true
5030 }
5031 },
5032 {
5033 "name" : "tbl_act_15",
5034 "id" : 21,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005035 "source_info" : {
5036 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005037 "line" : 156,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005038 "column" : 39,
5039 "source_fragment" : "= SPGW_DIR_UNKNOWN; ..."
5040 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005041 "key" : [],
5042 "match_type" : "exact",
5043 "type" : "simple",
5044 "max_size" : 1024,
5045 "with_counters" : false,
5046 "support_timeout" : false,
5047 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005048 "action_ids" : [46],
5049 "actions" : ["act_14"],
5050 "base_default_next" : "node_33",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005051 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005052 "act_14" : "node_33"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005053 },
5054 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005055 "action_id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005056 "action_const" : true,
5057 "action_data" : [],
5058 "action_entry_const" : true
5059 }
5060 },
5061 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005062 "name" : "tbl_act_16",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005063 "id" : 22,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005064 "source_info" : {
5065 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005066 "line" : 175,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005067 "column" : 34,
5068 "source_fragment" : "="
5069 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005070 "key" : [],
5071 "match_type" : "exact",
5072 "type" : "simple",
5073 "max_size" : 1024,
5074 "with_counters" : false,
5075 "support_timeout" : false,
5076 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005077 "action_ids" : [48],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005078 "actions" : ["act_16"],
5079 "base_default_next" : "node_35",
5080 "next_tables" : {
5081 "act_16" : "node_35"
5082 },
5083 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005084 "action_id" : 48,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005085 "action_const" : true,
5086 "action_data" : [],
5087 "action_entry_const" : true
5088 }
5089 },
5090 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005091 "name" : "FabricIngress.forwarding.bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005092 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005093 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005094 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005095 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005096 "column" : 10,
5097 "source_fragment" : "bridging"
5098 },
5099 "key" : [
5100 {
5101 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005102 "name" : "vlan_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005103 "target" : ["scalars", "fabric_metadata_t._vlan_id2"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005104 "mask" : null
5105 },
5106 {
5107 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005108 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005109 "target" : ["ethernet", "dst_addr"],
5110 "mask" : null
5111 }
5112 ],
5113 "match_type" : "ternary",
5114 "type" : "simple",
5115 "max_size" : 1024,
5116 "with_counters" : true,
5117 "support_timeout" : false,
5118 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005119 "action_ids" : [15, 2],
5120 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
5121 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005122 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005123 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.acl.acl",
5124 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005125 },
5126 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005127 "action_id" : 2,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005128 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005129 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005130 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005131 }
5132 },
5133 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005134 "name" : "FabricIngress.forwarding.mpls",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005135 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005136 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005137 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005138 "line" : 71,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005139 "column" : 10,
5140 "source_fragment" : "mpls"
5141 },
5142 "key" : [
5143 {
5144 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005145 "name" : "mpls_label",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005146 "target" : ["scalars", "fabric_metadata_t._mpls_label5"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005147 "mask" : null
5148 }
5149 ],
5150 "match_type" : "exact",
5151 "type" : "simple",
5152 "max_size" : 1024,
5153 "with_counters" : true,
5154 "support_timeout" : false,
5155 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005156 "action_ids" : [16, 3],
5157 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
5158 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005159 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005160 "FabricIngress.forwarding.pop_mpls_and_next" : "FabricIngress.acl.acl",
5161 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005162 },
5163 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005164 "action_id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005165 "action_const" : true,
5166 "action_data" : [],
5167 "action_entry_const" : true
5168 }
5169 },
5170 {
Charles Chan384aea22018-08-23 22:08:02 -07005171 "name" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005172 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005173 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005174 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005175 "line" : 101,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005176 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07005177 "source_fragment" : "routing_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005178 },
5179 "key" : [
5180 {
5181 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005182 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005183 "target" : ["ipv4", "dst_addr"],
5184 "mask" : null
5185 }
5186 ],
5187 "match_type" : "lpm",
5188 "type" : "simple",
5189 "max_size" : 1024,
5190 "with_counters" : true,
5191 "support_timeout" : false,
5192 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005193 "action_ids" : [17, 18, 4],
5194 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
5195 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005196 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005197 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.acl.acl",
5198 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.acl.acl",
5199 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005200 },
5201 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005202 "action_id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005203 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005204 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005205 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005206 }
5207 },
5208 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005209 "name" : "FabricIngress.acl.acl",
5210 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005211 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005212 "filename" : "include/control/acl.p4",
5213 "line" : 60,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005214 "column" : 10,
5215 "source_fragment" : "acl"
5216 },
5217 "key" : [
5218 {
5219 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005220 "name" : "ig_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005221 "target" : ["standard_metadata", "ingress_port"],
5222 "mask" : null
5223 },
5224 {
5225 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005226 "name" : "ip_proto",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005227 "target" : ["scalars", "fabric_metadata_t._ip_proto14"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005228 "mask" : null
5229 },
5230 {
5231 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005232 "name" : "l4_sport",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005233 "target" : ["scalars", "fabric_metadata_t._l4_sport15"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005234 "mask" : null
5235 },
5236 {
5237 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005238 "name" : "l4_dport",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005239 "target" : ["scalars", "fabric_metadata_t._l4_dport16"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005240 "mask" : null
5241 },
5242 {
5243 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005244 "name" : "eth_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005245 "target" : ["ethernet", "dst_addr"],
5246 "mask" : null
5247 },
5248 {
5249 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005250 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005251 "target" : ["ethernet", "src_addr"],
5252 "mask" : null
5253 },
5254 {
5255 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005256 "name" : "vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005257 "target" : ["vlan_tag", "vlan_id"],
5258 "mask" : null
5259 },
5260 {
5261 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005262 "name" : "eth_type",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005263 "target" : ["scalars", "fabric_metadata_t._eth_type0"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08005264 "mask" : null
5265 },
5266 {
5267 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005268 "name" : "ipv4_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005269 "target" : ["ipv4", "src_addr"],
5270 "mask" : null
5271 },
5272 {
5273 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005274 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005275 "target" : ["ipv4", "dst_addr"],
5276 "mask" : null
5277 },
5278 {
5279 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005280 "name" : "icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005281 "target" : ["icmp", "icmp_type"],
5282 "mask" : null
5283 },
5284 {
5285 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005286 "name" : "icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005287 "target" : ["icmp", "icmp_code"],
5288 "mask" : null
5289 }
5290 ],
5291 "match_type" : "ternary",
5292 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005293 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005294 "with_counters" : true,
5295 "support_timeout" : false,
5296 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005297 "action_ids" : [19, 20, 21, 22, 23],
5298 "actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.clone_to_cpu", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"],
5299 "base_default_next" : "node_43",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005300 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005301 "FabricIngress.acl.set_next_id_acl" : "node_43",
5302 "FabricIngress.acl.punt_to_cpu" : "node_43",
5303 "FabricIngress.acl.clone_to_cpu" : "node_43",
5304 "FabricIngress.acl.drop" : "node_43",
5305 "FabricIngress.acl.nop_acl" : "node_43"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005306 },
5307 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005308 "action_id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005309 "action_const" : true,
5310 "action_data" : [],
5311 "action_entry_const" : true
5312 }
5313 },
5314 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005315 "name" : "FabricIngress.next.xconnect",
5316 "id" : 27,
5317 "source_info" : {
5318 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005319 "line" : 104,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005320 "column" : 10,
5321 "source_fragment" : "xconnect"
5322 },
5323 "key" : [
5324 {
5325 "match_type" : "exact",
5326 "name" : "ig_port",
5327 "target" : ["standard_metadata", "ingress_port"],
5328 "mask" : null
5329 },
5330 {
5331 "match_type" : "exact",
5332 "name" : "next_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005333 "target" : ["scalars", "fabric_metadata_t._next_id10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005334 "mask" : null
5335 }
5336 ],
5337 "match_type" : "exact",
5338 "type" : "simple",
5339 "max_size" : 1024,
5340 "with_counters" : true,
5341 "support_timeout" : false,
5342 "direct_meters" : null,
5343 "action_ids" : [25, 26, 6],
5344 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
5345 "base_default_next" : "FabricIngress.next.hashed",
5346 "next_tables" : {
5347 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
5348 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
5349 "nop" : "FabricIngress.next.hashed"
5350 },
5351 "default_entry" : {
5352 "action_id" : 6,
5353 "action_const" : true,
5354 "action_data" : [],
5355 "action_entry_const" : true
5356 }
5357 },
5358 {
5359 "name" : "FabricIngress.next.hashed",
5360 "id" : 28,
5361 "source_info" : {
5362 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005363 "line" : 184,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005364 "column" : 10,
5365 "source_fragment" : "hashed"
5366 },
5367 "key" : [
5368 {
5369 "match_type" : "exact",
5370 "name" : "next_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005371 "target" : ["scalars", "fabric_metadata_t._next_id10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005372 "mask" : null
5373 }
5374 ],
5375 "match_type" : "exact",
5376 "type" : "indirect_ws",
5377 "action_profile" : "FabricIngress.next.hashed_selector",
5378 "max_size" : 1024,
5379 "with_counters" : true,
5380 "support_timeout" : false,
5381 "direct_meters" : null,
5382 "action_ids" : [27, 28, 29, 7],
5383 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
5384 "base_default_next" : "FabricIngress.next.multicast",
5385 "next_tables" : {
5386 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
5387 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
5388 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
5389 "nop" : "FabricIngress.next.multicast"
5390 }
5391 },
5392 {
5393 "name" : "FabricIngress.next.multicast",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005394 "id" : 29,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005395 "source_info" : {
5396 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005397 "line" : 218,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005398 "column" : 10,
5399 "source_fragment" : "multicast"
5400 },
5401 "key" : [
5402 {
5403 "match_type" : "exact",
5404 "name" : "next_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005405 "target" : ["scalars", "fabric_metadata_t._next_id10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005406 "mask" : null
5407 }
5408 ],
5409 "match_type" : "exact",
5410 "type" : "simple",
5411 "max_size" : 1024,
5412 "with_counters" : true,
5413 "support_timeout" : false,
5414 "direct_meters" : null,
5415 "action_ids" : [30, 8],
5416 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
5417 "base_default_next" : "FabricIngress.next.next_vlan",
5418 "next_tables" : {
5419 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
5420 "nop" : "FabricIngress.next.next_vlan"
5421 },
5422 "default_entry" : {
5423 "action_id" : 8,
5424 "action_const" : true,
5425 "action_data" : [],
5426 "action_entry_const" : true
5427 }
5428 },
5429 {
5430 "name" : "FabricIngress.next.next_vlan",
5431 "id" : 30,
5432 "source_info" : {
5433 "filename" : "include/control/next.p4",
5434 "line" : 74,
5435 "column" : 10,
5436 "source_fragment" : "next_vlan"
5437 },
5438 "key" : [
5439 {
5440 "match_type" : "exact",
5441 "name" : "next_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005442 "target" : ["scalars", "fabric_metadata_t._next_id10"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005443 "mask" : null
5444 }
5445 ],
5446 "match_type" : "exact",
5447 "type" : "simple",
5448 "max_size" : 1024,
5449 "with_counters" : true,
5450 "support_timeout" : false,
5451 "direct_meters" : null,
5452 "action_ids" : [24, 5],
5453 "actions" : ["FabricIngress.next.set_vlan", "nop"],
5454 "base_default_next" : "node_48",
5455 "next_tables" : {
5456 "FabricIngress.next.set_vlan" : "node_48",
5457 "nop" : "node_48"
5458 },
5459 "default_entry" : {
5460 "action_id" : 5,
5461 "action_const" : true,
5462 "action_data" : [],
5463 "action_entry_const" : true
5464 }
5465 },
5466 {
5467 "name" : "tbl_act_17",
5468 "id" : 31,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005469 "source_info" : {
5470 "filename" : "include/control/port_counter.p4",
5471 "line" : 31,
5472 "column" : 12,
5473 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
5474 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02005475 "key" : [],
5476 "match_type" : "exact",
5477 "type" : "simple",
5478 "max_size" : 1024,
5479 "with_counters" : false,
5480 "support_timeout" : false,
5481 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005482 "action_ids" : [49],
5483 "actions" : ["act_17"],
5484 "base_default_next" : "node_50",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005485 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005486 "act_17" : "node_50"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005487 },
5488 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005489 "action_id" : 49,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005490 "action_const" : true,
5491 "action_data" : [],
5492 "action_entry_const" : true
5493 }
5494 },
5495 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005496 "name" : "tbl_act_18",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005497 "id" : 32,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005498 "source_info" : {
5499 "filename" : "include/control/port_counter.p4",
5500 "line" : 34,
5501 "column" : 12,
5502 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
5503 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005504 "key" : [],
5505 "match_type" : "exact",
5506 "type" : "simple",
5507 "max_size" : 1024,
5508 "with_counters" : false,
5509 "support_timeout" : false,
5510 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005511 "action_ids" : [50],
5512 "actions" : ["act_18"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005513 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005514 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005515 "act_18" : null
Carmelo Casconea5400af2018-07-17 22:11:54 +02005516 },
5517 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005518 "action_id" : 50,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005519 "action_const" : true,
5520 "action_data" : [],
5521 "action_entry_const" : true
5522 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005523 }
5524 ],
5525 "action_profiles" : [
5526 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005527 "name" : "FabricIngress.next.hashed_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005528 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005529 "source_info" : {
5530 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005531 "line" : 165,
5532 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005533 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005534 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005535 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005536 "selector" : {
5537 "algo" : "crc16",
5538 "input" : [
5539 {
5540 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005541 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005542 },
5543 {
5544 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005545 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005546 },
5547 {
5548 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005549 "value" : ["scalars", "fabric_metadata_t._ip_proto14"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005550 },
5551 {
5552 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005553 "value" : ["scalars", "fabric_metadata_t._l4_sport15"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005554 },
5555 {
5556 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005557 "value" : ["scalars", "fabric_metadata_t._l4_dport16"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005558 }
5559 ]
5560 }
5561 }
5562 ],
5563 "conditionals" : [
5564 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005565 "name" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005566 "id" : 0,
5567 "source_info" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005568 "filename" : "include/spgw.p4",
5569 "line" : 30,
5570 "column" : 12,
5571 "source_fragment" : "! is_gtpu_encapped"
5572 },
5573 "expression" : {
5574 "type" : "expression",
5575 "value" : {
5576 "op" : "not",
5577 "left" : null,
5578 "right" : {
5579 "type" : "expression",
5580 "value" : {
5581 "op" : "d2b",
5582 "left" : null,
5583 "right" : {
5584 "type" : "field",
5585 "value" : ["gtpu", "$valid$"]
5586 }
5587 }
5588 }
5589 }
5590 },
5591 "true_next" : "tbl_act_0",
5592 "false_next" : "node_5"
5593 },
5594 {
5595 "name" : "node_5",
5596 "id" : 1,
5597 "expression" : {
5598 "type" : "expression",
5599 "value" : {
5600 "op" : "not",
5601 "left" : null,
5602 "right" : {
5603 "type" : "expression",
5604 "value" : {
5605 "op" : "d2b",
5606 "left" : null,
5607 "right" : {
5608 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005609 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005610 }
5611 }
5612 }
5613 }
5614 },
5615 "true_next" : "tbl_act_1",
5616 "false_next" : "node_10"
5617 },
5618 {
5619 "name" : "node_7",
5620 "id" : 2,
5621 "source_info" : {
5622 "filename" : "include/spgw.p4",
5623 "line" : 34,
5624 "column" : 12,
5625 "source_fragment" : "inner_udp.isValid()"
5626 },
5627 "expression" : {
5628 "type" : "expression",
5629 "value" : {
5630 "op" : "d2b",
5631 "left" : null,
5632 "right" : {
5633 "type" : "field",
5634 "value" : ["inner_udp", "$valid$"]
5635 }
5636 }
5637 },
5638 "true_next" : "tbl_act_2",
5639 "false_next" : "tbl_act_3"
5640 },
5641 {
5642 "name" : "node_10",
5643 "id" : 3,
5644 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005645 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005646 "line" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005647 "column" : 12,
5648 "source_fragment" : "hdr.packet_out.isValid()"
5649 },
5650 "expression" : {
5651 "type" : "expression",
5652 "value" : {
5653 "op" : "d2b",
5654 "left" : null,
5655 "right" : {
5656 "type" : "field",
5657 "value" : ["packet_out", "$valid$"]
5658 }
5659 }
5660 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005661 "true_next" : "tbl_act_4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005662 "false_next" : "node_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005663 },
5664 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005665 "name" : "node_12",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005666 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005667 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005668 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005669 "line" : 104,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005670 "column" : 12,
5671 "source_fragment" : "hdr.vlan_tag.isValid()"
5672 },
5673 "expression" : {
5674 "type" : "expression",
5675 "value" : {
5676 "op" : "d2b",
5677 "left" : null,
5678 "right" : {
5679 "type" : "field",
5680 "value" : ["vlan_tag", "$valid$"]
5681 }
5682 }
5683 },
5684 "true_next" : "tbl_act_5",
5685 "false_next" : "node_14"
5686 },
5687 {
5688 "name" : "node_14",
5689 "id" : 5,
5690 "source_info" : {
5691 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005692 "line" : 110,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005693 "column" : 12,
5694 "source_fragment" : "!hdr.mpls.isValid()"
5695 },
5696 "expression" : {
5697 "type" : "expression",
5698 "value" : {
5699 "op" : "not",
5700 "left" : null,
5701 "right" : {
5702 "type" : "expression",
5703 "value" : {
5704 "op" : "d2b",
5705 "left" : null,
5706 "right" : {
5707 "type" : "field",
5708 "value" : ["mpls", "$valid$"]
5709 }
5710 }
5711 }
5712 }
5713 },
5714 "true_next" : "tbl_act_6",
5715 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
5716 },
5717 {
5718 "name" : "node_19",
5719 "id" : 6,
5720 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005721 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005722 "line" : 144,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005723 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005724 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005725 },
5726 "expression" : {
5727 "type" : "expression",
5728 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005729 "op" : "d2b",
5730 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005731 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005732 "type" : "field",
5733 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005734 }
5735 }
5736 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005737 "true_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
5738 "false_next" : "FabricIngress.spgw_ingress.dl_sess_lookup"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005739 },
5740 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005741 "name" : "node_23",
5742 "id" : 7,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005743 "source_info" : {
5744 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005745 "line" : 148,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005746 "column" : 16,
5747 "source_fragment" : "!s1u_filter_table.apply().hit"
5748 },
5749 "expression" : {
5750 "type" : "expression",
5751 "value" : {
5752 "op" : "not",
5753 "left" : null,
5754 "right" : {
5755 "type" : "expression",
5756 "value" : {
5757 "op" : "d2b",
5758 "left" : null,
5759 "right" : {
5760 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005761 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005762 }
5763 }
5764 }
5765 }
5766 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005767 "true_next" : "tbl_act_10",
5768 "false_next" : "tbl_act_11"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005769 },
5770 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005771 "name" : "node_30",
5772 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005773 "expression" : {
5774 "type" : "expression",
5775 "value" : {
5776 "op" : "d2b",
5777 "left" : null,
5778 "right" : {
5779 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005780 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005781 }
5782 }
5783 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005784 "true_next" : "tbl_act_14",
5785 "false_next" : "tbl_act_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005786 },
5787 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005788 "name" : "node_33",
5789 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005790 "expression" : {
5791 "type" : "expression",
5792 "value" : {
5793 "op" : "not",
5794 "left" : null,
5795 "right" : {
5796 "type" : "expression",
5797 "value" : {
5798 "op" : "d2b",
5799 "left" : null,
5800 "right" : {
5801 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005802 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005803 }
5804 }
5805 }
5806 }
5807 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005808 "true_next" : "tbl_act_16",
5809 "false_next" : "node_35"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005810 },
5811 {
5812 "name" : "node_35",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005813 "id" : 10,
5814 "source_info" : {
5815 "filename" : "fabric.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005816 "line" : 67,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005817 "column" : 12,
5818 "source_fragment" : "fabric_metadata.skip_forwarding == false"
5819 },
5820 "expression" : {
5821 "type" : "expression",
5822 "value" : {
5823 "op" : "==",
5824 "left" : {
5825 "type" : "expression",
5826 "value" : {
5827 "op" : "d2b",
5828 "left" : null,
5829 "right" : {
5830 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005831 "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005832 }
5833 }
5834 },
5835 "right" : {
5836 "type" : "bool",
5837 "value" : false
5838 }
5839 }
5840 },
5841 "true_next" : "node_36",
5842 "false_next" : "FabricIngress.acl.acl"
5843 },
5844 {
5845 "name" : "node_36",
5846 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005847 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005848 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005849 "line" : 141,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005850 "column" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005851 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
5852 },
5853 "expression" : {
5854 "type" : "expression",
5855 "value" : {
5856 "op" : "==",
5857 "left" : {
5858 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005859 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005860 },
5861 "right" : {
5862 "type" : "hexstr",
5863 "value" : "0x00"
5864 }
5865 }
5866 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005867 "true_next" : "FabricIngress.forwarding.bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005868 "false_next" : "node_38"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005869 },
5870 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005871 "name" : "node_38",
5872 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005873 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005874 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005875 "line" : 142,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005876 "column" : 17,
5877 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
5878 },
5879 "expression" : {
5880 "type" : "expression",
5881 "value" : {
5882 "op" : "==",
5883 "left" : {
5884 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005885 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005886 },
5887 "right" : {
5888 "type" : "hexstr",
5889 "value" : "0x01"
5890 }
5891 }
5892 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005893 "true_next" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005894 "false_next" : "node_40"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005895 },
5896 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005897 "name" : "node_40",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005898 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005899 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005900 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005901 "line" : 143,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005902 "column" : 17,
5903 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
5904 },
5905 "expression" : {
5906 "type" : "expression",
5907 "value" : {
5908 "op" : "==",
5909 "left" : {
5910 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005911 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005912 },
5913 "right" : {
5914 "type" : "hexstr",
5915 "value" : "0x02"
5916 }
5917 }
5918 },
Charles Chan384aea22018-08-23 22:08:02 -07005919 "true_next" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005920 "false_next" : "FabricIngress.acl.acl"
5921 },
5922 {
5923 "name" : "node_43",
5924 "id" : 14,
5925 "source_info" : {
5926 "filename" : "fabric.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005927 "line" : 71,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005928 "column" : 12,
5929 "source_fragment" : "fabric_metadata.skip_next == false"
5930 },
5931 "expression" : {
5932 "type" : "expression",
5933 "value" : {
5934 "op" : "==",
5935 "left" : {
5936 "type" : "expression",
5937 "value" : {
5938 "op" : "d2b",
5939 "left" : null,
5940 "right" : {
5941 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005942 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005943 }
5944 }
5945 },
5946 "right" : {
5947 "type" : "bool",
5948 "value" : false
5949 }
5950 }
5951 },
5952 "false_next" : null,
5953 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005954 },
5955 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005956 "name" : "node_48",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005957 "id" : 15,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005958 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005959 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005960 "line" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005961 "column" : 12,
5962 "source_fragment" : "standard_metadata.egress_spec < 511"
5963 },
5964 "expression" : {
5965 "type" : "expression",
5966 "value" : {
5967 "op" : "<",
5968 "left" : {
5969 "type" : "field",
5970 "value" : ["standard_metadata", "egress_spec"]
5971 },
5972 "right" : {
5973 "type" : "hexstr",
5974 "value" : "0x01ff"
5975 }
5976 }
5977 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005978 "true_next" : "tbl_act_17",
5979 "false_next" : "node_50"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005980 },
5981 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005982 "name" : "node_50",
5983 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005984 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005985 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005986 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005987 "column" : 12,
5988 "source_fragment" : "standard_metadata.ingress_port < 511"
5989 },
5990 "expression" : {
5991 "type" : "expression",
5992 "value" : {
5993 "op" : "<",
5994 "left" : {
5995 "type" : "field",
5996 "value" : ["standard_metadata", "ingress_port"]
5997 },
5998 "right" : {
5999 "type" : "hexstr",
6000 "value" : "0x01ff"
6001 }
6002 }
6003 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006004 "false_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006005 "true_next" : "tbl_act_18"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006006 }
6007 ]
6008 },
6009 {
6010 "name" : "egress",
6011 "id" : 1,
6012 "source_info" : {
6013 "filename" : "fabric.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006014 "line" : 85,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006015 "column" : 8,
6016 "source_fragment" : "FabricEgress"
6017 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006018 "init_table" : "node_54",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006019 "tables" : [
6020 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006021 "name" : "tbl_act_19",
6022 "id" : 33,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006023 "source_info" : {
6024 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006025 "line" : 41,
6026 "column" : 12,
6027 "source_fragment" : "exit"
Carmelo Cascone3032b872019-04-13 01:23:54 -07006028 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006029 "key" : [],
6030 "match_type" : "exact",
6031 "type" : "simple",
6032 "max_size" : 1024,
6033 "with_counters" : false,
6034 "support_timeout" : false,
6035 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006036 "action_ids" : [57],
6037 "actions" : ["act_19"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006038 "base_default_next" : "node_56",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006039 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006040 "act_19" : "node_56"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006041 },
6042 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006043 "action_id" : 57,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006044 "action_const" : true,
6045 "action_data" : [],
6046 "action_entry_const" : true
6047 }
6048 },
6049 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006050 "name" : "tbl_act_20",
6051 "id" : 34,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006052 "source_info" : {
6053 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006054 "line" : 47,
6055 "column" : 16,
6056 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07006057 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006058 "key" : [],
6059 "match_type" : "exact",
6060 "type" : "simple",
6061 "max_size" : 1024,
6062 "with_counters" : false,
6063 "support_timeout" : false,
6064 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006065 "action_ids" : [58],
6066 "actions" : ["act_20"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006067 "base_default_next" : "tbl_act_21",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006068 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006069 "act_20" : "tbl_act_21"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006070 },
6071 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006072 "action_id" : 58,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006073 "action_const" : true,
6074 "action_data" : [],
6075 "action_entry_const" : true
6076 }
6077 },
6078 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006079 "name" : "tbl_act_21",
6080 "id" : 35,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006081 "source_info" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006082 "filename" : "include/control/packetio.p4",
6083 "line" : 49,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006084 "column" : 12,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006085 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07006086 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006087 "key" : [],
6088 "match_type" : "exact",
6089 "type" : "simple",
6090 "max_size" : 1024,
6091 "with_counters" : false,
6092 "support_timeout" : false,
6093 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006094 "action_ids" : [59],
6095 "actions" : ["act_21"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006096 "base_default_next" : "node_60",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006097 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006098 "act_21" : "node_60"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006099 },
6100 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006101 "action_id" : 59,
6102 "action_const" : true,
6103 "action_data" : [],
6104 "action_entry_const" : true
6105 }
6106 },
6107 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006108 "name" : "tbl_act_22",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006109 "id" : 36,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006110 "source_info" : {
6111 "filename" : "include/control/next.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006112 "line" : 308,
6113 "column" : 12,
6114 "source_fragment" : "mark_to_drop(standard_metadata)"
6115 },
6116 "key" : [],
6117 "match_type" : "exact",
6118 "type" : "simple",
6119 "max_size" : 1024,
6120 "with_counters" : false,
6121 "support_timeout" : false,
6122 "direct_meters" : null,
6123 "action_ids" : [60],
6124 "actions" : ["act_22"],
6125 "base_default_next" : "node_62",
6126 "next_tables" : {
6127 "act_22" : "node_62"
6128 },
6129 "default_entry" : {
6130 "action_id" : 60,
6131 "action_const" : true,
6132 "action_data" : [],
6133 "action_entry_const" : true
6134 }
6135 },
6136 {
6137 "name" : "tbl_egress_next_pop_mpls_if_present",
6138 "id" : 37,
6139 "source_info" : {
6140 "filename" : "include/control/next.p4",
Carmelo Cascone3032b872019-04-13 01:23:54 -07006141 "line" : 312,
6142 "column" : 36,
6143 "source_fragment" : "pop_mpls_if_present()"
6144 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006145 "key" : [],
6146 "match_type" : "exact",
6147 "type" : "simple",
6148 "max_size" : 1024,
6149 "with_counters" : false,
6150 "support_timeout" : false,
6151 "direct_meters" : null,
6152 "action_ids" : [53],
6153 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
6154 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6155 "next_tables" : {
6156 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
6157 },
6158 "default_entry" : {
6159 "action_id" : 53,
6160 "action_const" : true,
6161 "action_data" : [],
6162 "action_entry_const" : true
6163 }
6164 },
6165 {
6166 "name" : "tbl_egress_next_set_mpls",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006167 "id" : 38,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006168 "source_info" : {
6169 "filename" : "include/control/next.p4",
6170 "line" : 314,
6171 "column" : 12,
6172 "source_fragment" : "set_mpls()"
6173 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006174 "key" : [],
6175 "match_type" : "exact",
6176 "type" : "simple",
6177 "max_size" : 1024,
6178 "with_counters" : false,
6179 "support_timeout" : false,
6180 "direct_meters" : null,
6181 "action_ids" : [54],
6182 "actions" : ["FabricEgress.egress_next.set_mpls"],
6183 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6184 "next_tables" : {
6185 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
6186 },
6187 "default_entry" : {
6188 "action_id" : 54,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006189 "action_const" : true,
6190 "action_data" : [],
6191 "action_entry_const" : true
6192 }
6193 },
6194 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006195 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006196 "id" : 39,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006197 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006198 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006199 "line" : 291,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006200 "column" : 10,
6201 "source_fragment" : "egress_vlan"
6202 },
6203 "key" : [
6204 {
6205 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006206 "name" : "vlan_id",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006207 "target" : ["scalars", "fabric_metadata_t._vlan_id2"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006208 "mask" : null
6209 },
6210 {
6211 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006212 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006213 "target" : ["standard_metadata", "egress_port"],
6214 "mask" : null
6215 }
6216 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006217 "match_type" : "exact",
6218 "type" : "simple",
6219 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08006220 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006221 "support_timeout" : false,
6222 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006223 "action_ids" : [56, 51],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006224 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006225 "base_default_next" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006226 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006227 "__HIT__" : "tbl_act_23",
6228 "__MISS__" : "tbl_act_24"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006229 },
6230 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006231 "action_id" : 51,
6232 "action_const" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006233 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006234 "action_entry_const" : true
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006235 }
6236 },
6237 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006238 "name" : "tbl_act_23",
6239 "id" : 40,
6240 "key" : [],
6241 "match_type" : "exact",
6242 "type" : "simple",
6243 "max_size" : 1024,
6244 "with_counters" : false,
6245 "support_timeout" : false,
6246 "direct_meters" : null,
6247 "action_ids" : [61],
6248 "actions" : ["act_23"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006249 "base_default_next" : "node_69",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006250 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006251 "act_23" : "node_69"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006252 },
6253 "default_entry" : {
6254 "action_id" : 61,
6255 "action_const" : true,
6256 "action_data" : [],
6257 "action_entry_const" : true
6258 }
6259 },
6260 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006261 "name" : "tbl_act_24",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006262 "id" : 41,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006263 "key" : [],
6264 "match_type" : "exact",
6265 "type" : "simple",
6266 "max_size" : 1024,
6267 "with_counters" : false,
6268 "support_timeout" : false,
6269 "direct_meters" : null,
6270 "action_ids" : [62],
6271 "actions" : ["act_24"],
6272 "base_default_next" : "node_69",
6273 "next_tables" : {
6274 "act_24" : "node_69"
6275 },
6276 "default_entry" : {
6277 "action_id" : 62,
6278 "action_const" : true,
6279 "action_data" : [],
6280 "action_entry_const" : true
6281 }
6282 },
6283 {
6284 "name" : "tbl_egress_next_push_vlan",
6285 "id" : 42,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006286 "source_info" : {
6287 "filename" : "include/control/next.p4",
6288 "line" : 320,
6289 "column" : 16,
6290 "source_fragment" : "push_vlan()"
6291 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006292 "key" : [],
6293 "match_type" : "exact",
6294 "type" : "simple",
6295 "max_size" : 1024,
6296 "with_counters" : false,
6297 "support_timeout" : false,
6298 "direct_meters" : null,
6299 "action_ids" : [55],
6300 "actions" : ["FabricEgress.egress_next.push_vlan"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006301 "base_default_next" : "node_72",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006302 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006303 "FabricEgress.egress_next.push_vlan" : "node_72"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006304 },
6305 "default_entry" : {
6306 "action_id" : 55,
6307 "action_const" : true,
6308 "action_data" : [],
6309 "action_entry_const" : true
6310 }
6311 },
6312 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006313 "name" : "tbl_act_25",
6314 "id" : 43,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006315 "source_info" : {
6316 "filename" : "include/control/next.p4",
6317 "line" : 326,
6318 "column" : 25,
6319 "source_fragment" : "="
6320 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006321 "key" : [],
6322 "match_type" : "exact",
6323 "type" : "simple",
6324 "max_size" : 1024,
6325 "with_counters" : false,
6326 "support_timeout" : false,
6327 "direct_meters" : null,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006328 "action_ids" : [64],
6329 "actions" : ["act_26"],
6330 "base_default_next" : "node_74",
6331 "next_tables" : {
6332 "act_26" : "node_74"
6333 },
6334 "default_entry" : {
6335 "action_id" : 64,
6336 "action_const" : true,
6337 "action_data" : [],
6338 "action_entry_const" : true
6339 }
6340 },
6341 {
6342 "name" : "tbl_act_26",
6343 "id" : 44,
6344 "source_info" : {
6345 "filename" : "include/control/next.p4",
6346 "line" : 327,
6347 "column" : 35,
6348 "source_fragment" : "mark_to_drop(standard_metadata)"
6349 },
6350 "key" : [],
6351 "match_type" : "exact",
6352 "type" : "simple",
6353 "max_size" : 1024,
6354 "with_counters" : false,
6355 "support_timeout" : false,
6356 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006357 "action_ids" : [63],
6358 "actions" : ["act_25"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006359 "base_default_next" : "node_80",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006360 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006361 "act_25" : "node_80"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006362 },
6363 "default_entry" : {
6364 "action_id" : 63,
6365 "action_const" : true,
6366 "action_data" : [],
6367 "action_entry_const" : true
6368 }
6369 },
6370 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006371 "name" : "tbl_act_27",
6372 "id" : 45,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006373 "source_info" : {
6374 "filename" : "include/control/next.p4",
6375 "line" : 330,
6376 "column" : 29,
6377 "source_fragment" : "="
6378 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006379 "key" : [],
6380 "match_type" : "exact",
6381 "type" : "simple",
6382 "max_size" : 1024,
6383 "with_counters" : false,
6384 "support_timeout" : false,
6385 "direct_meters" : null,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006386 "action_ids" : [66],
6387 "actions" : ["act_28"],
6388 "base_default_next" : "node_78",
6389 "next_tables" : {
6390 "act_28" : "node_78"
6391 },
6392 "default_entry" : {
6393 "action_id" : 66,
6394 "action_const" : true,
6395 "action_data" : [],
6396 "action_entry_const" : true
6397 }
6398 },
6399 {
6400 "name" : "tbl_act_28",
6401 "id" : 46,
6402 "source_info" : {
6403 "filename" : "include/control/next.p4",
6404 "line" : 331,
6405 "column" : 39,
6406 "source_fragment" : "mark_to_drop(standard_metadata)"
6407 },
6408 "key" : [],
6409 "match_type" : "exact",
6410 "type" : "simple",
6411 "max_size" : 1024,
6412 "with_counters" : false,
6413 "support_timeout" : false,
6414 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006415 "action_ids" : [65],
6416 "actions" : ["act_27"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006417 "base_default_next" : "node_80",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006418 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006419 "act_27" : "node_80"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006420 },
6421 "default_entry" : {
6422 "action_id" : 65,
6423 "action_const" : true,
6424 "action_data" : [],
6425 "action_entry_const" : true
6426 }
6427 },
6428 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006429 "name" : "tbl_spgw_egress_gtpu_encap",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006430 "id" : 47,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006431 "source_info" : {
6432 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006433 "line" : 228,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006434 "column" : 12,
6435 "source_fragment" : "gtpu_encap()"
6436 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006437 "key" : [],
6438 "match_type" : "exact",
6439 "type" : "simple",
6440 "max_size" : 1024,
6441 "with_counters" : false,
6442 "support_timeout" : false,
6443 "direct_meters" : null,
6444 "action_ids" : [52],
Yi Tseng27b9bc02018-04-12 14:52:40 +08006445 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006446 "base_default_next" : null,
6447 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006448 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006449 },
6450 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006451 "action_id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006452 "action_const" : true,
6453 "action_data" : [],
6454 "action_entry_const" : true
6455 }
6456 }
6457 ],
6458 "action_profiles" : [],
6459 "conditionals" : [
6460 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006461 "name" : "node_54",
6462 "id" : 17,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006463 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006464 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006465 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006466 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006467 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006468 },
6469 "expression" : {
6470 "type" : "expression",
6471 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006472 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006473 "left" : {
6474 "type" : "expression",
6475 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006476 "op" : "d2b",
6477 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006478 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006479 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006480 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out12"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02006481 }
6482 }
6483 },
6484 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006485 "type" : "bool",
6486 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02006487 }
6488 }
6489 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006490 "true_next" : "tbl_act_19",
6491 "false_next" : "node_56"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006492 },
6493 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006494 "name" : "node_56",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006495 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006496 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006497 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006498 "line" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006499 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08006500 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006501 },
6502 "expression" : {
6503 "type" : "expression",
6504 "value" : {
6505 "op" : "==",
6506 "left" : {
6507 "type" : "field",
6508 "value" : ["standard_metadata", "egress_port"]
6509 },
6510 "right" : {
6511 "type" : "hexstr",
6512 "value" : "0x00ff"
6513 }
6514 }
6515 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006516 "true_next" : "node_57",
6517 "false_next" : "node_60"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006518 },
6519 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006520 "name" : "node_57",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006521 "id" : 19,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006522 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006523 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006524 "line" : 44,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006525 "column" : 16,
6526 "source_fragment" : "fabric_metadata.is_multicast == true && ..."
6527 },
6528 "expression" : {
6529 "type" : "expression",
6530 "value" : {
6531 "op" : "and",
6532 "left" : {
6533 "type" : "expression",
6534 "value" : {
6535 "op" : "==",
6536 "left" : {
6537 "type" : "expression",
6538 "value" : {
6539 "op" : "d2b",
6540 "left" : null,
6541 "right" : {
6542 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006543 "value" : ["scalars", "fabric_metadata_t._is_multicast11"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006544 }
6545 }
6546 },
6547 "right" : {
6548 "type" : "bool",
6549 "value" : true
6550 }
6551 }
6552 },
6553 "right" : {
6554 "type" : "expression",
6555 "value" : {
6556 "op" : "==",
6557 "left" : {
6558 "type" : "expression",
6559 "value" : {
6560 "op" : "d2b",
6561 "left" : null,
6562 "right" : {
6563 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006564 "value" : ["scalars", "fabric_metadata_t._clone_to_cpu13"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006565 }
6566 }
6567 },
6568 "right" : {
6569 "type" : "bool",
6570 "value" : false
6571 }
6572 }
6573 }
6574 }
6575 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006576 "true_next" : "tbl_act_20",
6577 "false_next" : "tbl_act_21"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006578 },
6579 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006580 "name" : "node_60",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006581 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006582 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006583 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006584 "line" : 306,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006585 "column" : 12,
6586 "source_fragment" : "fabric_metadata.is_multicast == true ..."
6587 },
6588 "expression" : {
6589 "type" : "expression",
6590 "value" : {
6591 "op" : "and",
6592 "left" : {
6593 "type" : "expression",
6594 "value" : {
6595 "op" : "==",
6596 "left" : {
6597 "type" : "expression",
6598 "value" : {
6599 "op" : "d2b",
6600 "left" : null,
6601 "right" : {
6602 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006603 "value" : ["scalars", "fabric_metadata_t._is_multicast11"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006604 }
6605 }
6606 },
6607 "right" : {
6608 "type" : "bool",
6609 "value" : true
6610 }
6611 }
6612 },
6613 "right" : {
6614 "type" : "expression",
6615 "value" : {
6616 "op" : "==",
6617 "left" : {
6618 "type" : "field",
6619 "value" : ["standard_metadata", "ingress_port"]
6620 },
6621 "right" : {
6622 "type" : "field",
6623 "value" : ["standard_metadata", "egress_port"]
6624 }
6625 }
6626 }
6627 }
6628 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006629 "true_next" : "tbl_act_22",
6630 "false_next" : "node_62"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006631 },
6632 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006633 "name" : "node_62",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006634 "id" : 21,
6635 "source_info" : {
6636 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006637 "line" : 311,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006638 "column" : 12,
6639 "source_fragment" : "fabric_metadata.mpls_label == 0"
6640 },
6641 "expression" : {
6642 "type" : "expression",
6643 "value" : {
6644 "op" : "==",
6645 "left" : {
6646 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006647 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006648 },
6649 "right" : {
6650 "type" : "hexstr",
6651 "value" : "0x000000"
6652 }
6653 }
6654 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006655 "true_next" : "node_63",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006656 "false_next" : "tbl_egress_next_set_mpls"
6657 },
6658 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006659 "name" : "node_63",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006660 "id" : 22,
6661 "source_info" : {
6662 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006663 "line" : 312,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006664 "column" : 16,
6665 "source_fragment" : "hdr.mpls.isValid()"
6666 },
6667 "expression" : {
6668 "type" : "expression",
6669 "value" : {
6670 "op" : "d2b",
6671 "left" : null,
6672 "right" : {
6673 "type" : "field",
6674 "value" : ["mpls", "$valid$"]
6675 }
6676 }
6677 },
6678 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006679 "false_next" : "FabricEgress.egress_next.egress_vlan"
6680 },
6681 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006682 "name" : "node_69",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006683 "id" : 23,
6684 "source_info" : {
6685 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006686 "line" : 317,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006687 "column" : 12,
6688 "source_fragment" : "!egress_vlan.apply().hit"
6689 },
6690 "expression" : {
6691 "type" : "expression",
6692 "value" : {
6693 "op" : "not",
6694 "left" : null,
6695 "right" : {
6696 "type" : "expression",
6697 "value" : {
6698 "op" : "d2b",
6699 "left" : null,
6700 "right" : {
6701 "type" : "field",
6702 "value" : ["scalars", "egress_next_tmp"]
6703 }
6704 }
6705 }
6706 }
6707 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006708 "true_next" : "node_70",
6709 "false_next" : "node_72"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006710 },
6711 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006712 "name" : "node_70",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006713 "id" : 24,
6714 "source_info" : {
6715 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006716 "line" : 319,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006717 "column" : 16,
6718 "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
6719 },
6720 "expression" : {
6721 "type" : "expression",
6722 "value" : {
6723 "op" : "!=",
6724 "left" : {
6725 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006726 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006727 },
6728 "right" : {
6729 "type" : "hexstr",
6730 "value" : "0x0ffe"
6731 }
6732 }
6733 },
6734 "true_next" : "tbl_egress_next_push_vlan",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006735 "false_next" : "node_72"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006736 },
6737 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006738 "name" : "node_72",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006739 "id" : 25,
6740 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006741 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006742 "line" : 325,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006743 "column" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006744 "source_fragment" : "hdr.mpls.isValid()"
6745 },
6746 "expression" : {
6747 "type" : "expression",
6748 "value" : {
6749 "op" : "d2b",
6750 "left" : null,
6751 "right" : {
6752 "type" : "field",
6753 "value" : ["mpls", "$valid$"]
6754 }
6755 }
6756 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006757 "true_next" : "tbl_act_25",
6758 "false_next" : "node_76"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006759 },
6760 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006761 "name" : "node_74",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006762 "id" : 26,
6763 "source_info" : {
6764 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006765 "line" : 327,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006766 "column" : 16,
6767 "source_fragment" : "hdr.mpls.ttl == 0"
6768 },
6769 "expression" : {
6770 "type" : "expression",
6771 "value" : {
6772 "op" : "==",
6773 "left" : {
6774 "type" : "field",
6775 "value" : ["mpls", "ttl"]
6776 },
6777 "right" : {
6778 "type" : "hexstr",
6779 "value" : "0x00"
6780 }
6781 }
6782 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006783 "true_next" : "tbl_act_26",
6784 "false_next" : "node_80"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006785 },
6786 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006787 "name" : "node_76",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006788 "id" : 27,
6789 "source_info" : {
6790 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006791 "line" : 329,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006792 "column" : 15,
6793 "source_fragment" : "hdr.ipv4.isValid()"
6794 },
6795 "expression" : {
6796 "type" : "expression",
6797 "value" : {
6798 "op" : "d2b",
6799 "left" : null,
6800 "right" : {
6801 "type" : "field",
6802 "value" : ["ipv4", "$valid$"]
6803 }
6804 }
6805 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006806 "true_next" : "tbl_act_27",
6807 "false_next" : "node_80"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006808 },
6809 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006810 "name" : "node_78",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006811 "id" : 28,
6812 "source_info" : {
6813 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006814 "line" : 331,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006815 "column" : 20,
6816 "source_fragment" : "hdr.ipv4.ttl == 0"
6817 },
6818 "expression" : {
6819 "type" : "expression",
6820 "value" : {
6821 "op" : "==",
6822 "left" : {
6823 "type" : "field",
6824 "value" : ["ipv4", "ttl"]
6825 },
6826 "right" : {
6827 "type" : "hexstr",
6828 "value" : "0x00"
6829 }
6830 }
6831 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006832 "true_next" : "tbl_act_28",
6833 "false_next" : "node_80"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006834 },
6835 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006836 "name" : "node_80",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006837 "id" : 29,
6838 "source_info" : {
6839 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006840 "line" : 227,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006841 "column" : 12,
6842 "source_fragment" : "fabric_meta.spgw.direction == SPGW_DIR_DOWNLINK"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006843 },
6844 "expression" : {
6845 "type" : "expression",
6846 "value" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006847 "op" : "==",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006848 "left" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006849 "type" : "field",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006850 "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006851 },
6852 "right" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006853 "type" : "hexstr",
6854 "value" : "0x02"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006855 }
6856 }
6857 },
6858 "false_next" : null,
6859 "true_next" : "tbl_spgw_egress_gtpu_encap"
6860 }
6861 ]
6862 }
6863 ],
6864 "checksums" : [
6865 {
6866 "name" : "cksum",
6867 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006868 "source_info" : {
6869 "filename" : "include/checksum.p4",
6870 "line" : 28,
6871 "column" : 8,
6872 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
6873 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006874 "target" : ["ipv4", "hdr_checksum"],
6875 "type" : "generic",
6876 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006877 "verify" : false,
6878 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006879 "if_cond" : {
6880 "type" : "expression",
6881 "value" : {
6882 "op" : "d2b",
6883 "left" : null,
6884 "right" : {
6885 "type" : "field",
6886 "value" : ["ipv4", "$valid$"]
6887 }
6888 }
6889 }
6890 },
6891 {
6892 "name" : "cksum_0",
6893 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006894 "source_info" : {
6895 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006896 "line" : 243,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006897 "column" : 8,
6898 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
6899 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006900 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006901 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006902 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006903 "verify" : false,
6904 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006905 "if_cond" : {
6906 "type" : "expression",
6907 "value" : {
6908 "op" : "d2b",
6909 "left" : null,
6910 "right" : {
6911 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006912 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006913 }
6914 }
6915 }
6916 },
6917 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006918 "name" : "cksum_1",
6919 "id" : 2,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006920 "source_info" : {
6921 "filename" : "include/checksum.p4",
6922 "line" : 57,
6923 "column" : 8,
6924 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
6925 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006926 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006927 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006928 "calculation" : "calc_1",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006929 "verify" : true,
6930 "update" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006931 "if_cond" : {
6932 "type" : "expression",
6933 "value" : {
6934 "op" : "d2b",
6935 "left" : null,
6936 "right" : {
6937 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006938 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006939 }
6940 }
6941 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006942 }
6943 ],
6944 "force_arith" : [],
6945 "extern_instances" : [],
6946 "field_aliases" : [
6947 [
6948 "queueing_metadata.enq_timestamp",
6949 ["standard_metadata", "enq_timestamp"]
6950 ],
6951 [
6952 "queueing_metadata.enq_qdepth",
6953 ["standard_metadata", "enq_qdepth"]
6954 ],
6955 [
6956 "queueing_metadata.deq_timedelta",
6957 ["standard_metadata", "deq_timedelta"]
6958 ],
6959 [
6960 "queueing_metadata.deq_qdepth",
6961 ["standard_metadata", "deq_qdepth"]
6962 ],
6963 [
6964 "intrinsic_metadata.ingress_global_timestamp",
6965 ["standard_metadata", "ingress_global_timestamp"]
6966 ],
6967 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08006968 "intrinsic_metadata.egress_global_timestamp",
6969 ["standard_metadata", "egress_global_timestamp"]
6970 ],
6971 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006972 "intrinsic_metadata.lf_field_list",
6973 ["standard_metadata", "lf_field_list"]
6974 ],
6975 [
6976 "intrinsic_metadata.mcast_grp",
6977 ["standard_metadata", "mcast_grp"]
6978 ],
6979 [
6980 "intrinsic_metadata.resubmit_flag",
6981 ["standard_metadata", "resubmit_flag"]
6982 ],
6983 [
6984 "intrinsic_metadata.egress_rid",
6985 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08006986 ],
6987 [
6988 "intrinsic_metadata.recirculate_flag",
6989 ["standard_metadata", "recirculate_flag"]
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006990 ],
6991 [
6992 "intrinsic_metadata.priority",
6993 ["standard_metadata", "priority"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006994 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006995 ],
6996 "program" : "fabric.p4",
6997 "__meta__" : {
6998 "version" : [2, 18],
6999 "compiler" : "https://github.com/p4lang/p4c"
7000 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08007001}