blob: 14c67019225f888784f87aee9c2752de649dc2b2 [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],
Daniele Moro7c3a0022019-07-12 13:38:34 -070016 ["fabric_metadata_t._last_eth_type0", 16, false],
17 ["fabric_metadata_t._is_ipv41", 1, false],
18 ["fabric_metadata_t._is_ipv62", 1, false],
19 ["fabric_metadata_t._is_mpls3", 1, false],
20 ["fabric_metadata_t._ip_eth_type4", 16, false],
21 ["fabric_metadata_t._vlan_id5", 12, false],
22 ["fabric_metadata_t._vlan_pri6", 3, false],
23 ["fabric_metadata_t._vlan_cfi7", 1, false],
24 ["fabric_metadata_t._mpls_label8", 20, false],
25 ["fabric_metadata_t._mpls_ttl9", 8, false],
26 ["fabric_metadata_t._skip_forwarding10", 1, false],
27 ["fabric_metadata_t._skip_next11", 1, false],
28 ["fabric_metadata_t._fwd_type12", 3, false],
29 ["fabric_metadata_t._next_id13", 32, false],
30 ["fabric_metadata_t._is_multicast14", 1, false],
31 ["fabric_metadata_t._is_controller_packet_out15", 1, false],
32 ["fabric_metadata_t._ip_proto16", 8, false],
33 ["fabric_metadata_t._l4_sport17", 16, false],
34 ["fabric_metadata_t._l4_dport18", 16, false],
35 ["fabric_metadata_t._spgw_direction19", 2, false],
36 ["fabric_metadata_t._spgw_ipv4_len20", 16, false],
37 ["fabric_metadata_t._spgw_teid21", 32, false],
38 ["fabric_metadata_t._spgw_s1u_enb_addr22", 32, false],
39 ["fabric_metadata_t._spgw_s1u_sgw_addr23", 32, false],
40 ["_padding_0", 7, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080041 ]
42 },
43 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020044 "name" : "standard_metadata",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080045 "id" : 1,
46 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020047 ["ingress_port", 9, false],
48 ["egress_spec", 9, false],
49 ["egress_port", 9, false],
50 ["clone_spec", 32, false],
51 ["instance_type", 32, false],
52 ["drop", 1, false],
53 ["recirculate_port", 16, false],
54 ["packet_length", 32, false],
55 ["enq_timestamp", 32, false],
56 ["enq_qdepth", 19, false],
57 ["deq_timedelta", 32, false],
58 ["deq_qdepth", 19, false],
59 ["ingress_global_timestamp", 48, false],
60 ["egress_global_timestamp", 48, false],
61 ["lf_field_list", 32, false],
62 ["mcast_grp", 16, false],
63 ["resubmit_flag", 32, false],
64 ["egress_rid", 16, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020065 ["recirculate_flag", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070066 ["checksum_error", 1, false],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -070067 ["parser_error", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070068 ["priority", 3, false],
69 ["_padding", 2, false]
Carmelo Cascone6af4e172018-06-15 16:01:30 +020070 ]
71 },
72 {
73 "name" : "ethernet_t",
74 "id" : 2,
75 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080076 ["dst_addr", 48, false],
77 ["src_addr", 48, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080078 ["eth_type", 16, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080079 ]
80 },
81 {
82 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020083 "id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080084 "fields" : [
85 ["pri", 3, false],
86 ["cfi", 1, false],
87 ["vlan_id", 12, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080088 ["eth_type", 16, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080089 ]
90 },
91 {
92 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020093 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080094 "fields" : [
95 ["label", 20, false],
96 ["tc", 3, false],
97 ["bos", 1, false],
98 ["ttl", 8, false]
99 ]
100 },
101 {
102 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200103 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800104 "fields" : [
105 ["version", 4, false],
106 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900107 ["dscp", 6, false],
108 ["ecn", 2, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800109 ["total_len", 16, false],
110 ["identification", 16, false],
111 ["flags", 3, false],
112 ["frag_offset", 13, false],
113 ["ttl", 8, false],
114 ["protocol", 8, false],
115 ["hdr_checksum", 16, false],
116 ["src_addr", 32, false],
117 ["dst_addr", 32, false]
118 ]
119 },
120 {
121 "name" : "udp_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200122 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800123 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800124 ["sport", 16, false],
125 ["dport", 16, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800126 ["len", 16, false],
127 ["checksum", 16, false]
128 ]
129 },
130 {
131 "name" : "gtpu_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200132 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800133 "fields" : [
134 ["version", 3, false],
135 ["pt", 1, false],
136 ["spare", 1, false],
137 ["ex_flag", 1, false],
138 ["seq_flag", 1, false],
139 ["npdu_flag", 1, false],
140 ["msgtype", 8, false],
141 ["msglen", 16, false],
142 ["teid", 32, false]
143 ]
144 },
145 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800146 "name" : "tcp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800147 "id" : 8,
148 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800149 ["sport", 16, false],
150 ["dport", 16, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800151 ["seq_no", 32, false],
152 ["ack_no", 32, false],
153 ["data_offset", 4, false],
154 ["res", 3, false],
155 ["ecn", 3, false],
156 ["ctrl", 6, false],
157 ["window", 16, false],
158 ["checksum", 16, false],
159 ["urgent_ptr", 16, false]
160 ]
161 },
162 {
163 "name" : "icmp_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800164 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800165 "fields" : [
166 ["icmp_type", 8, false],
167 ["icmp_code", 8, false],
168 ["checksum", 16, false],
169 ["identifier", 16, false],
170 ["sequence_number", 16, false],
171 ["timestamp", 64, false]
172 ]
173 },
174 {
175 "name" : "packet_out_header_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800176 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800177 "fields" : [
178 ["egress_port", 9, false],
179 ["_pad", 7, false]
180 ]
181 },
182 {
183 "name" : "packet_in_header_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800184 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800185 "fields" : [
186 ["ingress_port", 9, false],
187 ["_pad", 7, false]
188 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800189 }
190 ],
191 "headers" : [
192 {
193 "name" : "scalars",
194 "id" : 0,
195 "header_type" : "scalars_0",
196 "metadata" : true,
197 "pi_omit" : true
198 },
199 {
200 "name" : "standard_metadata",
201 "id" : 1,
202 "header_type" : "standard_metadata",
203 "metadata" : true,
204 "pi_omit" : true
205 },
206 {
207 "name" : "ethernet",
208 "id" : 2,
209 "header_type" : "ethernet_t",
210 "metadata" : false,
211 "pi_omit" : true
212 },
213 {
214 "name" : "vlan_tag",
215 "id" : 3,
216 "header_type" : "vlan_tag_t",
217 "metadata" : false,
218 "pi_omit" : true
219 },
220 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800221 "name" : "inner_vlan_tag",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800222 "id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800223 "header_type" : "vlan_tag_t",
224 "metadata" : false,
225 "pi_omit" : true
226 },
227 {
228 "name" : "mpls",
229 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800230 "header_type" : "mpls_t",
231 "metadata" : false,
232 "pi_omit" : true
233 },
234 {
235 "name" : "gtpu_ipv4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800236 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800237 "header_type" : "ipv4_t",
238 "metadata" : false,
239 "pi_omit" : true
240 },
241 {
242 "name" : "gtpu_udp",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800243 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800244 "header_type" : "udp_t",
245 "metadata" : false,
246 "pi_omit" : true
247 },
248 {
249 "name" : "gtpu",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800250 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800251 "header_type" : "gtpu_t",
252 "metadata" : false,
253 "pi_omit" : true
254 },
255 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700256 "name" : "inner_ipv4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800257 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800258 "header_type" : "ipv4_t",
259 "metadata" : false,
260 "pi_omit" : true
261 },
262 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700263 "name" : "inner_udp",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800264 "id" : 10,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700265 "header_type" : "udp_t",
266 "metadata" : false,
267 "pi_omit" : true
268 },
269 {
270 "name" : "ipv4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700271 "id" : 11,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800272 "header_type" : "ipv4_t",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800273 "metadata" : false,
274 "pi_omit" : true
275 },
276 {
277 "name" : "tcp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700278 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800279 "header_type" : "tcp_t",
280 "metadata" : false,
281 "pi_omit" : true
282 },
283 {
284 "name" : "udp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700285 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800286 "header_type" : "udp_t",
287 "metadata" : false,
288 "pi_omit" : true
289 },
290 {
291 "name" : "icmp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700292 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800293 "header_type" : "icmp_t",
294 "metadata" : false,
295 "pi_omit" : true
296 },
297 {
298 "name" : "packet_out",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700299 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800300 "header_type" : "packet_out_header_t",
301 "metadata" : false,
302 "pi_omit" : true
303 },
304 {
305 "name" : "packet_in",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700306 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800307 "header_type" : "packet_in_header_t",
308 "metadata" : false,
309 "pi_omit" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800310 }
311 ],
312 "header_stacks" : [],
313 "header_union_types" : [],
314 "header_unions" : [],
315 "header_union_stacks" : [],
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700316 "field_lists" : [
317 {
318 "id" : 1,
319 "name" : "fl",
320 "source_info" : {
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700321 "filename" : "include/control/acl.p4",
322 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700323 "column" : 40,
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700324 "source_fragment" : "{standard_metadata.ingress_port}"
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700325 },
326 "elements" : [
327 {
328 "type" : "field",
329 "value" : ["standard_metadata", "ingress_port"]
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700330 }
331 ]
332 }
333 ],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700334 "errors" : [
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700335 ["NoError", 1],
336 ["PacketTooShort", 2],
337 ["NoMatch", 3],
338 ["StackOutOfBounds", 4],
339 ["HeaderTooShort", 5],
340 ["ParserTimeout", 6],
341 ["ParserInvalidArgument", 7]
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700342 ],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800343 "enums" : [],
344 "parsers" : [
345 {
346 "name" : "parser",
347 "id" : 0,
348 "init_state" : "start",
349 "parse_states" : [
350 {
351 "name" : "start",
352 "id" : 0,
353 "parser_ops" : [],
354 "transitions" : [
355 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800356 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800357 "value" : "0x00ff",
358 "mask" : null,
359 "next_state" : "parse_packet_out"
360 },
361 {
362 "value" : "default",
363 "mask" : null,
364 "next_state" : "parse_ethernet"
365 }
366 ],
367 "transition_key" : [
368 {
369 "type" : "field",
370 "value" : ["standard_metadata", "ingress_port"]
371 }
372 ]
373 },
374 {
375 "name" : "parse_packet_out",
376 "id" : 1,
377 "parser_ops" : [
378 {
379 "parameters" : [
380 {
381 "type" : "regular",
382 "value" : "packet_out"
383 }
384 ],
385 "op" : "extract"
386 }
387 ],
388 "transitions" : [
389 {
390 "value" : "default",
391 "mask" : null,
392 "next_state" : "parse_ethernet"
393 }
394 ],
395 "transition_key" : []
396 },
397 {
398 "name" : "parse_ethernet",
399 "id" : 2,
400 "parser_ops" : [
401 {
402 "parameters" : [
403 {
404 "type" : "regular",
405 "value" : "ethernet"
406 }
407 ],
408 "op" : "extract"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800409 },
410 {
411 "parameters" : [
412 {
413 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700414 "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800415 },
416 {
417 "type" : "field",
418 "value" : ["ethernet", "eth_type"]
419 }
420 ],
421 "op" : "set"
422 },
423 {
424 "parameters" : [
425 {
426 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700427 "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800428 },
429 {
430 "type" : "hexstr",
431 "value" : "0x0ffe"
432 }
433 ],
434 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800435 }
436 ],
437 "transitions" : [
438 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800439 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800440 "value" : "0x8100",
441 "mask" : null,
442 "next_state" : "parse_vlan_tag"
443 },
444 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800445 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800446 "value" : "0x8847",
447 "mask" : null,
448 "next_state" : "parse_mpls"
449 },
450 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800451 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800452 "value" : "0x0800",
453 "mask" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -0700454 "next_state" : "pre_parse_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800455 },
456 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800457 "value" : "default",
458 "mask" : null,
459 "next_state" : null
460 }
461 ],
462 "transition_key" : [
463 {
464 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800465 "value" : ["ethernet", "eth_type"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800466 }
467 ]
468 },
469 {
470 "name" : "parse_vlan_tag",
471 "id" : 3,
472 "parser_ops" : [
473 {
474 "parameters" : [
475 {
476 "type" : "regular",
477 "value" : "vlan_tag"
478 }
479 ],
480 "op" : "extract"
481 }
482 ],
483 "transitions" : [
484 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800485 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800486 "value" : "0x0800",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800487 "mask" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -0700488 "next_state" : "pre_parse_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800489 },
490 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800491 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800492 "value" : "0x8847",
493 "mask" : null,
494 "next_state" : "parse_mpls"
495 },
496 {
497 "type" : "hexstr",
498 "value" : "0x8100",
499 "mask" : null,
500 "next_state" : "parse_inner_vlan_tag"
501 },
502 {
Daniele Moro7c3a0022019-07-12 13:38:34 -0700503 "type" : "hexstr",
504 "value" : "0x88a8",
505 "mask" : null,
506 "next_state" : "parse_inner_vlan_tag"
507 },
508 {
509 "type" : "hexstr",
510 "value" : "0x9100",
511 "mask" : null,
512 "next_state" : "parse_inner_vlan_tag"
513 },
514 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800515 "value" : "default",
516 "mask" : null,
517 "next_state" : null
518 }
519 ],
520 "transition_key" : [
521 {
522 "type" : "field",
523 "value" : ["vlan_tag", "eth_type"]
524 }
525 ]
526 },
527 {
528 "name" : "parse_inner_vlan_tag",
529 "id" : 4,
530 "parser_ops" : [
531 {
532 "parameters" : [
533 {
534 "type" : "regular",
535 "value" : "inner_vlan_tag"
536 }
537 ],
538 "op" : "extract"
539 }
540 ],
541 "transitions" : [
542 {
543 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800544 "value" : "0x0800",
545 "mask" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -0700546 "next_state" : "pre_parse_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800547 },
548 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800549 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800550 "value" : "0x8847",
551 "mask" : null,
552 "next_state" : "parse_mpls"
553 },
554 {
555 "value" : "default",
556 "mask" : null,
557 "next_state" : null
558 }
559 ],
560 "transition_key" : [
561 {
562 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800563 "value" : ["inner_vlan_tag", "eth_type"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800564 }
565 ]
566 },
567 {
568 "name" : "parse_mpls",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800569 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800570 "parser_ops" : [
571 {
572 "parameters" : [
573 {
574 "type" : "regular",
575 "value" : "mpls"
576 }
577 ],
578 "op" : "extract"
579 },
580 {
581 "parameters" : [
582 {
583 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700584 "value" : ["scalars", "fabric_metadata_t._is_mpls3"]
585 },
586 {
587 "type" : "expression",
588 "value" : {
589 "type" : "expression",
590 "value" : {
591 "op" : "b2d",
592 "left" : null,
593 "right" : {
594 "type" : "bool",
595 "value" : true
596 }
597 }
598 }
599 }
600 ],
601 "op" : "set"
602 },
603 {
604 "parameters" : [
605 {
606 "type" : "field",
607 "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800608 },
609 {
610 "type" : "field",
611 "value" : ["mpls", "label"]
612 }
613 ],
614 "op" : "set"
615 },
616 {
617 "parameters" : [
618 {
619 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700620 "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800621 },
622 {
623 "type" : "field",
624 "value" : ["mpls", "ttl"]
625 }
626 ],
627 "op" : "set"
628 },
629 {
630 "parameters" : [
631 {
632 "type" : "field",
633 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800634 },
635 {
636 "type" : "lookahead",
637 "value" : [0, 4]
638 }
639 ],
640 "op" : "set"
641 }
642 ],
643 "transitions" : [
644 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800645 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800646 "value" : "0x04",
647 "mask" : null,
648 "next_state" : "parse_ipv4"
649 },
650 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800651 "value" : "default",
652 "mask" : null,
653 "next_state" : "parse_ethernet"
654 }
655 ],
656 "transition_key" : [
657 {
658 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800659 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800660 }
661 ]
662 },
663 {
Daniele Moro7c3a0022019-07-12 13:38:34 -0700664 "name" : "pre_parse_ipv4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800665 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800666 "parser_ops" : [
667 {
668 "parameters" : [
669 {
Daniele Moro7c3a0022019-07-12 13:38:34 -0700670 "type" : "field",
671 "value" : ["scalars", "fabric_metadata_t._is_ipv41"]
672 },
673 {
674 "type" : "expression",
675 "value" : {
676 "type" : "expression",
677 "value" : {
678 "op" : "b2d",
679 "left" : null,
680 "right" : {
681 "type" : "bool",
682 "value" : true
683 }
684 }
685 }
686 }
687 ],
688 "op" : "set"
689 }
690 ],
691 "transitions" : [
692 {
693 "value" : "default",
694 "mask" : null,
695 "next_state" : "parse_ipv4"
696 }
697 ],
698 "transition_key" : []
699 },
700 {
701 "name" : "parse_ipv4",
702 "id" : 7,
703 "parser_ops" : [
704 {
705 "parameters" : [
706 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800707 "type" : "regular",
708 "value" : "ipv4"
709 }
710 ],
711 "op" : "extract"
712 },
713 {
714 "parameters" : [
715 {
716 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700717 "value" : ["scalars", "fabric_metadata_t._ip_proto16"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800718 },
719 {
720 "type" : "field",
721 "value" : ["ipv4", "protocol"]
722 }
723 ],
724 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800725 },
726 {
727 "parameters" : [
728 {
729 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700730 "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800731 },
732 {
733 "type" : "hexstr",
734 "value" : "0x0800"
735 }
736 ],
737 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800738 }
739 ],
740 "transitions" : [
741 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800742 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800743 "value" : "0x06",
744 "mask" : null,
745 "next_state" : "parse_tcp"
746 },
747 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800748 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800749 "value" : "0x11",
750 "mask" : null,
751 "next_state" : "parse_udp"
752 },
753 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800754 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800755 "value" : "0x01",
756 "mask" : null,
757 "next_state" : "parse_icmp"
758 },
759 {
760 "value" : "default",
761 "mask" : null,
762 "next_state" : null
763 }
764 ],
765 "transition_key" : [
766 {
767 "type" : "field",
768 "value" : ["ipv4", "protocol"]
769 }
770 ]
771 },
772 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800773 "name" : "parse_tcp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700774 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800775 "parser_ops" : [
776 {
777 "parameters" : [
778 {
779 "type" : "regular",
780 "value" : "tcp"
781 }
782 ],
783 "op" : "extract"
784 },
785 {
786 "parameters" : [
787 {
788 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700789 "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800790 },
791 {
792 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800793 "value" : ["tcp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800794 }
795 ],
796 "op" : "set"
797 },
798 {
799 "parameters" : [
800 {
801 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700802 "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800803 },
804 {
805 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800806 "value" : ["tcp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800807 }
808 ],
809 "op" : "set"
810 }
811 ],
812 "transitions" : [
813 {
814 "value" : "default",
815 "mask" : null,
816 "next_state" : null
817 }
818 ],
819 "transition_key" : []
820 },
821 {
822 "name" : "parse_udp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700823 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800824 "parser_ops" : [
825 {
826 "parameters" : [
827 {
828 "type" : "regular",
829 "value" : "udp"
830 }
831 ],
832 "op" : "extract"
833 },
834 {
835 "parameters" : [
836 {
837 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700838 "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800839 },
840 {
841 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800842 "value" : ["udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800843 }
844 ],
845 "op" : "set"
846 },
847 {
848 "parameters" : [
849 {
850 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700851 "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800852 },
853 {
854 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800855 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800856 }
857 ],
858 "op" : "set"
859 }
860 ],
861 "transitions" : [
862 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800863 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800864 "value" : "0x0868",
865 "mask" : null,
866 "next_state" : "parse_gtpu"
867 },
868 {
869 "value" : "default",
870 "mask" : null,
871 "next_state" : null
872 }
873 ],
874 "transition_key" : [
875 {
876 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800877 "value" : ["udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800878 }
879 ]
880 },
881 {
882 "name" : "parse_icmp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700883 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800884 "parser_ops" : [
885 {
886 "parameters" : [
887 {
888 "type" : "regular",
889 "value" : "icmp"
890 }
891 ],
892 "op" : "extract"
893 }
894 ],
895 "transitions" : [
896 {
897 "value" : "default",
898 "mask" : null,
899 "next_state" : null
900 }
901 ],
902 "transition_key" : []
903 },
904 {
905 "name" : "parse_gtpu",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700906 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800907 "parser_ops" : [
908 {
909 "parameters" : [
910 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700911 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800912 "value" : ["scalars", "tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700913 },
914 {
915 "type" : "expression",
916 "value" : {
917 "type" : "expression",
918 "value" : {
919 "op" : "&",
920 "left" : {
921 "type" : "expression",
922 "value" : {
923 "op" : "&",
924 "left" : {
925 "type" : "expression",
926 "value" : {
927 "op" : ">>",
928 "left" : {
929 "type" : "field",
930 "value" : ["ipv4", "dst_addr"]
931 },
932 "right" : {
933 "type" : "hexstr",
934 "value" : "0x18"
935 }
936 }
937 },
938 "right" : {
939 "type" : "hexstr",
940 "value" : "0xffffffff"
941 }
942 }
943 },
944 "right" : {
945 "type" : "hexstr",
946 "value" : "0xff"
947 }
948 }
949 }
950 }
951 ],
952 "op" : "set"
953 }
954 ],
955 "transitions" : [
956 {
957 "type" : "hexstr",
958 "value" : "0x8c",
959 "mask" : null,
960 "next_state" : "do_parse_gtpu"
961 },
962 {
963 "value" : "default",
964 "mask" : null,
965 "next_state" : null
966 }
967 ],
968 "transition_key" : [
969 {
970 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800971 "value" : ["scalars", "tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700972 }
973 ]
974 },
975 {
976 "name" : "do_parse_gtpu",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700977 "id" : 12,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700978 "parser_ops" : [
979 {
980 "parameters" : [
981 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800982 "type" : "regular",
983 "value" : "gtpu"
984 }
985 ],
986 "op" : "extract"
987 },
988 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800989 "parameters" : [
990 {
991 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700992 "value" : "inner_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800993 }
994 ],
995 "op" : "extract"
996 }
997 ],
998 "transitions" : [
999 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001000 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001001 "value" : "0x06",
1002 "mask" : null,
1003 "next_state" : "parse_tcp"
1004 },
1005 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001006 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001007 "value" : "0x11",
1008 "mask" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001009 "next_state" : "parse_inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001010 },
1011 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001012 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001013 "value" : "0x01",
1014 "mask" : null,
1015 "next_state" : "parse_icmp"
1016 },
1017 {
1018 "value" : "default",
1019 "mask" : null,
1020 "next_state" : null
1021 }
1022 ],
1023 "transition_key" : [
1024 {
1025 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001026 "value" : ["inner_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001027 }
1028 ]
1029 },
1030 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001031 "name" : "parse_inner_udp",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001032 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001033 "parser_ops" : [
1034 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001035 "parameters" : [
1036 {
1037 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001038 "value" : "inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001039 }
1040 ],
1041 "op" : "extract"
1042 },
1043 {
1044 "parameters" : [
1045 {
1046 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001047 "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001048 },
1049 {
1050 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001051 "value" : ["inner_udp", "sport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001052 }
1053 ],
1054 "op" : "set"
1055 },
1056 {
1057 "parameters" : [
1058 {
1059 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001060 "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001061 },
1062 {
1063 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001064 "value" : ["inner_udp", "dport"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001065 }
1066 ],
1067 "op" : "set"
1068 }
1069 ],
1070 "transitions" : [
1071 {
1072 "value" : "default",
1073 "mask" : null,
1074 "next_state" : null
1075 }
1076 ],
1077 "transition_key" : []
1078 }
1079 ]
1080 }
1081 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001082 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001083 "deparsers" : [
1084 {
1085 "name" : "deparser",
1086 "id" : 0,
1087 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001088 "filename" : "include/parser.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001089 "line" : 276,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001090 "column" : 8,
1091 "source_fragment" : "FabricDeparser"
1092 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001093 "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 -08001094 }
1095 ],
1096 "meter_arrays" : [],
1097 "counter_arrays" : [
1098 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001099 "name" : "FabricIngress.spgw_ingress.ue_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001100 "id" : 0,
1101 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001102 "binding" : "FabricIngress.spgw_ingress.dl_sess_lookup",
1103 "source_info" : {
1104 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001105 "line" : 52,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001106 "column" : 50,
1107 "source_fragment" : "ue_counter"
1108 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001109 },
1110 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001111 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001112 "id" : 1,
1113 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001114 "binding" : "FabricIngress.filtering.ingress_port_vlan",
1115 "source_info" : {
1116 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001117 "line" : 31,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001118 "column" : 50,
1119 "source_fragment" : "ingress_port_vlan_counter"
1120 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001121 },
1122 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001123 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001124 "id" : 2,
1125 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001126 "binding" : "FabricIngress.filtering.fwd_classifier",
1127 "source_info" : {
1128 "filename" : "include/control/filtering.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001129 "line" : 83,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001130 "column" : 50,
1131 "source_fragment" : "fwd_classifier_counter"
1132 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001133 },
1134 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001135 "name" : "FabricIngress.forwarding.bridging_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001136 "id" : 3,
1137 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001138 "binding" : "FabricIngress.forwarding.bridging",
1139 "source_info" : {
1140 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001141 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001142 "column" : 50,
1143 "source_fragment" : "bridging_counter"
1144 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001145 },
1146 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001147 "name" : "FabricIngress.forwarding.mpls_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001148 "id" : 4,
1149 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001150 "binding" : "FabricIngress.forwarding.mpls",
1151 "source_info" : {
1152 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001153 "line" : 63,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001154 "column" : 50,
1155 "source_fragment" : "mpls_counter"
1156 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001157 },
1158 {
Charles Chan384aea22018-08-23 22:08:02 -07001159 "name" : "FabricIngress.forwarding.routing_v4_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001160 "id" : 5,
1161 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001162 "binding" : "FabricIngress.forwarding.routing_v4",
1163 "source_info" : {
1164 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001165 "line" : 87,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001166 "column" : 50,
1167 "source_fragment" : "routing_v4_counter"
1168 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001169 },
1170 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001171 "name" : "FabricIngress.acl.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001172 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001173 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001174 "binding" : "FabricIngress.acl.acl",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001175 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001176 "filename" : "include/control/acl.p4",
1177 "line" : 30,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001178 "column" : 50,
1179 "source_fragment" : "acl_counter"
1180 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001181 },
1182 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001183 "name" : "FabricIngress.next.next_vlan_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001184 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001185 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001186 "binding" : "FabricIngress.next.next_vlan",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001187 "source_info" : {
1188 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001189 "line" : 67,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001190 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001191 "source_fragment" : "next_vlan_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001192 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001193 },
1194 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001195 "name" : "FabricIngress.next.xconnect_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001196 "id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001197 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001198 "binding" : "FabricIngress.next.xconnect",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001199 "source_info" : {
1200 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001201 "line" : 103,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001202 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001203 "source_fragment" : "xconnect_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001204 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001205 },
1206 {
1207 "name" : "FabricIngress.next.hashed_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001208 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001209 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001210 "binding" : "FabricIngress.next.hashed",
1211 "source_info" : {
1212 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001213 "line" : 178,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001214 "column" : 50,
1215 "source_fragment" : "hashed_counter"
1216 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001217 },
1218 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001219 "name" : "FabricIngress.next.multicast_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001220 "id" : 10,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001221 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001222 "binding" : "FabricIngress.next.multicast",
1223 "source_info" : {
1224 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001225 "line" : 222,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001226 "column" : 50,
1227 "source_fragment" : "multicast_counter"
1228 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00001229 },
1230 {
1231 "name" : "FabricIngress.port_counters_control.egress_port_counter",
1232 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001233 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001234 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001235 "line" : 26,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001236 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001237 "source_fragment" : "egress_port_counter"
1238 },
1239 "size" : 511,
1240 "is_direct" : false
1241 },
1242 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001243 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001244 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001245 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001246 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001247 "line" : 27,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001248 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001249 "source_fragment" : "ingress_port_counter"
1250 },
1251 "size" : 511,
1252 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08001253 },
1254 {
1255 "name" : "FabricEgress.egress_next.egress_vlan_counter",
1256 "id" : 13,
1257 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001258 "binding" : "FabricEgress.egress_next.egress_vlan",
1259 "source_info" : {
1260 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001261 "line" : 309,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001262 "column" : 50,
1263 "source_fragment" : "egress_vlan_counter"
1264 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001265 }
1266 ],
1267 "register_arrays" : [],
1268 "calculations" : [
1269 {
1270 "name" : "calc",
1271 "id" : 0,
1272 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001273 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001274 "line" : 28,
1275 "column" : 8,
1276 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1277 },
1278 "algo" : "csum16",
1279 "input" : [
1280 {
1281 "type" : "field",
1282 "value" : ["ipv4", "version"]
1283 },
1284 {
1285 "type" : "field",
1286 "value" : ["ipv4", "ihl"]
1287 },
1288 {
1289 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001290 "value" : ["ipv4", "dscp"]
1291 },
1292 {
1293 "type" : "field",
1294 "value" : ["ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001295 },
1296 {
1297 "type" : "field",
1298 "value" : ["ipv4", "total_len"]
1299 },
1300 {
1301 "type" : "field",
1302 "value" : ["ipv4", "identification"]
1303 },
1304 {
1305 "type" : "field",
1306 "value" : ["ipv4", "flags"]
1307 },
1308 {
1309 "type" : "field",
1310 "value" : ["ipv4", "frag_offset"]
1311 },
1312 {
1313 "type" : "field",
1314 "value" : ["ipv4", "ttl"]
1315 },
1316 {
1317 "type" : "field",
1318 "value" : ["ipv4", "protocol"]
1319 },
1320 {
1321 "type" : "field",
1322 "value" : ["ipv4", "src_addr"]
1323 },
1324 {
1325 "type" : "field",
1326 "value" : ["ipv4", "dst_addr"]
1327 }
1328 ]
1329 },
1330 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001331 "name" : "calc_0",
1332 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001333 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001334 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001335 "line" : 243,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001336 "column" : 8,
1337 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1338 },
1339 "algo" : "csum16",
1340 "input" : [
1341 {
1342 "type" : "field",
1343 "value" : ["gtpu_ipv4", "version"]
1344 },
1345 {
1346 "type" : "field",
1347 "value" : ["gtpu_ipv4", "ihl"]
1348 },
1349 {
1350 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001351 "value" : ["gtpu_ipv4", "dscp"]
1352 },
1353 {
1354 "type" : "field",
1355 "value" : ["gtpu_ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001356 },
1357 {
1358 "type" : "field",
1359 "value" : ["gtpu_ipv4", "total_len"]
1360 },
1361 {
1362 "type" : "field",
1363 "value" : ["gtpu_ipv4", "identification"]
1364 },
1365 {
1366 "type" : "field",
1367 "value" : ["gtpu_ipv4", "flags"]
1368 },
1369 {
1370 "type" : "field",
1371 "value" : ["gtpu_ipv4", "frag_offset"]
1372 },
1373 {
1374 "type" : "field",
1375 "value" : ["gtpu_ipv4", "ttl"]
1376 },
1377 {
1378 "type" : "field",
1379 "value" : ["gtpu_ipv4", "protocol"]
1380 },
1381 {
1382 "type" : "field",
1383 "value" : ["gtpu_ipv4", "src_addr"]
1384 },
1385 {
1386 "type" : "field",
1387 "value" : ["gtpu_ipv4", "dst_addr"]
1388 }
1389 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001390 },
1391 {
1392 "name" : "calc_1",
1393 "id" : 2,
1394 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001395 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001396 "line" : 57,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001397 "column" : 8,
1398 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1399 },
1400 "algo" : "csum16",
1401 "input" : [
1402 {
1403 "type" : "field",
1404 "value" : ["ipv4", "version"]
1405 },
1406 {
1407 "type" : "field",
1408 "value" : ["ipv4", "ihl"]
1409 },
1410 {
1411 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001412 "value" : ["ipv4", "dscp"]
1413 },
1414 {
1415 "type" : "field",
1416 "value" : ["ipv4", "ecn"]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001417 },
1418 {
1419 "type" : "field",
1420 "value" : ["ipv4", "total_len"]
1421 },
1422 {
1423 "type" : "field",
1424 "value" : ["ipv4", "identification"]
1425 },
1426 {
1427 "type" : "field",
1428 "value" : ["ipv4", "flags"]
1429 },
1430 {
1431 "type" : "field",
1432 "value" : ["ipv4", "frag_offset"]
1433 },
1434 {
1435 "type" : "field",
1436 "value" : ["ipv4", "ttl"]
1437 },
1438 {
1439 "type" : "field",
1440 "value" : ["ipv4", "protocol"]
1441 },
1442 {
1443 "type" : "field",
1444 "value" : ["ipv4", "src_addr"]
1445 },
1446 {
1447 "type" : "field",
1448 "value" : ["ipv4", "dst_addr"]
1449 }
1450 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001451 }
1452 ],
1453 "learn_lists" : [],
1454 "actions" : [
1455 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001456 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001457 "id" : 0,
1458 "runtime_data" : [],
1459 "primitives" : []
1460 },
1461 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001462 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001463 "id" : 1,
1464 "runtime_data" : [],
1465 "primitives" : []
1466 },
1467 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001468 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001469 "id" : 2,
1470 "runtime_data" : [],
1471 "primitives" : []
1472 },
1473 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001474 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001475 "id" : 3,
1476 "runtime_data" : [],
1477 "primitives" : []
1478 },
1479 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001480 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001481 "id" : 4,
1482 "runtime_data" : [],
1483 "primitives" : []
1484 },
1485 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001486 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001487 "id" : 5,
1488 "runtime_data" : [],
1489 "primitives" : []
1490 },
1491 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001492 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001493 "id" : 6,
1494 "runtime_data" : [],
1495 "primitives" : []
1496 },
1497 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001498 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001499 "id" : 7,
1500 "runtime_data" : [],
1501 "primitives" : []
1502 },
1503 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001504 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001505 "id" : 8,
1506 "runtime_data" : [],
1507 "primitives" : []
1508 },
1509 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001510 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001511 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001512 "runtime_data" : [],
1513 "primitives" : [
1514 {
1515 "op" : "remove_header",
1516 "parameters" : [
1517 {
1518 "type" : "header",
1519 "value" : "gtpu_ipv4"
1520 }
1521 ],
1522 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001523 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001524 "line" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001525 "column" : 8,
1526 "source_fragment" : "gtpu_ipv4.setInvalid()"
1527 }
1528 },
1529 {
1530 "op" : "remove_header",
1531 "parameters" : [
1532 {
1533 "type" : "header",
1534 "value" : "gtpu_udp"
1535 }
1536 ],
1537 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001538 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001539 "line" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001540 "column" : 8,
1541 "source_fragment" : "gtpu_udp.setInvalid()"
1542 }
1543 },
1544 {
1545 "op" : "remove_header",
1546 "parameters" : [
1547 {
1548 "type" : "header",
1549 "value" : "gtpu"
1550 }
1551 ],
1552 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001553 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001554 "line" : 58,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001555 "column" : 8,
1556 "source_fragment" : "gtpu.setInvalid()"
1557 }
1558 }
1559 ]
1560 },
1561 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001562 "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001563 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001564 "runtime_data" : [
1565 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001566 "name" : "teid",
1567 "bitwidth" : 32
1568 },
1569 {
1570 "name" : "s1u_enb_addr",
1571 "bitwidth" : 32
1572 },
1573 {
1574 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001575 "bitwidth" : 32
1576 }
1577 ],
1578 "primitives" : [
1579 {
1580 "op" : "assign",
1581 "parameters" : [
1582 {
1583 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001584 "value" : ["scalars", "fabric_metadata_t._spgw_teid21"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001585 },
1586 {
1587 "type" : "runtime_data",
1588 "value" : 0
1589 }
1590 ],
1591 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001592 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001593 "line" : 64,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001594 "column" : 30,
1595 "source_fragment" : "= teid; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001596 }
1597 },
1598 {
1599 "op" : "assign",
1600 "parameters" : [
1601 {
1602 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001603 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr22"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001604 },
1605 {
1606 "type" : "runtime_data",
1607 "value" : 1
1608 }
1609 ],
1610 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001611 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001612 "line" : 65,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001613 "column" : 38,
1614 "source_fragment" : "= s1u_enb_addr; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001615 }
1616 },
1617 {
1618 "op" : "assign",
1619 "parameters" : [
1620 {
1621 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001622 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr23"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001623 },
1624 {
1625 "type" : "runtime_data",
1626 "value" : 2
1627 }
1628 ],
1629 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001630 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001631 "line" : 66,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001632 "column" : 38,
1633 "source_fragment" : "= s1u_sgw_addr; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001634 }
1635 }
1636 ]
1637 },
1638 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001639 "name" : "FabricIngress.filtering.deny",
1640 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001641 "runtime_data" : [],
1642 "primitives" : [
1643 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001644 "op" : "assign",
1645 "parameters" : [
1646 {
1647 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001648 "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001649 },
1650 {
1651 "type" : "expression",
1652 "value" : {
1653 "type" : "expression",
1654 "value" : {
1655 "op" : "b2d",
1656 "left" : null,
1657 "right" : {
1658 "type" : "bool",
1659 "value" : true
1660 }
1661 }
1662 }
1663 }
1664 ],
1665 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001666 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001667 "line" : 36,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001668 "column" : 40,
1669 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001670 }
1671 },
1672 {
1673 "op" : "assign",
1674 "parameters" : [
1675 {
1676 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001677 "value" : ["scalars", "fabric_metadata_t._skip_next11"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001678 },
1679 {
1680 "type" : "expression",
1681 "value" : {
1682 "type" : "expression",
1683 "value" : {
1684 "op" : "b2d",
1685 "left" : null,
1686 "right" : {
1687 "type" : "bool",
1688 "value" : true
1689 }
1690 }
1691 }
1692 }
1693 ],
1694 "source_info" : {
1695 "filename" : "include/control/filtering.p4",
1696 "line" : 37,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001697 "column" : 34,
1698 "source_fragment" : "= true; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001699 }
1700 }
1701 ]
1702 },
1703 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001704 "name" : "FabricIngress.filtering.permit",
1705 "id" : 12,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001706 "runtime_data" : [],
1707 "primitives" : []
1708 },
1709 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001710 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
1711 "id" : 13,
1712 "runtime_data" : [
1713 {
1714 "name" : "vlan_id",
1715 "bitwidth" : 12
1716 }
1717 ],
1718 "primitives" : [
1719 {
1720 "op" : "assign",
1721 "parameters" : [
1722 {
1723 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001724 "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001725 },
1726 {
1727 "type" : "runtime_data",
1728 "value" : 0
1729 }
1730 ],
1731 "source_info" : {
1732 "filename" : "include/control/filtering.p4",
1733 "line" : 47,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001734 "column" : 32,
1735 "source_fragment" : "= vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001736 }
1737 }
1738 ]
1739 },
1740 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001741 "name" : "FabricIngress.filtering.set_forwarding_type",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001742 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001743 "runtime_data" : [
1744 {
1745 "name" : "fwd_type",
1746 "bitwidth" : 3
1747 }
1748 ],
1749 "primitives" : [
1750 {
1751 "op" : "assign",
1752 "parameters" : [
1753 {
1754 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001755 "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001756 },
1757 {
1758 "type" : "runtime_data",
1759 "value" : 0
1760 }
1761 ],
1762 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001763 "filename" : "include/control/filtering.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001764 "line" : 86,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001765 "column" : 33,
1766 "source_fragment" : "= fwd_type; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001767 }
1768 }
1769 ]
1770 },
1771 {
Yi Tseng47eac892018-07-11 02:17:04 +08001772 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001773 "id" : 15,
1774 "runtime_data" : [
1775 {
1776 "name" : "next_id",
1777 "bitwidth" : 32
1778 }
1779 ],
1780 "primitives" : [
1781 {
1782 "op" : "assign",
1783 "parameters" : [
1784 {
1785 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001786 "value" : ["scalars", "fabric_metadata_t._next_id13"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001787 },
1788 {
1789 "type" : "runtime_data",
1790 "value" : 0
1791 }
1792 ],
1793 "source_info" : {
1794 "filename" : "include/control/forwarding.p4",
1795 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001796 "column" : 32,
1797 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001798 }
1799 }
1800 ]
1801 },
1802 {
1803 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
1804 "id" : 16,
1805 "runtime_data" : [
1806 {
1807 "name" : "next_id",
1808 "bitwidth" : 32
1809 }
1810 ],
1811 "primitives" : [
1812 {
1813 "op" : "assign",
1814 "parameters" : [
1815 {
1816 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001817 "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001818 },
1819 {
1820 "type" : "hexstr",
1821 "value" : "0x000000"
1822 }
1823 ],
1824 "source_info" : {
1825 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001826 "line" : 66,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001827 "column" : 35,
1828 "source_fragment" : "= 0; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001829 }
1830 },
1831 {
1832 "op" : "assign",
1833 "parameters" : [
1834 {
1835 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001836 "value" : ["scalars", "fabric_metadata_t._next_id13"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001837 },
1838 {
1839 "type" : "runtime_data",
1840 "value" : 0
1841 }
1842 ],
1843 "source_info" : {
1844 "filename" : "include/control/forwarding.p4",
1845 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001846 "column" : 32,
1847 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001848 }
1849 }
1850 ]
1851 },
1852 {
1853 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001854 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001855 "runtime_data" : [
1856 {
1857 "name" : "next_id",
1858 "bitwidth" : 32
1859 }
1860 ],
1861 "primitives" : [
1862 {
1863 "op" : "assign",
1864 "parameters" : [
1865 {
1866 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001867 "value" : ["scalars", "fabric_metadata_t._next_id13"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001868 },
1869 {
1870 "type" : "runtime_data",
1871 "value" : 0
1872 }
1873 ],
1874 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001875 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001876 "line" : 30,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001877 "column" : 32,
1878 "source_fragment" : "= next_id; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001879 }
1880 }
1881 ]
1882 },
1883 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001884 "name" : "FabricIngress.forwarding.nop_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001885 "id" : 18,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001886 "runtime_data" : [],
1887 "primitives" : []
Yi Tseng47eac892018-07-11 02:17:04 +08001888 },
1889 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001890 "name" : "FabricIngress.acl.set_next_id_acl",
Charles Chancf696e52018-08-16 16:25:13 -07001891 "id" : 19,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001892 "runtime_data" : [
1893 {
1894 "name" : "next_id",
1895 "bitwidth" : 32
1896 }
1897 ],
1898 "primitives" : [
1899 {
1900 "op" : "assign",
1901 "parameters" : [
1902 {
1903 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001904 "value" : ["scalars", "fabric_metadata_t._next_id13"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08001905 },
1906 {
1907 "type" : "runtime_data",
1908 "value" : 0
1909 }
1910 ],
1911 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001912 "filename" : "include/control/acl.p4",
1913 "line" : 33,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001914 "column" : 32,
1915 "source_fragment" : "= next_id; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001916 }
1917 }
1918 ]
1919 },
1920 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001921 "name" : "FabricIngress.acl.punt_to_cpu",
Charles Chancf696e52018-08-16 16:25:13 -07001922 "id" : 20,
Charles Chancd03f072018-08-31 17:46:37 -07001923 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001924 "primitives" : [
1925 {
1926 "op" : "assign",
1927 "parameters" : [
1928 {
1929 "type" : "field",
1930 "value" : ["standard_metadata", "egress_spec"]
1931 },
1932 {
1933 "type" : "hexstr",
1934 "value" : "0x00ff"
1935 }
1936 ],
1937 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001938 "filename" : "include/control/acl.p4",
1939 "line" : 39,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001940 "column" : 8,
1941 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001942 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001943 },
1944 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001945 "op" : "assign",
1946 "parameters" : [
1947 {
1948 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07001949 "value" : ["scalars", "fabric_metadata_t._skip_next11"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001950 },
1951 {
1952 "type" : "expression",
1953 "value" : {
1954 "type" : "expression",
1955 "value" : {
1956 "op" : "b2d",
1957 "left" : null,
1958 "right" : {
1959 "type" : "bool",
1960 "value" : true
1961 }
1962 }
1963 }
1964 }
1965 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001966 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001967 "filename" : "include/control/acl.p4",
1968 "line" : 40,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08001969 "column" : 34,
1970 "source_fragment" : "= true; ..."
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001971 }
1972 }
1973 ]
1974 },
1975 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001976 "name" : "FabricIngress.acl.set_clone_session_id",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001977 "id" : 21,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001978 "runtime_data" : [
1979 {
1980 "name" : "clone_id",
1981 "bitwidth" : 32
1982 }
1983 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001984 "primitives" : [
1985 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001986 "op" : "clone_ingress_pkt_to_egress",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001987 "parameters" : [
1988 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001989 "type" : "runtime_data",
1990 "value" : 0
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001991 },
1992 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001993 "type" : "hexstr",
1994 "value" : "0x1"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001995 }
1996 ],
1997 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001998 "filename" : "include/control/acl.p4",
1999 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002000 "column" : 8,
Daniele Moro3b7a21b2019-06-25 17:33:40 -07002001 "source_fragment" : "clone3(CloneType.I2E, clone_id, {standard_metadata.ingress_port})"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002002 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002003 }
2004 ]
2005 },
2006 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002007 "name" : "FabricIngress.acl.drop",
2008 "id" : 22,
Yi Tseng47eac892018-07-11 02:17:04 +08002009 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002010 "primitives" : [
2011 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002012 "op" : "mark_to_drop",
2013 "parameters" : [
2014 {
2015 "type" : "header",
2016 "value" : "standard_metadata"
2017 }
2018 ],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002019 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002020 "filename" : "include/control/acl.p4",
2021 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002022 "column" : 8,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002023 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002024 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002025 },
2026 {
2027 "op" : "assign",
2028 "parameters" : [
2029 {
2030 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002031 "value" : ["scalars", "fabric_metadata_t._skip_next11"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002032 },
2033 {
2034 "type" : "expression",
2035 "value" : {
2036 "type" : "expression",
2037 "value" : {
2038 "op" : "b2d",
2039 "left" : null,
2040 "right" : {
2041 "type" : "bool",
2042 "value" : true
2043 }
2044 }
2045 }
2046 }
2047 ],
2048 "source_info" : {
2049 "filename" : "include/control/acl.p4",
2050 "line" : 52,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002051 "column" : 34,
2052 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002053 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002054 }
2055 ]
2056 },
2057 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002058 "name" : "FabricIngress.acl.nop_acl",
2059 "id" : 23,
Charles Chancf696e52018-08-16 16:25:13 -07002060 "runtime_data" : [],
2061 "primitives" : []
2062 },
2063 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002064 "name" : "FabricIngress.next.set_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002065 "id" : 24,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002066 "runtime_data" : [
2067 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002068 "name" : "vlan_id",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002069 "bitwidth" : 12
2070 }
2071 ],
2072 "primitives" : [
2073 {
2074 "op" : "assign",
2075 "parameters" : [
2076 {
2077 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002078 "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002079 },
2080 {
2081 "type" : "runtime_data",
2082 "value" : 0
2083 }
2084 ],
2085 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002086 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002087 "line" : 70,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002088 "column" : 32,
2089 "source_fragment" : "= vlan_id; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002090 }
2091 }
2092 ]
2093 },
2094 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002095 "name" : "FabricIngress.next.output_xconnect",
2096 "id" : 25,
2097 "runtime_data" : [
2098 {
2099 "name" : "port_num",
2100 "bitwidth" : 9
2101 }
2102 ],
2103 "primitives" : [
2104 {
2105 "op" : "assign",
2106 "parameters" : [
2107 {
2108 "type" : "field",
2109 "value" : ["standard_metadata", "egress_spec"]
2110 },
2111 {
2112 "type" : "runtime_data",
2113 "value" : 0
2114 }
2115 ],
2116 "source_info" : {
2117 "filename" : "include/control/next.p4",
2118 "line" : 31,
2119 "column" : 5,
2120 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2121 }
Daniele Moro7c3a0022019-07-12 13:38:34 -07002122 },
2123 {
2124 "op" : "assign",
2125 "parameters" : [
2126 {
2127 "type" : "field",
2128 "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
2129 },
2130 {
2131 "type" : "hexstr",
2132 "value" : "0x8100"
2133 }
2134 ],
2135 "source_info" : {
2136 "filename" : "include/control/../define.p4",
2137 "line" : 107,
2138 "column" : 31,
2139 "source_fragment" : "0x8100; ..."
2140 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002141 }
2142 ]
2143 },
2144 {
2145 "name" : "FabricIngress.next.set_next_id_xconnect",
2146 "id" : 26,
2147 "runtime_data" : [
2148 {
2149 "name" : "next_id",
2150 "bitwidth" : 32
2151 }
2152 ],
2153 "primitives" : [
2154 {
2155 "op" : "assign",
2156 "parameters" : [
2157 {
2158 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002159 "value" : ["scalars", "fabric_metadata_t._next_id13"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002160 },
2161 {
2162 "type" : "runtime_data",
2163 "value" : 0
2164 }
2165 ],
2166 "source_info" : {
2167 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002168 "line" : 112,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002169 "column" : 32,
2170 "source_fragment" : "= next_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002171 }
2172 }
2173 ]
2174 },
2175 {
2176 "name" : "FabricIngress.next.output_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002177 "id" : 27,
Yi Tseng47eac892018-07-11 02:17:04 +08002178 "runtime_data" : [
2179 {
2180 "name" : "port_num",
2181 "bitwidth" : 9
2182 }
2183 ],
2184 "primitives" : [
2185 {
2186 "op" : "assign",
2187 "parameters" : [
2188 {
2189 "type" : "field",
2190 "value" : ["standard_metadata", "egress_spec"]
2191 },
2192 {
2193 "type" : "runtime_data",
2194 "value" : 0
2195 }
2196 ],
2197 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002198 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002199 "line" : 31,
2200 "column" : 5,
2201 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng47eac892018-07-11 02:17:04 +08002202 }
2203 }
2204 ]
2205 },
2206 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002207 "name" : "FabricIngress.next.routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002208 "id" : 28,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002209 "runtime_data" : [
2210 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002211 "name" : "port_num",
2212 "bitwidth" : 9
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002213 },
2214 {
2215 "name" : "smac",
2216 "bitwidth" : 48
2217 },
2218 {
2219 "name" : "dmac",
2220 "bitwidth" : 48
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002221 }
2222 ],
2223 "primitives" : [
2224 {
2225 "op" : "assign",
2226 "parameters" : [
2227 {
2228 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002229 "value" : ["ethernet", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002230 },
2231 {
2232 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002233 "value" : 1
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002234 }
2235 ],
2236 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002237 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002238 "line" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002239 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002240 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2241 }
2242 },
2243 {
2244 "op" : "assign",
2245 "parameters" : [
2246 {
2247 "type" : "field",
2248 "value" : ["ethernet", "dst_addr"]
2249 },
2250 {
2251 "type" : "runtime_data",
2252 "value" : 2
2253 }
2254 ],
2255 "source_info" : {
2256 "filename" : "include/control/next.p4",
2257 "line" : 41,
2258 "column" : 8,
2259 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002260 }
2261 },
2262 {
2263 "op" : "assign",
2264 "parameters" : [
2265 {
2266 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002267 "value" : ["standard_metadata", "egress_spec"]
2268 },
2269 {
2270 "type" : "runtime_data",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002271 "value" : 0
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002272 }
2273 ],
2274 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002275 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002276 "line" : 31,
2277 "column" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002278 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2279 }
2280 }
2281 ]
2282 },
2283 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002284 "name" : "FabricIngress.next.mpls_routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002285 "id" : 29,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002286 "runtime_data" : [
2287 {
2288 "name" : "port_num",
2289 "bitwidth" : 9
2290 },
2291 {
2292 "name" : "smac",
2293 "bitwidth" : 48
2294 },
2295 {
2296 "name" : "dmac",
2297 "bitwidth" : 48
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002298 },
2299 {
2300 "name" : "label",
2301 "bitwidth" : 20
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002302 }
2303 ],
2304 "primitives" : [
2305 {
2306 "op" : "assign",
2307 "parameters" : [
2308 {
2309 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002310 "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002311 },
2312 {
2313 "type" : "runtime_data",
2314 "value" : 3
2315 }
2316 ],
2317 "source_info" : {
2318 "filename" : "include/control/next.p4",
2319 "line" : 46,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002320 "column" : 35,
2321 "source_fragment" : "= label; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002322 }
2323 },
2324 {
2325 "op" : "assign",
2326 "parameters" : [
2327 {
2328 "type" : "field",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002329 "value" : ["ethernet", "src_addr"]
2330 },
2331 {
2332 "type" : "runtime_data",
2333 "value" : 1
2334 }
2335 ],
2336 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002337 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002338 "line" : 36,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002339 "column" : 8,
2340 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2341 }
2342 },
2343 {
2344 "op" : "assign",
2345 "parameters" : [
2346 {
2347 "type" : "field",
2348 "value" : ["ethernet", "dst_addr"]
2349 },
2350 {
2351 "type" : "runtime_data",
2352 "value" : 2
2353 }
2354 ],
2355 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002356 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002357 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002358 "column" : 8,
2359 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2360 }
2361 },
2362 {
2363 "op" : "assign",
2364 "parameters" : [
2365 {
2366 "type" : "field",
2367 "value" : ["standard_metadata", "egress_spec"]
2368 },
2369 {
2370 "type" : "runtime_data",
2371 "value" : 0
2372 }
2373 ],
2374 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002375 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002376 "line" : 31,
2377 "column" : 5,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002378 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2379 }
2380 }
2381 ]
2382 },
2383 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002384 "name" : "FabricIngress.next.set_mcast_group_id",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002385 "id" : 30,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002386 "runtime_data" : [
2387 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002388 "name" : "group_id",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002389 "bitwidth" : 16
2390 }
2391 ],
2392 "primitives" : [
2393 {
2394 "op" : "assign",
2395 "parameters" : [
2396 {
2397 "type" : "field",
2398 "value" : ["standard_metadata", "mcast_grp"]
2399 },
2400 {
2401 "type" : "runtime_data",
2402 "value" : 0
2403 }
2404 ],
2405 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002406 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002407 "line" : 225,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002408 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002409 "source_fragment" : "standard_metadata.mcast_grp = group_id"
Esin Karaman971fb7f2017-12-28 13:44:52 +00002410 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002411 },
2412 {
2413 "op" : "assign",
2414 "parameters" : [
2415 {
2416 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002417 "value" : ["scalars", "fabric_metadata_t._is_multicast14"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002418 },
2419 {
2420 "type" : "expression",
2421 "value" : {
2422 "type" : "expression",
2423 "value" : {
2424 "op" : "b2d",
2425 "left" : null,
2426 "right" : {
2427 "type" : "bool",
2428 "value" : true
2429 }
2430 }
2431 }
2432 }
2433 ],
2434 "source_info" : {
2435 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002436 "line" : 226,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002437 "column" : 37,
2438 "source_fragment" : "= true; ..."
Carmelo Casconea5400af2018-07-17 22:11:54 +02002439 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002440 }
2441 ]
2442 },
2443 {
2444 "name" : "act",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002445 "id" : 31,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002446 "runtime_data" : [],
2447 "primitives" : [
2448 {
2449 "op" : "assign",
2450 "parameters" : [
2451 {
2452 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002453 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002454 },
2455 {
2456 "type" : "expression",
2457 "value" : {
2458 "type" : "expression",
2459 "value" : {
2460 "op" : "b2d",
2461 "left" : null,
2462 "right" : {
2463 "type" : "bool",
2464 "value" : true
2465 }
2466 }
2467 }
2468 }
2469 ],
2470 "source_info" : {
2471 "filename" : "include/spgw.p4",
2472 "line" : 30,
2473 "column" : 32,
2474 "source_fragment" : "return"
2475 }
2476 }
2477 ]
2478 },
2479 {
2480 "name" : "act_0",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002481 "id" : 32,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002482 "runtime_data" : [],
2483 "primitives" : [
2484 {
2485 "op" : "remove_header",
2486 "parameters" : [
2487 {
2488 "type" : "header",
2489 "value" : "gtpu_ipv4"
2490 }
2491 ],
2492 "source_info" : {
2493 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002494 "line" : 62,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002495 "column" : 50,
2496 "source_fragment" : "hdr.gtpu_ipv4"
2497 }
2498 },
2499 {
2500 "op" : "remove_header",
2501 "parameters" : [
2502 {
2503 "type" : "header",
2504 "value" : "gtpu_udp"
2505 }
2506 ],
2507 "source_info" : {
2508 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002509 "line" : 62,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002510 "column" : 65,
2511 "source_fragment" : "hdr.gtpu_udp"
2512 }
2513 },
2514 {
2515 "op" : "assign",
2516 "parameters" : [
2517 {
2518 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002519 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002520 },
2521 {
2522 "type" : "expression",
2523 "value" : {
2524 "type" : "expression",
2525 "value" : {
2526 "op" : "b2d",
2527 "left" : null,
2528 "right" : {
2529 "type" : "bool",
2530 "value" : false
2531 }
2532 }
2533 }
2534 }
2535 ]
2536 }
2537 ]
2538 },
2539 {
2540 "name" : "act_1",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002541 "id" : 33,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002542 "runtime_data" : [],
2543 "primitives" : [
2544 {
2545 "op" : "assign_header",
2546 "parameters" : [
2547 {
2548 "type" : "header",
2549 "value" : "udp"
2550 },
2551 {
2552 "type" : "header",
2553 "value" : "inner_udp"
2554 }
2555 ],
2556 "source_info" : {
2557 "filename" : "include/spgw.p4",
2558 "line" : 35,
2559 "column" : 16,
2560 "source_fragment" : "= inner_udp; ..."
2561 }
2562 }
2563 ]
2564 },
2565 {
2566 "name" : "act_2",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002567 "id" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002568 "runtime_data" : [],
2569 "primitives" : [
2570 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002571 "op" : "remove_header",
2572 "parameters" : [
2573 {
2574 "type" : "header",
2575 "value" : "udp"
2576 }
2577 ],
2578 "source_info" : {
2579 "filename" : "include/spgw.p4",
2580 "line" : 37,
2581 "column" : 12,
2582 "source_fragment" : "udp.setInvalid()"
2583 }
2584 }
2585 ]
2586 },
2587 {
2588 "name" : "act_3",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002589 "id" : 35,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002590 "runtime_data" : [],
2591 "primitives" : [
2592 {
2593 "op" : "assign_header",
2594 "parameters" : [
2595 {
2596 "type" : "header",
2597 "value" : "gtpu_ipv4"
2598 },
2599 {
2600 "type" : "header",
2601 "value" : "ipv4"
2602 }
2603 ],
2604 "source_info" : {
2605 "filename" : "include/spgw.p4",
2606 "line" : 31,
2607 "column" : 18,
2608 "source_fragment" : "= ipv4; ..."
2609 }
2610 },
2611 {
2612 "op" : "assign_header",
2613 "parameters" : [
2614 {
2615 "type" : "header",
2616 "value" : "ipv4"
2617 },
2618 {
2619 "type" : "header",
2620 "value" : "inner_ipv4"
2621 }
2622 ],
2623 "source_info" : {
2624 "filename" : "include/spgw.p4",
2625 "line" : 32,
2626 "column" : 13,
2627 "source_fragment" : "= inner_ipv4; ..."
2628 }
2629 },
2630 {
2631 "op" : "assign_header",
2632 "parameters" : [
2633 {
2634 "type" : "header",
2635 "value" : "gtpu_udp"
2636 },
2637 {
2638 "type" : "header",
2639 "value" : "udp"
2640 }
2641 ],
2642 "source_info" : {
2643 "filename" : "include/spgw.p4",
2644 "line" : 33,
2645 "column" : 17,
2646 "source_fragment" : "= udp; ..."
2647 }
2648 }
2649 ]
2650 },
2651 {
2652 "name" : "act_4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002653 "id" : 36,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002654 "runtime_data" : [],
2655 "primitives" : [
2656 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002657 "op" : "assign",
2658 "parameters" : [
2659 {
2660 "type" : "field",
2661 "value" : ["standard_metadata", "egress_spec"]
2662 },
2663 {
2664 "type" : "field",
2665 "value" : ["packet_out", "egress_port"]
2666 }
2667 ],
2668 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002669 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002670 "line" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002671 "column" : 12,
2672 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2673 }
2674 },
2675 {
2676 "op" : "remove_header",
2677 "parameters" : [
2678 {
2679 "type" : "header",
2680 "value" : "packet_out"
2681 }
2682 ],
2683 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002684 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002685 "line" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002686 "column" : 12,
2687 "source_fragment" : "hdr.packet_out.setInvalid()"
2688 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002689 },
2690 {
2691 "op" : "assign",
2692 "parameters" : [
2693 {
2694 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002695 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002696 },
2697 {
2698 "type" : "expression",
2699 "value" : {
2700 "type" : "expression",
2701 "value" : {
2702 "op" : "b2d",
2703 "left" : null,
2704 "right" : {
2705 "type" : "bool",
2706 "value" : true
2707 }
2708 }
2709 }
2710 }
2711 ],
2712 "source_info" : {
2713 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002714 "line" : 27,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002715 "column" : 53,
2716 "source_fragment" : "= true; ..."
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002717 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002718 },
2719 {
2720 "op" : "exit",
2721 "parameters" : [],
2722 "source_info" : {
2723 "filename" : "include/control/packetio.p4",
2724 "line" : 29,
2725 "column" : 12,
2726 "source_fragment" : "exit"
2727 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002728 }
2729 ]
2730 },
2731 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002732 "name" : "act_5",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002733 "id" : 37,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002734 "runtime_data" : [],
2735 "primitives" : [
2736 {
2737 "op" : "assign",
2738 "parameters" : [
2739 {
2740 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002741 "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002742 },
2743 {
2744 "type" : "field",
2745 "value" : ["vlan_tag", "vlan_id"]
2746 }
2747 ],
2748 "source_info" : {
2749 "filename" : "include/control/filtering.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002750 "line" : 110,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002751 "column" : 36,
2752 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002753 }
2754 },
2755 {
2756 "op" : "assign",
2757 "parameters" : [
2758 {
2759 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002760 "value" : ["scalars", "fabric_metadata_t._vlan_pri6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002761 },
2762 {
2763 "type" : "field",
2764 "value" : ["vlan_tag", "pri"]
2765 }
2766 ],
2767 "source_info" : {
2768 "filename" : "include/control/filtering.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002769 "line" : 111,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002770 "column" : 37,
2771 "source_fragment" : "= hdr.vlan_tag.pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002772 }
2773 },
2774 {
2775 "op" : "assign",
2776 "parameters" : [
2777 {
2778 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002779 "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002780 },
2781 {
2782 "type" : "field",
2783 "value" : ["vlan_tag", "cfi"]
2784 }
2785 ],
2786 "source_info" : {
2787 "filename" : "include/control/filtering.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002788 "line" : 112,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002789 "column" : 37,
2790 "source_fragment" : "= hdr.vlan_tag.cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002791 }
2792 }
2793 ]
2794 },
2795 {
2796 "name" : "act_6",
2797 "id" : 38,
2798 "runtime_data" : [],
2799 "primitives" : [
2800 {
2801 "op" : "assign",
2802 "parameters" : [
2803 {
2804 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002805 "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002806 },
2807 {
2808 "type" : "hexstr",
2809 "value" : "0x41"
2810 }
2811 ],
2812 "source_info" : {
2813 "filename" : "include/control/filtering.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002814 "line" : 126,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08002815 "column" : 37,
2816 "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002817 }
2818 }
2819 ]
2820 },
2821 {
2822 "name" : "act_7",
2823 "id" : 39,
2824 "runtime_data" : [],
2825 "primitives" : [
2826 {
2827 "op" : "assign",
2828 "parameters" : [
2829 {
2830 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002831 "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002832 },
2833 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07002834 "type" : "hexstr",
2835 "value" : "0x8847"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002836 }
Daniele Moro7c3a0022019-07-12 13:38:34 -07002837 ],
2838 "source_info" : {
2839 "filename" : "include/control/../define.p4",
2840 "line" : 108,
2841 "column" : 31,
2842 "source_fragment" : "0x8847; ..."
2843 }
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002844 }
2845 ]
2846 },
2847 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002848 "name" : "act_8",
2849 "id" : 40,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002850 "runtime_data" : [],
2851 "primitives" : [
2852 {
2853 "op" : "assign",
2854 "parameters" : [
2855 {
2856 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002857 "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002858 },
2859 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07002860 "type" : "field",
2861 "value" : ["inner_vlan_tag", "eth_type"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002862 }
Daniele Moro7c3a0022019-07-12 13:38:34 -07002863 ],
2864 "source_info" : {
2865 "filename" : "include/control/filtering.p4",
2866 "line" : 136,
2867 "column" : 50,
2868 "source_fragment" : "= hdr.inner_vlan_tag.eth_type; ..."
2869 }
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002870 }
2871 ]
2872 },
2873 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002874 "name" : "act_9",
2875 "id" : 41,
2876 "runtime_data" : [],
2877 "primitives" : [
2878 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07002879 "op" : "assign",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002880 "parameters" : [
2881 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07002882 "type" : "field",
2883 "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
2884 },
2885 {
2886 "type" : "field",
2887 "value" : ["vlan_tag", "eth_type"]
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002888 }
2889 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002890 "source_info" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07002891 "filename" : "include/control/filtering.p4",
2892 "line" : 139,
2893 "column" : 50,
2894 "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002895 }
2896 }
2897 ]
2898 },
2899 {
2900 "name" : "act_10",
2901 "id" : 42,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002902 "runtime_data" : [],
2903 "primitives" : [
2904 {
2905 "op" : "assign",
2906 "parameters" : [
2907 {
2908 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002909 "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002910 },
2911 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07002912 "type" : "field",
2913 "value" : ["ethernet", "eth_type"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002914 }
2915 ],
2916 "source_info" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07002917 "filename" : "include/control/filtering.p4",
2918 "line" : 141,
2919 "column" : 46,
2920 "source_fragment" : "= hdr.ethernet.eth_type; ..."
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002921 }
2922 }
2923 ]
2924 },
2925 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002926 "name" : "act_11",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002927 "id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002928 "runtime_data" : [],
2929 "primitives" : [
2930 {
2931 "op" : "assign",
2932 "parameters" : [
2933 {
2934 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002935 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002936 },
2937 {
2938 "type" : "expression",
2939 "value" : {
2940 "type" : "expression",
2941 "value" : {
2942 "op" : "b2d",
2943 "left" : null,
2944 "right" : {
2945 "type" : "bool",
2946 "value" : true
2947 }
2948 }
2949 }
2950 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002951 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002952 }
2953 ]
2954 },
2955 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002956 "name" : "act_12",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002957 "id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002958 "runtime_data" : [],
2959 "primitives" : [
2960 {
2961 "op" : "assign",
2962 "parameters" : [
2963 {
2964 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07002965 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002966 },
2967 {
2968 "type" : "expression",
2969 "value" : {
2970 "type" : "expression",
2971 "value" : {
2972 "op" : "b2d",
2973 "left" : null,
2974 "right" : {
2975 "type" : "bool",
2976 "value" : false
2977 }
2978 }
2979 }
2980 }
2981 ]
2982 }
2983 ]
2984 },
2985 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002986 "name" : "act_13",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002987 "id" : 45,
Yi Tseng27b9bc02018-04-12 14:52:40 +08002988 "runtime_data" : [],
2989 "primitives" : [
2990 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07002991 "op" : "mark_to_drop",
2992 "parameters" : [
2993 {
2994 "type" : "header",
2995 "value" : "standard_metadata"
2996 }
2997 ],
2998 "source_info" : {
2999 "filename" : "include/spgw.p4",
3000 "line" : 149,
3001 "column" : 16,
3002 "source_fragment" : "mark_to_drop(standard_metadata)"
3003 }
3004 }
3005 ]
3006 },
3007 {
3008 "name" : "act_14",
3009 "id" : 46,
3010 "runtime_data" : [],
3011 "primitives" : [
3012 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003013 "op" : "assign",
3014 "parameters" : [
3015 {
3016 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07003017 "value" : ["scalars", "fabric_metadata_t._spgw_direction19"]
3018 },
3019 {
3020 "type" : "hexstr",
3021 "value" : "0x01"
3022 }
3023 ],
3024 "source_info" : {
3025 "filename" : "include/control/../define.p4",
3026 "line" : 143,
3027 "column" : 36,
3028 "source_fragment" : "2w1; ..."
3029 }
3030 }
3031 ]
3032 },
3033 {
3034 "name" : "act_15",
3035 "id" : 47,
3036 "runtime_data" : [],
3037 "primitives" : [
3038 {
3039 "op" : "assign",
3040 "parameters" : [
3041 {
3042 "type" : "field",
3043 "value" : ["scalars", "spgw_ingress_tmp_0"]
3044 },
3045 {
3046 "type" : "expression",
3047 "value" : {
3048 "type" : "expression",
3049 "value" : {
3050 "op" : "b2d",
3051 "left" : null,
3052 "right" : {
3053 "type" : "bool",
3054 "value" : true
3055 }
3056 }
3057 }
3058 }
3059 ]
3060 }
3061 ]
3062 },
3063 {
3064 "name" : "act_16",
3065 "id" : 48,
3066 "runtime_data" : [],
3067 "primitives" : [
3068 {
3069 "op" : "assign",
3070 "parameters" : [
3071 {
3072 "type" : "field",
3073 "value" : ["scalars", "spgw_ingress_tmp_0"]
3074 },
3075 {
3076 "type" : "expression",
3077 "value" : {
3078 "type" : "expression",
3079 "value" : {
3080 "op" : "b2d",
3081 "left" : null,
3082 "right" : {
3083 "type" : "bool",
3084 "value" : false
3085 }
3086 }
3087 }
3088 }
3089 ]
3090 }
3091 ]
3092 },
3093 {
3094 "name" : "act_17",
3095 "id" : 49,
3096 "runtime_data" : [],
3097 "primitives" : [
3098 {
3099 "op" : "assign",
3100 "parameters" : [
3101 {
3102 "type" : "field",
3103 "value" : ["scalars", "fabric_metadata_t._spgw_direction19"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08003104 },
3105 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003106 "type" : "hexstr",
3107 "value" : "0x02"
Yi Tseng27b9bc02018-04-12 14:52:40 +08003108 }
3109 ],
3110 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003111 "filename" : "include/control/../define.p4",
Daniele Moroe22b5742019-06-28 15:32:37 -07003112 "line" : 144,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003113 "column" : 38,
3114 "source_fragment" : "2w2; ..."
Yi Tseng27b9bc02018-04-12 14:52:40 +08003115 }
3116 }
3117 ]
3118 },
3119 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07003120 "name" : "act_18",
3121 "id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003122 "runtime_data" : [],
3123 "primitives" : [
3124 {
3125 "op" : "assign",
3126 "parameters" : [
3127 {
3128 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07003129 "value" : ["scalars", "fabric_metadata_t._spgw_direction19"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003130 },
3131 {
3132 "type" : "hexstr",
3133 "value" : "0x00"
3134 }
3135 ],
3136 "source_info" : {
3137 "filename" : "include/control/../define.p4",
Daniele Moroe22b5742019-06-28 15:32:37 -07003138 "line" : 142,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003139 "column" : 37,
3140 "source_fragment" : "2w0; ..."
3141 }
3142 },
3143 {
3144 "op" : "assign",
3145 "parameters" : [
3146 {
3147 "type" : "field",
3148 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003149 },
3150 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003151 "type" : "expression",
3152 "value" : {
3153 "type" : "expression",
3154 "value" : {
3155 "op" : "b2d",
3156 "left" : null,
3157 "right" : {
3158 "type" : "bool",
3159 "value" : true
3160 }
3161 }
3162 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003163 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003164 ],
3165 "source_info" : {
3166 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003167 "line" : 158,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003168 "column" : 12,
3169 "source_fragment" : "return"
3170 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003171 }
3172 ]
3173 },
3174 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07003175 "name" : "act_19",
3176 "id" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003177 "runtime_data" : [],
3178 "primitives" : [
3179 {
3180 "op" : "assign",
3181 "parameters" : [
3182 {
3183 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003184 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003185 },
3186 {
3187 "type" : "expression",
3188 "value" : {
3189 "type" : "expression",
3190 "value" : {
3191 "op" : "b2d",
3192 "left" : null,
3193 "right" : {
3194 "type" : "bool",
3195 "value" : false
3196 }
3197 }
3198 }
3199 }
3200 ]
3201 }
3202 ]
3203 },
3204 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07003205 "name" : "act_20",
3206 "id" : 52,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003207 "runtime_data" : [],
3208 "primitives" : [
3209 {
3210 "op" : "assign",
3211 "parameters" : [
3212 {
3213 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07003214 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003215 },
3216 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003217 "type" : "field",
3218 "value" : ["ipv4", "total_len"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003219 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003220 ],
3221 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003222 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003223 "line" : 175,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003224 "column" : 34,
3225 "source_fragment" : "= ipv4.total_len; ..."
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003226 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003227 }
3228 ]
3229 },
3230 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07003231 "name" : "act_21",
3232 "id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003233 "runtime_data" : [],
3234 "primitives" : [
3235 {
3236 "op" : "assign",
3237 "parameters" : [
3238 {
3239 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003240 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003241 },
3242 {
3243 "type" : "expression",
3244 "value" : {
3245 "type" : "expression",
3246 "value" : {
3247 "op" : "&",
3248 "left" : {
3249 "type" : "field",
3250 "value" : ["standard_metadata", "egress_spec"]
3251 },
3252 "right" : {
3253 "type" : "hexstr",
3254 "value" : "0xffffffff"
3255 }
3256 }
3257 }
3258 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003259 ],
3260 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003261 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003262 "line" : 31,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003263 "column" : 38,
3264 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3265 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003266 },
3267 {
3268 "op" : "count",
3269 "parameters" : [
3270 {
3271 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003272 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003273 },
3274 {
3275 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003276 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003277 }
3278 ],
3279 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003280 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003281 "line" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003282 "column" : 12,
3283 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3284 }
3285 }
3286 ]
3287 },
3288 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07003289 "name" : "act_22",
3290 "id" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003291 "runtime_data" : [],
3292 "primitives" : [
3293 {
3294 "op" : "assign",
3295 "parameters" : [
3296 {
3297 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003298 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003299 },
3300 {
3301 "type" : "expression",
3302 "value" : {
3303 "type" : "expression",
3304 "value" : {
3305 "op" : "&",
3306 "left" : {
3307 "type" : "field",
3308 "value" : ["standard_metadata", "ingress_port"]
3309 },
3310 "right" : {
3311 "type" : "hexstr",
3312 "value" : "0xffffffff"
3313 }
3314 }
3315 }
3316 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003317 ],
3318 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003319 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003320 "line" : 34,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003321 "column" : 39,
3322 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3323 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003324 },
3325 {
3326 "op" : "count",
3327 "parameters" : [
3328 {
3329 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003330 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003331 },
3332 {
3333 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003334 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003335 }
3336 ],
3337 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003338 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003339 "line" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003340 "column" : 12,
3341 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3342 }
3343 }
3344 ]
3345 },
3346 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003347 "name" : "nop",
Daniele Moro7c3a0022019-07-12 13:38:34 -07003348 "id" : 55,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003349 "runtime_data" : [],
Charles Chancd03f072018-08-31 17:46:37 -07003350 "primitives" : []
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003351 },
3352 {
Charles Chancd03f072018-08-31 17:46:37 -07003353 "name" : "FabricEgress.spgw_egress.gtpu_encap",
Daniele Moro7c3a0022019-07-12 13:38:34 -07003354 "id" : 56,
Charles Chancd03f072018-08-31 17:46:37 -07003355 "runtime_data" : [],
3356 "primitives" : [
3357 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003358 "op" : "add_header",
3359 "parameters" : [
3360 {
3361 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003362 "value" : "gtpu_ipv4"
3363 }
3364 ],
3365 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003366 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003367 "line" : 191,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003368 "column" : 8,
3369 "source_fragment" : "gtpu_ipv4.setValid()"
3370 }
3371 },
3372 {
3373 "op" : "assign",
3374 "parameters" : [
3375 {
3376 "type" : "field",
3377 "value" : ["gtpu_ipv4", "version"]
3378 },
3379 {
3380 "type" : "hexstr",
3381 "value" : "0x04"
3382 }
3383 ],
3384 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003385 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003386 "line" : 192,
Yi Tseng3d3956d2018-01-31 17:28:05 -08003387 "column" : 8,
3388 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003389 }
3390 },
3391 {
3392 "op" : "assign",
3393 "parameters" : [
3394 {
3395 "type" : "field",
3396 "value" : ["gtpu_ipv4", "ihl"]
3397 },
3398 {
3399 "type" : "hexstr",
3400 "value" : "0x05"
3401 }
3402 ],
3403 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003404 "filename" : "include/control/../define.p4",
Daniele Moroe22b5742019-06-28 15:32:37 -07003405 "line" : 125,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003406 "column" : 28,
3407 "source_fragment" : "5; ..."
3408 }
3409 },
3410 {
3411 "op" : "assign",
3412 "parameters" : [
3413 {
3414 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003415 "value" : ["gtpu_ipv4", "dscp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003416 },
3417 {
3418 "type" : "hexstr",
3419 "value" : "0x00"
3420 }
3421 ],
3422 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003423 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003424 "line" : 194,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003425 "column" : 8,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003426 "source_fragment" : "gtpu_ipv4.dscp = 0"
3427 }
3428 },
3429 {
3430 "op" : "assign",
3431 "parameters" : [
3432 {
3433 "type" : "field",
3434 "value" : ["gtpu_ipv4", "ecn"]
3435 },
3436 {
3437 "type" : "hexstr",
3438 "value" : "0x00"
3439 }
3440 ],
3441 "source_info" : {
3442 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003443 "line" : 195,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003444 "column" : 8,
3445 "source_fragment" : "gtpu_ipv4.ecn = 0"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003446 }
3447 },
3448 {
3449 "op" : "assign",
3450 "parameters" : [
3451 {
3452 "type" : "field",
3453 "value" : ["gtpu_ipv4", "total_len"]
3454 },
3455 {
3456 "type" : "expression",
3457 "value" : {
3458 "type" : "expression",
3459 "value" : {
3460 "op" : "&",
3461 "left" : {
3462 "type" : "expression",
3463 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003464 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003465 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003466 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003467 "value" : ["ipv4", "total_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003468 },
3469 "right" : {
3470 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003471 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003472 }
3473 }
3474 },
3475 "right" : {
3476 "type" : "hexstr",
3477 "value" : "0xffff"
3478 }
3479 }
3480 }
3481 }
3482 ],
3483 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003484 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003485 "line" : 196,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003486 "column" : 8,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003487 "source_fragment" : "gtpu_ipv4.total_len = ipv4.total_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003488 }
3489 },
3490 {
3491 "op" : "assign",
3492 "parameters" : [
3493 {
3494 "type" : "field",
3495 "value" : ["gtpu_ipv4", "identification"]
3496 },
3497 {
3498 "type" : "hexstr",
3499 "value" : "0x1513"
3500 }
3501 ],
3502 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003503 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003504 "line" : 198,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003505 "column" : 8,
3506 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
3507 }
3508 },
3509 {
3510 "op" : "assign",
3511 "parameters" : [
3512 {
3513 "type" : "field",
3514 "value" : ["gtpu_ipv4", "flags"]
3515 },
3516 {
3517 "type" : "hexstr",
3518 "value" : "0x00"
3519 }
3520 ],
3521 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003522 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003523 "line" : 199,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003524 "column" : 8,
3525 "source_fragment" : "gtpu_ipv4.flags = 0"
3526 }
3527 },
3528 {
3529 "op" : "assign",
3530 "parameters" : [
3531 {
3532 "type" : "field",
3533 "value" : ["gtpu_ipv4", "frag_offset"]
3534 },
3535 {
3536 "type" : "hexstr",
3537 "value" : "0x0000"
3538 }
3539 ],
3540 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003541 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003542 "line" : 200,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003543 "column" : 8,
3544 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
3545 }
3546 },
3547 {
3548 "op" : "assign",
3549 "parameters" : [
3550 {
3551 "type" : "field",
3552 "value" : ["gtpu_ipv4", "ttl"]
3553 },
3554 {
3555 "type" : "hexstr",
3556 "value" : "0x40"
3557 }
3558 ],
3559 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003560 "filename" : "include/control/../define.p4",
Daniele Moroe22b5742019-06-28 15:32:37 -07003561 "line" : 138,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003562 "column" : 32,
3563 "source_fragment" : "64; ..."
3564 }
3565 },
3566 {
3567 "op" : "assign",
3568 "parameters" : [
3569 {
3570 "type" : "field",
3571 "value" : ["gtpu_ipv4", "protocol"]
3572 },
3573 {
3574 "type" : "hexstr",
3575 "value" : "0x11"
3576 }
3577 ],
3578 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003579 "filename" : "include/control/../define.p4",
Daniele Moroe22b5742019-06-28 15:32:37 -07003580 "line" : 122,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003581 "column" : 25,
3582 "source_fragment" : "17; ..."
3583 }
3584 },
3585 {
3586 "op" : "assign",
3587 "parameters" : [
3588 {
3589 "type" : "field",
3590 "value" : ["gtpu_ipv4", "dst_addr"]
3591 },
3592 {
3593 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07003594 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr22"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003595 }
3596 ],
3597 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003598 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003599 "line" : 203,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003600 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003601 "source_fragment" : "gtpu_ipv4.dst_addr = fabric_meta.spgw.s1u_enb_addr; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003602 }
3603 },
3604 {
3605 "op" : "assign",
3606 "parameters" : [
3607 {
3608 "type" : "field",
3609 "value" : ["gtpu_ipv4", "src_addr"]
3610 },
3611 {
3612 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07003613 "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr23"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003614 }
3615 ],
3616 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003617 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003618 "line" : 204,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003619 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003620 "source_fragment" : "gtpu_ipv4.src_addr = fabric_meta.spgw.s1u_sgw_addr; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003621 }
3622 },
3623 {
3624 "op" : "assign",
3625 "parameters" : [
3626 {
3627 "type" : "field",
3628 "value" : ["gtpu_ipv4", "hdr_checksum"]
3629 },
3630 {
3631 "type" : "hexstr",
3632 "value" : "0x0000"
3633 }
3634 ],
3635 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003636 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003637 "line" : 205,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003638 "column" : 8,
3639 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
3640 }
3641 },
3642 {
3643 "op" : "add_header",
3644 "parameters" : [
3645 {
3646 "type" : "header",
3647 "value" : "gtpu_udp"
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" : 207,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003653 "column" : 8,
3654 "source_fragment" : "gtpu_udp.setValid()"
3655 }
3656 },
3657 {
3658 "op" : "assign",
3659 "parameters" : [
3660 {
3661 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003662 "value" : ["gtpu_udp", "sport"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003663 },
3664 {
3665 "type" : "hexstr",
3666 "value" : "0x0868"
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" : 208,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003672 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003673 "source_fragment" : "gtpu_udp.sport = 2152"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003674 }
3675 },
3676 {
3677 "op" : "assign",
3678 "parameters" : [
3679 {
3680 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003681 "value" : ["gtpu_udp", "dport"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003682 },
3683 {
3684 "type" : "hexstr",
3685 "value" : "0x0868"
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" : 209,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003691 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003692 "source_fragment" : "gtpu_udp.dport = 2152"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003693 }
3694 },
3695 {
3696 "op" : "assign",
3697 "parameters" : [
3698 {
3699 "type" : "field",
3700 "value" : ["gtpu_udp", "len"]
3701 },
3702 {
3703 "type" : "expression",
3704 "value" : {
3705 "type" : "expression",
3706 "value" : {
3707 "op" : "&",
3708 "left" : {
3709 "type" : "expression",
3710 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003711 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003712 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003713 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07003714 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003715 },
3716 "right" : {
3717 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003718 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003719 }
3720 }
3721 },
3722 "right" : {
3723 "type" : "hexstr",
3724 "value" : "0xffff"
3725 }
3726 }
3727 }
3728 }
3729 ],
3730 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003731 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003732 "line" : 210,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003733 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003734 "source_fragment" : "gtpu_udp.len = fabric_meta.spgw.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003735 }
3736 },
3737 {
3738 "op" : "assign",
3739 "parameters" : [
3740 {
3741 "type" : "field",
3742 "value" : ["gtpu_udp", "checksum"]
3743 },
3744 {
3745 "type" : "hexstr",
3746 "value" : "0x0000"
3747 }
3748 ],
3749 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003750 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003751 "line" : 212,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003752 "column" : 8,
3753 "source_fragment" : "gtpu_udp.checksum = 0"
3754 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08003755 },
3756 {
3757 "op" : "add_header",
3758 "parameters" : [
3759 {
3760 "type" : "header",
3761 "value" : "gtpu"
3762 }
3763 ],
3764 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003765 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003766 "line" : 214,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003767 "column" : 8,
3768 "source_fragment" : "gtpu.setValid()"
3769 }
3770 },
3771 {
3772 "op" : "assign",
3773 "parameters" : [
3774 {
3775 "type" : "field",
3776 "value" : ["gtpu", "version"]
3777 },
3778 {
3779 "type" : "hexstr",
3780 "value" : "0x01"
3781 }
3782 ],
3783 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003784 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003785 "line" : 215,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003786 "column" : 8,
3787 "source_fragment" : "gtpu.version = 0x01"
3788 }
3789 },
3790 {
3791 "op" : "assign",
3792 "parameters" : [
3793 {
3794 "type" : "field",
3795 "value" : ["gtpu", "pt"]
3796 },
3797 {
3798 "type" : "hexstr",
3799 "value" : "0x01"
3800 }
3801 ],
3802 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003803 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003804 "line" : 216,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003805 "column" : 8,
3806 "source_fragment" : "gtpu.pt = 0x01"
3807 }
3808 },
3809 {
3810 "op" : "assign",
3811 "parameters" : [
3812 {
3813 "type" : "field",
3814 "value" : ["gtpu", "spare"]
3815 },
3816 {
3817 "type" : "hexstr",
3818 "value" : "0x00"
3819 }
3820 ],
3821 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003822 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003823 "line" : 217,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003824 "column" : 8,
3825 "source_fragment" : "gtpu.spare = 0"
3826 }
3827 },
3828 {
3829 "op" : "assign",
3830 "parameters" : [
3831 {
3832 "type" : "field",
3833 "value" : ["gtpu", "ex_flag"]
3834 },
3835 {
3836 "type" : "hexstr",
3837 "value" : "0x00"
3838 }
3839 ],
3840 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003841 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003842 "line" : 218,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003843 "column" : 8,
3844 "source_fragment" : "gtpu.ex_flag = 0"
3845 }
3846 },
3847 {
3848 "op" : "assign",
3849 "parameters" : [
3850 {
3851 "type" : "field",
3852 "value" : ["gtpu", "seq_flag"]
3853 },
3854 {
3855 "type" : "hexstr",
3856 "value" : "0x00"
3857 }
3858 ],
3859 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003860 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003861 "line" : 219,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003862 "column" : 8,
3863 "source_fragment" : "gtpu.seq_flag = 0"
3864 }
3865 },
3866 {
3867 "op" : "assign",
3868 "parameters" : [
3869 {
3870 "type" : "field",
3871 "value" : ["gtpu", "npdu_flag"]
3872 },
3873 {
3874 "type" : "hexstr",
3875 "value" : "0x00"
3876 }
3877 ],
3878 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003879 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003880 "line" : 220,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003881 "column" : 8,
3882 "source_fragment" : "gtpu.npdu_flag = 0"
3883 }
3884 },
3885 {
3886 "op" : "assign",
3887 "parameters" : [
3888 {
3889 "type" : "field",
3890 "value" : ["gtpu", "msgtype"]
3891 },
3892 {
3893 "type" : "hexstr",
3894 "value" : "0xff"
3895 }
3896 ],
3897 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003898 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003899 "line" : 221,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003900 "column" : 8,
3901 "source_fragment" : "gtpu.msgtype = 0xff"
3902 }
3903 },
3904 {
3905 "op" : "assign",
3906 "parameters" : [
3907 {
3908 "type" : "field",
3909 "value" : ["gtpu", "msglen"]
3910 },
3911 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003912 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07003913 "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003914 }
3915 ],
3916 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003917 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003918 "line" : 222,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003919 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003920 "source_fragment" : "gtpu.msglen = fabric_meta.spgw.ipv4_len; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003921 }
3922 },
3923 {
3924 "op" : "assign",
3925 "parameters" : [
3926 {
3927 "type" : "field",
3928 "value" : ["gtpu", "teid"]
3929 },
3930 {
3931 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07003932 "value" : ["scalars", "fabric_metadata_t._spgw_teid21"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003933 }
3934 ],
3935 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003936 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003937 "line" : 223,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003938 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003939 "source_fragment" : "gtpu.teid = fabric_meta.spgw.teid; ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003940 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003941 }
3942 ]
3943 },
3944 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003945 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
Daniele Moro7c3a0022019-07-12 13:38:34 -07003946 "id" : 57,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003947 "runtime_data" : [],
3948 "primitives" : [
3949 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003950 "op" : "remove_header",
3951 "parameters" : [
3952 {
3953 "type" : "header",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003954 "value" : "mpls"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003955 }
3956 ],
3957 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003958 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07003959 "line" : 264,
Yi Tseng47eac892018-07-11 02:17:04 +08003960 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003961 "source_fragment" : "hdr.mpls.setInvalid()"
Yi Tseng47eac892018-07-11 02:17:04 +08003962 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003963 },
Yi Tseng47eac892018-07-11 02:17:04 +08003964 {
3965 "op" : "assign",
3966 "parameters" : [
3967 {
3968 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07003969 "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
Yi Tseng47eac892018-07-11 02:17:04 +08003970 },
3971 {
3972 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07003973 "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003974 }
3975 ],
3976 "source_info" : {
3977 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07003978 "line" : 266,
3979 "column" : 38,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08003980 "source_fragment" : "= fabric_metadata.ip_eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003981 }
3982 }
3983 ]
3984 },
3985 {
3986 "name" : "FabricEgress.egress_next.set_mpls",
Daniele Moro7c3a0022019-07-12 13:38:34 -07003987 "id" : 58,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003988 "runtime_data" : [],
3989 "primitives" : [
3990 {
3991 "op" : "add_header",
3992 "parameters" : [
3993 {
3994 "type" : "header",
3995 "value" : "mpls"
Yi Tseng47eac892018-07-11 02:17:04 +08003996 }
3997 ],
3998 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003999 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004000 "line" : 271,
Yi Tseng47eac892018-07-11 02:17:04 +08004001 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004002 "source_fragment" : "hdr.mpls.setValid()"
4003 }
4004 },
4005 {
4006 "op" : "assign",
4007 "parameters" : [
4008 {
4009 "type" : "field",
4010 "value" : ["mpls", "label"]
4011 },
4012 {
4013 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004014 "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004015 }
4016 ],
4017 "source_info" : {
4018 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004019 "line" : 272,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004020 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004021 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004022 }
4023 },
4024 {
4025 "op" : "assign",
4026 "parameters" : [
4027 {
4028 "type" : "field",
4029 "value" : ["mpls", "tc"]
4030 },
4031 {
4032 "type" : "hexstr",
4033 "value" : "0x00"
4034 }
4035 ],
4036 "source_info" : {
4037 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004038 "line" : 273,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004039 "column" : 8,
4040 "source_fragment" : "hdr.mpls.tc = 3w0"
4041 }
4042 },
4043 {
4044 "op" : "assign",
4045 "parameters" : [
4046 {
4047 "type" : "field",
4048 "value" : ["mpls", "bos"]
4049 },
4050 {
4051 "type" : "hexstr",
4052 "value" : "0x01"
4053 }
4054 ],
4055 "source_info" : {
4056 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004057 "line" : 274,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004058 "column" : 8,
4059 "source_fragment" : "hdr.mpls.bos = 1w1"
4060 }
4061 },
4062 {
4063 "op" : "assign",
4064 "parameters" : [
4065 {
4066 "type" : "field",
4067 "value" : ["mpls", "ttl"]
4068 },
4069 {
4070 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004071 "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004072 }
4073 ],
4074 "source_info" : {
4075 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004076 "line" : 275,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004077 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004078 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004079 }
4080 },
4081 {
4082 "op" : "assign",
4083 "parameters" : [
4084 {
4085 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004086 "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004087 },
4088 {
4089 "type" : "hexstr",
4090 "value" : "0x8847"
4091 }
4092 ],
4093 "source_info" : {
4094 "filename" : "include/control/../define.p4",
4095 "line" : 108,
4096 "column" : 31,
4097 "source_fragment" : "0x8847; ..."
4098 }
4099 }
4100 ]
4101 },
4102 {
4103 "name" : "FabricEgress.egress_next.push_vlan",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004104 "id" : 59,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004105 "runtime_data" : [],
4106 "primitives" : [
4107 {
4108 "op" : "add_header",
4109 "parameters" : [
4110 {
4111 "type" : "header",
4112 "value" : "vlan_tag"
4113 }
4114 ],
4115 "source_info" : {
4116 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004117 "line" : 283,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004118 "column" : 8,
4119 "source_fragment" : "hdr.vlan_tag.setValid()"
4120 }
4121 },
4122 {
4123 "op" : "assign",
4124 "parameters" : [
4125 {
4126 "type" : "field",
4127 "value" : ["vlan_tag", "cfi"]
4128 },
4129 {
4130 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004131 "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004132 }
4133 ],
4134 "source_info" : {
4135 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004136 "line" : 284,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004137 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004138 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004139 }
4140 },
4141 {
4142 "op" : "assign",
4143 "parameters" : [
4144 {
4145 "type" : "field",
4146 "value" : ["vlan_tag", "pri"]
4147 },
4148 {
4149 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004150 "value" : ["scalars", "fabric_metadata_t._vlan_pri6"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004151 }
4152 ],
4153 "source_info" : {
4154 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004155 "line" : 285,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004156 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004157 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004158 }
4159 },
4160 {
4161 "op" : "assign",
4162 "parameters" : [
4163 {
4164 "type" : "field",
4165 "value" : ["vlan_tag", "eth_type"]
4166 },
4167 {
4168 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004169 "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004170 }
4171 ],
4172 "source_info" : {
4173 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004174 "line" : 286,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004175 "column" : 8,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004176 "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.last_eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004177 }
4178 },
4179 {
4180 "op" : "assign",
4181 "parameters" : [
4182 {
4183 "type" : "field",
4184 "value" : ["vlan_tag", "vlan_id"]
4185 },
4186 {
4187 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004188 "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004189 }
4190 ],
4191 "source_info" : {
4192 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004193 "line" : 287,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004194 "column" : 8,
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004195 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004196 }
4197 },
4198 {
4199 "op" : "assign",
4200 "parameters" : [
4201 {
4202 "type" : "field",
4203 "value" : ["ethernet", "eth_type"]
4204 },
4205 {
4206 "type" : "hexstr",
4207 "value" : "0x8100"
4208 }
4209 ],
4210 "source_info" : {
4211 "filename" : "include/control/../define.p4",
4212 "line" : 107,
4213 "column" : 31,
4214 "source_fragment" : "0x8100; ..."
4215 }
4216 }
4217 ]
4218 },
4219 {
4220 "name" : "FabricEgress.egress_next.pop_vlan",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004221 "id" : 60,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004222 "runtime_data" : [],
4223 "primitives" : [
4224 {
4225 "op" : "assign",
4226 "parameters" : [
4227 {
4228 "type" : "field",
4229 "value" : ["ethernet", "eth_type"]
4230 },
4231 {
4232 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004233 "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004234 }
4235 ],
4236 "source_info" : {
4237 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004238 "line" : 312,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004239 "column" : 8,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004240 "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.last_eth_type; ..."
Yi Tseng47eac892018-07-11 02:17:04 +08004241 }
4242 },
4243 {
4244 "op" : "remove_header",
4245 "parameters" : [
4246 {
4247 "type" : "header",
4248 "value" : "vlan_tag"
4249 }
4250 ],
4251 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004252 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004253 "line" : 313,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004254 "column" : 8,
4255 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4256 }
4257 }
4258 ]
4259 },
4260 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07004261 "name" : "act_23",
4262 "id" : 61,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004263 "runtime_data" : [],
4264 "primitives" : [
4265 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004266 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004267 "parameters" : [],
4268 "source_info" : {
4269 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004270 "line" : 41,
4271 "column" : 12,
4272 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004273 }
4274 }
4275 ]
4276 },
4277 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07004278 "name" : "act_24",
4279 "id" : 62,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004280 "runtime_data" : [],
4281 "primitives" : [
4282 {
4283 "op" : "add_header",
4284 "parameters" : [
4285 {
4286 "type" : "header",
4287 "value" : "packet_in"
4288 }
4289 ],
4290 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004291 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004292 "line" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004293 "column" : 12,
4294 "source_fragment" : "hdr.packet_in.setValid()"
4295 }
4296 },
4297 {
4298 "op" : "assign",
4299 "parameters" : [
4300 {
4301 "type" : "field",
4302 "value" : ["packet_in", "ingress_port"]
4303 },
4304 {
4305 "type" : "field",
4306 "value" : ["standard_metadata", "ingress_port"]
4307 }
4308 ],
4309 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004310 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004311 "line" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004312 "column" : 12,
4313 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4314 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004315 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004316 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004317 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004318 "parameters" : [],
4319 "source_info" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004320 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004321 "line" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004322 "column" : 12,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004323 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004324 }
4325 }
4326 ]
4327 },
4328 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07004329 "name" : "act_25",
4330 "id" : 63,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004331 "runtime_data" : [],
4332 "primitives" : [
4333 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004334 "op" : "mark_to_drop",
4335 "parameters" : [
4336 {
4337 "type" : "header",
4338 "value" : "standard_metadata"
4339 }
4340 ],
4341 "source_info" : {
4342 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004343 "line" : 334,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004344 "column" : 12,
4345 "source_fragment" : "mark_to_drop(standard_metadata)"
4346 }
4347 }
4348 ]
4349 },
4350 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07004351 "name" : "act_26",
4352 "id" : 64,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004353 "runtime_data" : [],
4354 "primitives" : [
4355 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004356 "op" : "assign",
4357 "parameters" : [
4358 {
4359 "type" : "field",
4360 "value" : ["scalars", "egress_next_tmp"]
4361 },
4362 {
4363 "type" : "expression",
4364 "value" : {
4365 "type" : "expression",
4366 "value" : {
4367 "op" : "b2d",
4368 "left" : null,
4369 "right" : {
4370 "type" : "bool",
4371 "value" : true
4372 }
4373 }
4374 }
4375 }
4376 ]
4377 }
4378 ]
4379 },
4380 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07004381 "name" : "act_27",
4382 "id" : 65,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004383 "runtime_data" : [],
4384 "primitives" : [
4385 {
4386 "op" : "assign",
4387 "parameters" : [
4388 {
4389 "type" : "field",
4390 "value" : ["scalars", "egress_next_tmp"]
4391 },
4392 {
4393 "type" : "expression",
4394 "value" : {
4395 "type" : "expression",
4396 "value" : {
4397 "op" : "b2d",
4398 "left" : null,
4399 "right" : {
4400 "type" : "bool",
4401 "value" : false
4402 }
4403 }
4404 }
4405 }
4406 ]
4407 }
4408 ]
4409 },
4410 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07004411 "name" : "act_28",
4412 "id" : 66,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004413 "runtime_data" : [],
4414 "primitives" : [
4415 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004416 "op" : "mark_to_drop",
4417 "parameters" : [
4418 {
4419 "type" : "header",
4420 "value" : "standard_metadata"
4421 }
4422 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004423 "source_info" : {
4424 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004425 "line" : 367,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004426 "column" : 35,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004427 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004428 }
4429 }
4430 ]
4431 },
4432 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07004433 "name" : "act_29",
4434 "id" : 67,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004435 "runtime_data" : [],
4436 "primitives" : [
4437 {
4438 "op" : "assign",
4439 "parameters" : [
4440 {
4441 "type" : "field",
4442 "value" : ["mpls", "ttl"]
4443 },
4444 {
4445 "type" : "expression",
4446 "value" : {
4447 "type" : "expression",
4448 "value" : {
4449 "op" : "&",
4450 "left" : {
4451 "type" : "expression",
4452 "value" : {
4453 "op" : "+",
4454 "left" : {
4455 "type" : "field",
4456 "value" : ["mpls", "ttl"]
4457 },
4458 "right" : {
4459 "type" : "hexstr",
4460 "value" : "0xff"
4461 }
4462 }
4463 },
4464 "right" : {
4465 "type" : "hexstr",
4466 "value" : "0xff"
4467 }
4468 }
4469 }
4470 }
4471 ],
4472 "source_info" : {
4473 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004474 "line" : 366,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004475 "column" : 12,
4476 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
4477 }
4478 }
4479 ]
4480 },
4481 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07004482 "name" : "act_30",
4483 "id" : 68,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004484 "runtime_data" : [],
4485 "primitives" : [
4486 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004487 "op" : "mark_to_drop",
4488 "parameters" : [
4489 {
4490 "type" : "header",
4491 "value" : "standard_metadata"
4492 }
4493 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004494 "source_info" : {
4495 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004496 "line" : 371,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004497 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004498 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004499 }
4500 }
4501 ]
4502 },
4503 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07004504 "name" : "act_31",
4505 "id" : 69,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004506 "runtime_data" : [],
4507 "primitives" : [
4508 {
4509 "op" : "assign",
4510 "parameters" : [
4511 {
4512 "type" : "field",
4513 "value" : ["ipv4", "ttl"]
4514 },
4515 {
4516 "type" : "expression",
4517 "value" : {
4518 "type" : "expression",
4519 "value" : {
4520 "op" : "&",
4521 "left" : {
4522 "type" : "expression",
4523 "value" : {
4524 "op" : "+",
4525 "left" : {
4526 "type" : "field",
4527 "value" : ["ipv4", "ttl"]
4528 },
4529 "right" : {
4530 "type" : "hexstr",
4531 "value" : "0xff"
4532 }
4533 }
4534 },
4535 "right" : {
4536 "type" : "hexstr",
4537 "value" : "0xff"
4538 }
4539 }
4540 }
4541 }
4542 ],
4543 "source_info" : {
4544 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004545 "line" : 370,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004546 "column" : 16,
4547 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
4548 }
4549 }
4550 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004551 }
4552 ],
4553 "pipelines" : [
4554 {
4555 "name" : "ingress",
4556 "id" : 0,
4557 "source_info" : {
4558 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004559 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004560 "column" : 8,
4561 "source_fragment" : "FabricIngress"
4562 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004563 "init_table" : "tbl_act",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004564 "tables" : [
4565 {
4566 "name" : "tbl_act",
4567 "id" : 0,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004568 "source_info" : {
4569 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004570 "line" : 62,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004571 "column" : 50,
4572 "source_fragment" : "hdr.gtpu_ipv4, hdr.gtpu_udp"
4573 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004574 "key" : [],
4575 "match_type" : "exact",
4576 "type" : "simple",
4577 "max_size" : 1024,
4578 "with_counters" : false,
4579 "support_timeout" : false,
4580 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004581 "action_ids" : [32],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004582 "actions" : ["act_0"],
4583 "base_default_next" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004584 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004585 "act_0" : "node_3"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004586 },
4587 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004588 "action_id" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004589 "action_const" : true,
4590 "action_data" : [],
4591 "action_entry_const" : true
4592 }
4593 },
4594 {
4595 "name" : "tbl_act_0",
4596 "id" : 1,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004597 "source_info" : {
4598 "filename" : "include/spgw.p4",
4599 "line" : 30,
4600 "column" : 32,
4601 "source_fragment" : "return"
4602 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004603 "key" : [],
4604 "match_type" : "exact",
4605 "type" : "simple",
4606 "max_size" : 1024,
4607 "with_counters" : false,
4608 "support_timeout" : false,
4609 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004610 "action_ids" : [31],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004611 "actions" : ["act"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004612 "base_default_next" : "node_5",
4613 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004614 "act" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004615 },
4616 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004617 "action_id" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004618 "action_const" : true,
4619 "action_data" : [],
4620 "action_entry_const" : true
4621 }
4622 },
4623 {
4624 "name" : "tbl_act_1",
4625 "id" : 2,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004626 "source_info" : {
4627 "filename" : "include/spgw.p4",
4628 "line" : 31,
4629 "column" : 18,
4630 "source_fragment" : "= ipv4; ..."
4631 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004632 "key" : [],
4633 "match_type" : "exact",
4634 "type" : "simple",
4635 "max_size" : 1024,
4636 "with_counters" : false,
4637 "support_timeout" : false,
4638 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004639 "action_ids" : [35],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004640 "actions" : ["act_3"],
4641 "base_default_next" : "node_7",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004642 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004643 "act_3" : "node_7"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004644 },
4645 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004646 "action_id" : 35,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004647 "action_const" : true,
4648 "action_data" : [],
4649 "action_entry_const" : true
4650 }
4651 },
4652 {
4653 "name" : "tbl_act_2",
4654 "id" : 3,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004655 "source_info" : {
4656 "filename" : "include/spgw.p4",
4657 "line" : 35,
4658 "column" : 16,
4659 "source_fragment" : "="
4660 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004661 "key" : [],
4662 "match_type" : "exact",
4663 "type" : "simple",
4664 "max_size" : 1024,
4665 "with_counters" : false,
4666 "support_timeout" : false,
4667 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004668 "action_ids" : [33],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004669 "actions" : ["act_1"],
4670 "base_default_next" : "node_10",
4671 "next_tables" : {
4672 "act_1" : "node_10"
4673 },
4674 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004675 "action_id" : 33,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004676 "action_const" : true,
4677 "action_data" : [],
4678 "action_entry_const" : true
4679 }
4680 },
4681 {
4682 "name" : "tbl_act_3",
4683 "id" : 4,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004684 "source_info" : {
4685 "filename" : "include/spgw.p4",
4686 "line" : 37,
4687 "column" : 12,
4688 "source_fragment" : "udp.setInvalid()"
4689 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004690 "key" : [],
4691 "match_type" : "exact",
4692 "type" : "simple",
4693 "max_size" : 1024,
4694 "with_counters" : false,
4695 "support_timeout" : false,
4696 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004697 "action_ids" : [34],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004698 "actions" : ["act_2"],
4699 "base_default_next" : "node_10",
4700 "next_tables" : {
4701 "act_2" : "node_10"
4702 },
4703 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004704 "action_id" : 34,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004705 "action_const" : true,
4706 "action_data" : [],
4707 "action_entry_const" : true
4708 }
4709 },
4710 {
4711 "name" : "tbl_act_4",
4712 "id" : 5,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004713 "source_info" : {
4714 "filename" : "include/control/packetio.p4",
4715 "line" : 25,
4716 "column" : 42,
4717 "source_fragment" : "= hdr.packet_out.egress_port; ..."
4718 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004719 "key" : [],
4720 "match_type" : "exact",
4721 "type" : "simple",
4722 "max_size" : 1024,
4723 "with_counters" : false,
4724 "support_timeout" : false,
4725 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004726 "action_ids" : [36],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004727 "actions" : ["act_4"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004728 "base_default_next" : "node_12",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004729 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004730 "act_4" : "node_12"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004731 },
4732 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004733 "action_id" : 36,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004734 "action_const" : true,
4735 "action_data" : [],
4736 "action_entry_const" : true
4737 }
4738 },
4739 {
4740 "name" : "tbl_act_5",
4741 "id" : 6,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004742 "source_info" : {
4743 "filename" : "include/control/filtering.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004744 "line" : 110,
4745 "column" : 36,
4746 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07004747 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004748 "key" : [],
4749 "match_type" : "exact",
4750 "type" : "simple",
4751 "max_size" : 1024,
4752 "with_counters" : false,
4753 "support_timeout" : false,
4754 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004755 "action_ids" : [37],
4756 "actions" : ["act_5"],
4757 "base_default_next" : "node_14",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004758 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004759 "act_5" : "node_14"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004760 },
4761 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004762 "action_id" : 37,
4763 "action_const" : true,
4764 "action_data" : [],
4765 "action_entry_const" : true
4766 }
4767 },
4768 {
4769 "name" : "tbl_act_6",
4770 "id" : 7,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004771 "source_info" : {
4772 "filename" : "include/control/filtering.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004773 "line" : 126,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004774 "column" : 37,
4775 "source_fragment" : "="
4776 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004777 "key" : [],
4778 "match_type" : "exact",
4779 "type" : "simple",
4780 "max_size" : 1024,
4781 "with_counters" : false,
4782 "support_timeout" : false,
4783 "direct_meters" : null,
4784 "action_ids" : [38],
4785 "actions" : ["act_6"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07004786 "base_default_next" : "node_16",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004787 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07004788 "act_6" : "node_16"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004789 },
4790 "default_entry" : {
4791 "action_id" : 38,
4792 "action_const" : true,
4793 "action_data" : [],
4794 "action_entry_const" : true
4795 }
4796 },
4797 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07004798 "name" : "tbl_act_7",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004799 "id" : 8,
4800 "source_info" : {
4801 "filename" : "include/control/filtering.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004802 "line" : 131,
4803 "column" : 42,
4804 "source_fragment" : "="
4805 },
4806 "key" : [],
4807 "match_type" : "exact",
4808 "type" : "simple",
4809 "max_size" : 1024,
4810 "with_counters" : false,
4811 "support_timeout" : false,
4812 "direct_meters" : null,
4813 "action_ids" : [39],
4814 "actions" : ["act_7"],
4815 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
4816 "next_tables" : {
4817 "act_7" : "FabricIngress.filtering.ingress_port_vlan"
4818 },
4819 "default_entry" : {
4820 "action_id" : 39,
4821 "action_const" : true,
4822 "action_data" : [],
4823 "action_entry_const" : true
4824 }
4825 },
4826 {
4827 "name" : "tbl_act_8",
4828 "id" : 9,
4829 "source_info" : {
4830 "filename" : "include/control/filtering.p4",
4831 "line" : 136,
4832 "column" : 50,
4833 "source_fragment" : "="
4834 },
4835 "key" : [],
4836 "match_type" : "exact",
4837 "type" : "simple",
4838 "max_size" : 1024,
4839 "with_counters" : false,
4840 "support_timeout" : false,
4841 "direct_meters" : null,
4842 "action_ids" : [40],
4843 "actions" : ["act_8"],
4844 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
4845 "next_tables" : {
4846 "act_8" : "FabricIngress.filtering.ingress_port_vlan"
4847 },
4848 "default_entry" : {
4849 "action_id" : 40,
4850 "action_const" : true,
4851 "action_data" : [],
4852 "action_entry_const" : true
4853 }
4854 },
4855 {
4856 "name" : "tbl_act_9",
4857 "id" : 10,
4858 "source_info" : {
4859 "filename" : "include/control/filtering.p4",
4860 "line" : 139,
4861 "column" : 50,
4862 "source_fragment" : "="
4863 },
4864 "key" : [],
4865 "match_type" : "exact",
4866 "type" : "simple",
4867 "max_size" : 1024,
4868 "with_counters" : false,
4869 "support_timeout" : false,
4870 "direct_meters" : null,
4871 "action_ids" : [41],
4872 "actions" : ["act_9"],
4873 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
4874 "next_tables" : {
4875 "act_9" : "FabricIngress.filtering.ingress_port_vlan"
4876 },
4877 "default_entry" : {
4878 "action_id" : 41,
4879 "action_const" : true,
4880 "action_data" : [],
4881 "action_entry_const" : true
4882 }
4883 },
4884 {
4885 "name" : "tbl_act_10",
4886 "id" : 11,
4887 "source_info" : {
4888 "filename" : "include/control/filtering.p4",
4889 "line" : 141,
4890 "column" : 46,
4891 "source_fragment" : "="
4892 },
4893 "key" : [],
4894 "match_type" : "exact",
4895 "type" : "simple",
4896 "max_size" : 1024,
4897 "with_counters" : false,
4898 "support_timeout" : false,
4899 "direct_meters" : null,
4900 "action_ids" : [42],
4901 "actions" : ["act_10"],
4902 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
4903 "next_tables" : {
4904 "act_10" : "FabricIngress.filtering.ingress_port_vlan"
4905 },
4906 "default_entry" : {
4907 "action_id" : 42,
4908 "action_const" : true,
4909 "action_data" : [],
4910 "action_entry_const" : true
4911 }
4912 },
4913 {
4914 "name" : "FabricIngress.filtering.ingress_port_vlan",
4915 "id" : 12,
4916 "source_info" : {
4917 "filename" : "include/control/filtering.p4",
4918 "line" : 53,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004919 "column" : 10,
4920 "source_fragment" : "ingress_port_vlan"
4921 },
4922 "key" : [
4923 {
4924 "match_type" : "exact",
4925 "name" : "ig_port",
4926 "target" : ["standard_metadata", "ingress_port"],
4927 "mask" : null
4928 },
4929 {
4930 "match_type" : "exact",
4931 "name" : "vlan_is_valid",
4932 "target" : ["vlan_tag", "$valid$"],
4933 "mask" : null
4934 },
4935 {
4936 "match_type" : "ternary",
4937 "name" : "vlan_id",
4938 "target" : ["vlan_tag", "vlan_id"],
4939 "mask" : null
Daniele Moro7c3a0022019-07-12 13:38:34 -07004940 },
4941 {
4942 "match_type" : "ternary",
4943 "name" : "inner_vlan_id",
4944 "target" : ["inner_vlan_tag", "vlan_id"],
4945 "mask" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004946 }
4947 ],
4948 "match_type" : "ternary",
4949 "type" : "simple",
4950 "max_size" : 1024,
4951 "with_counters" : true,
4952 "support_timeout" : false,
4953 "direct_meters" : null,
4954 "action_ids" : [11, 12, 13],
4955 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
4956 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
4957 "next_tables" : {
4958 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
4959 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
4960 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
4961 },
4962 "default_entry" : {
4963 "action_id" : 11,
4964 "action_const" : true,
4965 "action_data" : [],
4966 "action_entry_const" : true
4967 }
4968 },
4969 {
4970 "name" : "FabricIngress.filtering.fwd_classifier",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004971 "id" : 13,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004972 "source_info" : {
4973 "filename" : "include/control/filtering.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004974 "line" : 90,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004975 "column" : 10,
4976 "source_fragment" : "fwd_classifier"
4977 },
4978 "key" : [
4979 {
4980 "match_type" : "exact",
4981 "name" : "ig_port",
4982 "target" : ["standard_metadata", "ingress_port"],
4983 "mask" : null
4984 },
4985 {
4986 "match_type" : "ternary",
4987 "name" : "eth_dst",
4988 "target" : ["ethernet", "dst_addr"],
4989 "mask" : null
4990 },
4991 {
4992 "match_type" : "exact",
Daniele Moro7c3a0022019-07-12 13:38:34 -07004993 "name" : "is_ipv4",
4994 "target" : ["scalars", "fabric_metadata_t._is_ipv41"],
4995 "mask" : null
4996 },
4997 {
4998 "match_type" : "exact",
4999 "name" : "is_ipv6",
5000 "target" : ["scalars", "fabric_metadata_t._is_ipv62"],
5001 "mask" : null
5002 },
5003 {
5004 "match_type" : "exact",
5005 "name" : "is_mpls",
5006 "target" : ["scalars", "fabric_metadata_t._is_mpls3"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005007 "mask" : null
5008 }
5009 ],
5010 "match_type" : "ternary",
5011 "type" : "simple",
5012 "max_size" : 1024,
5013 "with_counters" : true,
5014 "support_timeout" : false,
5015 "direct_meters" : null,
5016 "action_ids" : [14],
5017 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07005018 "base_default_next" : "tbl_act_11",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005019 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005020 "FabricIngress.filtering.set_forwarding_type" : "tbl_act_11"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005021 },
5022 "default_entry" : {
5023 "action_id" : 14,
5024 "action_const" : true,
5025 "action_data" : ["0x0"],
5026 "action_entry_const" : true
5027 }
5028 },
5029 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005030 "name" : "tbl_act_11",
5031 "id" : 14,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005032 "key" : [],
5033 "match_type" : "exact",
5034 "type" : "simple",
5035 "max_size" : 1024,
5036 "with_counters" : false,
5037 "support_timeout" : false,
5038 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005039 "action_ids" : [51],
5040 "actions" : ["act_19"],
5041 "base_default_next" : "node_26",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005042 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005043 "act_19" : "node_26"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005044 },
5045 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005046 "action_id" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005047 "action_const" : true,
5048 "action_data" : [],
5049 "action_entry_const" : true
5050 }
5051 },
5052 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005053 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005054 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005055 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005056 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005057 "line" : 83,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005058 "column" : 10,
5059 "source_fragment" : "s1u_filter_table"
5060 },
5061 "key" : [
5062 {
5063 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005064 "name" : "gtp_ipv4_dst",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005065 "target" : ["gtpu_ipv4", "dst_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005066 "mask" : null
5067 }
5068 ],
5069 "match_type" : "exact",
5070 "type" : "simple",
5071 "max_size" : 1024,
5072 "with_counters" : false,
5073 "support_timeout" : false,
5074 "direct_meters" : null,
5075 "action_ids" : [1],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005076 "actions" : ["nop"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005077 "base_default_next" : null,
5078 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005079 "__HIT__" : "tbl_act_12",
5080 "__MISS__" : "tbl_act_13"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005081 },
5082 "default_entry" : {
5083 "action_id" : 1,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005084 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005085 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005086 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005087 }
5088 },
5089 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005090 "name" : "tbl_act_12",
5091 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005092 "key" : [],
5093 "match_type" : "exact",
5094 "type" : "simple",
5095 "max_size" : 1024,
5096 "with_counters" : false,
5097 "support_timeout" : false,
5098 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005099 "action_ids" : [43],
5100 "actions" : ["act_11"],
5101 "base_default_next" : "node_30",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005102 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005103 "act_11" : "node_30"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005104 },
5105 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005106 "action_id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005107 "action_const" : true,
5108 "action_data" : [],
5109 "action_entry_const" : true
5110 }
5111 },
5112 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005113 "name" : "tbl_act_13",
5114 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005115 "key" : [],
5116 "match_type" : "exact",
5117 "type" : "simple",
5118 "max_size" : 1024,
5119 "with_counters" : false,
5120 "support_timeout" : false,
5121 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005122 "action_ids" : [44],
5123 "actions" : ["act_12"],
5124 "base_default_next" : "node_30",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005125 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005126 "act_12" : "node_30"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005127 },
5128 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005129 "action_id" : 44,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005130 "action_const" : true,
5131 "action_data" : [],
5132 "action_entry_const" : true
5133 }
5134 },
5135 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005136 "name" : "tbl_act_14",
5137 "id" : 18,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005138 "source_info" : {
5139 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005140 "line" : 149,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005141 "column" : 16,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005142 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07005143 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005144 "key" : [],
5145 "match_type" : "exact",
5146 "type" : "simple",
5147 "max_size" : 1024,
5148 "with_counters" : false,
5149 "support_timeout" : false,
5150 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005151 "action_ids" : [45],
5152 "actions" : ["act_13"],
5153 "base_default_next" : "tbl_act_15",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005154 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005155 "act_13" : "tbl_act_15"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005156 },
5157 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005158 "action_id" : 45,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005159 "action_const" : true,
5160 "action_data" : [],
5161 "action_entry_const" : true
5162 }
5163 },
5164 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005165 "name" : "tbl_act_15",
5166 "id" : 19,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005167 "source_info" : {
5168 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005169 "line" : 151,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005170 "column" : 39,
5171 "source_fragment" : "="
5172 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005173 "key" : [],
5174 "match_type" : "exact",
5175 "type" : "simple",
5176 "max_size" : 1024,
5177 "with_counters" : false,
5178 "support_timeout" : false,
5179 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005180 "action_ids" : [46],
5181 "actions" : ["act_14"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005182 "base_default_next" : "tbl_spgw_ingress_gtpu_decap",
5183 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005184 "act_14" : "tbl_spgw_ingress_gtpu_decap"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005185 },
5186 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005187 "action_id" : 46,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005188 "action_const" : true,
5189 "action_data" : [],
5190 "action_entry_const" : true
5191 }
5192 },
5193 {
5194 "name" : "tbl_spgw_ingress_gtpu_decap",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005195 "id" : 20,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005196 "source_info" : {
5197 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005198 "line" : 152,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005199 "column" : 12,
5200 "source_fragment" : "gtpu_decap()"
5201 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005202 "key" : [],
5203 "match_type" : "exact",
5204 "type" : "simple",
5205 "max_size" : 1024,
5206 "with_counters" : false,
5207 "support_timeout" : false,
5208 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005209 "action_ids" : [9],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005210 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07005211 "base_default_next" : "node_40",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005212 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005213 "FabricIngress.spgw_ingress.gtpu_decap" : "node_40"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005214 },
5215 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005216 "action_id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005217 "action_const" : true,
5218 "action_data" : [],
5219 "action_entry_const" : true
5220 }
5221 },
5222 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005223 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005224 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005225 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005226 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005227 "line" : 70,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005228 "column" : 10,
5229 "source_fragment" : "dl_sess_lookup"
5230 },
5231 "key" : [
5232 {
5233 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005234 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005235 "target" : ["ipv4", "dst_addr"],
5236 "mask" : null
5237 }
5238 ],
5239 "match_type" : "exact",
5240 "type" : "simple",
5241 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005242 "with_counters" : true,
5243 "support_timeout" : false,
5244 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005245 "action_ids" : [10, 0],
5246 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "nop"],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005247 "base_default_next" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005248 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005249 "__HIT__" : "tbl_act_16",
5250 "__MISS__" : "tbl_act_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005251 },
5252 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005253 "action_id" : 0,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005254 "action_const" : true,
5255 "action_data" : [],
5256 "action_entry_const" : true
5257 }
5258 },
5259 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005260 "name" : "tbl_act_16",
5261 "id" : 22,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005262 "key" : [],
5263 "match_type" : "exact",
5264 "type" : "simple",
5265 "max_size" : 1024,
5266 "with_counters" : false,
5267 "support_timeout" : false,
5268 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005269 "action_ids" : [47],
5270 "actions" : ["act_15"],
5271 "base_default_next" : "node_37",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005272 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005273 "act_15" : "node_37"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005274 },
5275 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005276 "action_id" : 47,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005277 "action_const" : true,
5278 "action_data" : [],
5279 "action_entry_const" : true
5280 }
5281 },
5282 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005283 "name" : "tbl_act_17",
5284 "id" : 23,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005285 "key" : [],
5286 "match_type" : "exact",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005287 "type" : "simple",
5288 "max_size" : 1024,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005289 "with_counters" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005290 "support_timeout" : false,
5291 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005292 "action_ids" : [48],
5293 "actions" : ["act_16"],
5294 "base_default_next" : "node_37",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005295 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005296 "act_16" : "node_37"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005297 },
5298 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005299 "action_id" : 48,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005300 "action_const" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005301 "action_data" : [],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005302 "action_entry_const" : true
5303 }
5304 },
5305 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005306 "name" : "tbl_act_18",
5307 "id" : 24,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005308 "source_info" : {
5309 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005310 "line" : 154,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005311 "column" : 39,
5312 "source_fragment" : "="
5313 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005314 "key" : [],
5315 "match_type" : "exact",
5316 "type" : "simple",
5317 "max_size" : 1024,
5318 "with_counters" : false,
5319 "support_timeout" : false,
5320 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005321 "action_ids" : [49],
5322 "actions" : ["act_17"],
5323 "base_default_next" : "node_40",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005324 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005325 "act_17" : "node_40"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005326 },
5327 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005328 "action_id" : 49,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005329 "action_const" : true,
5330 "action_data" : [],
5331 "action_entry_const" : true
5332 }
5333 },
5334 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005335 "name" : "tbl_act_19",
5336 "id" : 25,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005337 "source_info" : {
5338 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005339 "line" : 156,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005340 "column" : 39,
5341 "source_fragment" : "= SPGW_DIR_UNKNOWN; ..."
5342 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005343 "key" : [],
5344 "match_type" : "exact",
5345 "type" : "simple",
5346 "max_size" : 1024,
5347 "with_counters" : false,
5348 "support_timeout" : false,
5349 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005350 "action_ids" : [50],
5351 "actions" : ["act_18"],
5352 "base_default_next" : "node_40",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005353 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005354 "act_18" : "node_40"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005355 },
5356 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005357 "action_id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005358 "action_const" : true,
5359 "action_data" : [],
5360 "action_entry_const" : true
5361 }
5362 },
5363 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005364 "name" : "tbl_act_20",
5365 "id" : 26,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005366 "source_info" : {
5367 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005368 "line" : 175,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005369 "column" : 34,
5370 "source_fragment" : "="
5371 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005372 "key" : [],
5373 "match_type" : "exact",
5374 "type" : "simple",
5375 "max_size" : 1024,
5376 "with_counters" : false,
5377 "support_timeout" : false,
5378 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005379 "action_ids" : [52],
5380 "actions" : ["act_20"],
5381 "base_default_next" : "node_42",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005382 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005383 "act_20" : "node_42"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005384 },
5385 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005386 "action_id" : 52,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005387 "action_const" : true,
5388 "action_data" : [],
5389 "action_entry_const" : true
5390 }
5391 },
5392 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005393 "name" : "FabricIngress.forwarding.bridging",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005394 "id" : 27,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005395 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005396 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005397 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005398 "column" : 10,
5399 "source_fragment" : "bridging"
5400 },
5401 "key" : [
5402 {
5403 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005404 "name" : "vlan_id",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005405 "target" : ["scalars", "fabric_metadata_t._vlan_id5"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005406 "mask" : null
5407 },
5408 {
5409 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005410 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005411 "target" : ["ethernet", "dst_addr"],
5412 "mask" : null
5413 }
5414 ],
5415 "match_type" : "ternary",
5416 "type" : "simple",
5417 "max_size" : 1024,
5418 "with_counters" : true,
5419 "support_timeout" : false,
5420 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005421 "action_ids" : [15, 2],
5422 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
5423 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005424 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005425 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.acl.acl",
5426 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005427 },
5428 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005429 "action_id" : 2,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005430 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005431 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005432 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005433 }
5434 },
5435 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005436 "name" : "FabricIngress.forwarding.mpls",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005437 "id" : 28,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005438 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005439 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005440 "line" : 71,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005441 "column" : 10,
5442 "source_fragment" : "mpls"
5443 },
5444 "key" : [
5445 {
5446 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005447 "name" : "mpls_label",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005448 "target" : ["scalars", "fabric_metadata_t._mpls_label8"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005449 "mask" : null
5450 }
5451 ],
5452 "match_type" : "exact",
5453 "type" : "simple",
5454 "max_size" : 1024,
5455 "with_counters" : true,
5456 "support_timeout" : false,
5457 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005458 "action_ids" : [16, 3],
5459 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
5460 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005461 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005462 "FabricIngress.forwarding.pop_mpls_and_next" : "FabricIngress.acl.acl",
5463 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005464 },
5465 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005466 "action_id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005467 "action_const" : true,
5468 "action_data" : [],
5469 "action_entry_const" : true
5470 }
5471 },
5472 {
Charles Chan384aea22018-08-23 22:08:02 -07005473 "name" : "FabricIngress.forwarding.routing_v4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005474 "id" : 29,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005475 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005476 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005477 "line" : 101,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005478 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07005479 "source_fragment" : "routing_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005480 },
5481 "key" : [
5482 {
5483 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005484 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005485 "target" : ["ipv4", "dst_addr"],
5486 "mask" : null
5487 }
5488 ],
5489 "match_type" : "lpm",
5490 "type" : "simple",
5491 "max_size" : 1024,
5492 "with_counters" : true,
5493 "support_timeout" : false,
5494 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005495 "action_ids" : [17, 18, 4],
5496 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
5497 "base_default_next" : "FabricIngress.acl.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005498 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005499 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.acl.acl",
5500 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.acl.acl",
5501 "nop" : "FabricIngress.acl.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005502 },
5503 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005504 "action_id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005505 "action_const" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005506 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005507 "action_entry_const" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005508 }
5509 },
5510 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005511 "name" : "FabricIngress.acl.acl",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005512 "id" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005513 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005514 "filename" : "include/control/acl.p4",
5515 "line" : 60,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005516 "column" : 10,
5517 "source_fragment" : "acl"
5518 },
5519 "key" : [
5520 {
5521 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005522 "name" : "ig_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005523 "target" : ["standard_metadata", "ingress_port"],
5524 "mask" : null
5525 },
5526 {
5527 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005528 "name" : "ip_proto",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005529 "target" : ["scalars", "fabric_metadata_t._ip_proto16"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005530 "mask" : null
5531 },
5532 {
5533 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005534 "name" : "l4_sport",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005535 "target" : ["scalars", "fabric_metadata_t._l4_sport17"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005536 "mask" : null
5537 },
5538 {
5539 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005540 "name" : "l4_dport",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005541 "target" : ["scalars", "fabric_metadata_t._l4_dport18"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005542 "mask" : null
5543 },
5544 {
5545 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005546 "name" : "eth_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005547 "target" : ["ethernet", "dst_addr"],
5548 "mask" : null
5549 },
5550 {
5551 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005552 "name" : "eth_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005553 "target" : ["ethernet", "src_addr"],
5554 "mask" : null
5555 },
5556 {
5557 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005558 "name" : "vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005559 "target" : ["vlan_tag", "vlan_id"],
5560 "mask" : null
5561 },
5562 {
5563 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005564 "name" : "eth_type",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005565 "target" : ["scalars", "fabric_metadata_t._last_eth_type0"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08005566 "mask" : null
5567 },
5568 {
5569 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005570 "name" : "ipv4_src",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005571 "target" : ["ipv4", "src_addr"],
5572 "mask" : null
5573 },
5574 {
5575 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005576 "name" : "ipv4_dst",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005577 "target" : ["ipv4", "dst_addr"],
5578 "mask" : null
5579 },
5580 {
5581 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005582 "name" : "icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005583 "target" : ["icmp", "icmp_type"],
5584 "mask" : null
5585 },
5586 {
5587 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005588 "name" : "icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005589 "target" : ["icmp", "icmp_code"],
5590 "mask" : null
5591 }
5592 ],
5593 "match_type" : "ternary",
5594 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005595 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005596 "with_counters" : true,
5597 "support_timeout" : false,
5598 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005599 "action_ids" : [19, 20, 21, 22, 23],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005600 "actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.set_clone_session_id", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07005601 "base_default_next" : "node_50",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005602 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005603 "FabricIngress.acl.set_next_id_acl" : "node_50",
5604 "FabricIngress.acl.punt_to_cpu" : "node_50",
5605 "FabricIngress.acl.set_clone_session_id" : "node_50",
5606 "FabricIngress.acl.drop" : "node_50",
5607 "FabricIngress.acl.nop_acl" : "node_50"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005608 },
5609 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005610 "action_id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005611 "action_const" : true,
5612 "action_data" : [],
5613 "action_entry_const" : true
5614 }
5615 },
5616 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005617 "name" : "FabricIngress.next.xconnect",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005618 "id" : 31,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005619 "source_info" : {
5620 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005621 "line" : 116,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005622 "column" : 10,
5623 "source_fragment" : "xconnect"
5624 },
5625 "key" : [
5626 {
5627 "match_type" : "exact",
5628 "name" : "ig_port",
5629 "target" : ["standard_metadata", "ingress_port"],
5630 "mask" : null
5631 },
5632 {
5633 "match_type" : "exact",
5634 "name" : "next_id",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005635 "target" : ["scalars", "fabric_metadata_t._next_id13"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005636 "mask" : null
5637 }
5638 ],
5639 "match_type" : "exact",
5640 "type" : "simple",
5641 "max_size" : 1024,
5642 "with_counters" : true,
5643 "support_timeout" : false,
5644 "direct_meters" : null,
5645 "action_ids" : [25, 26, 6],
5646 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
5647 "base_default_next" : "FabricIngress.next.hashed",
5648 "next_tables" : {
5649 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
5650 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
5651 "nop" : "FabricIngress.next.hashed"
5652 },
5653 "default_entry" : {
5654 "action_id" : 6,
5655 "action_const" : true,
5656 "action_data" : [],
5657 "action_entry_const" : true
5658 }
5659 },
5660 {
5661 "name" : "FabricIngress.next.hashed",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005662 "id" : 32,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005663 "source_info" : {
5664 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005665 "line" : 196,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005666 "column" : 10,
5667 "source_fragment" : "hashed"
5668 },
5669 "key" : [
5670 {
5671 "match_type" : "exact",
5672 "name" : "next_id",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005673 "target" : ["scalars", "fabric_metadata_t._next_id13"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005674 "mask" : null
5675 }
5676 ],
5677 "match_type" : "exact",
5678 "type" : "indirect_ws",
5679 "action_profile" : "FabricIngress.next.hashed_selector",
5680 "max_size" : 1024,
5681 "with_counters" : true,
5682 "support_timeout" : false,
5683 "direct_meters" : null,
5684 "action_ids" : [27, 28, 29, 7],
5685 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
5686 "base_default_next" : "FabricIngress.next.multicast",
5687 "next_tables" : {
5688 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
5689 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
5690 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
5691 "nop" : "FabricIngress.next.multicast"
5692 }
5693 },
5694 {
5695 "name" : "FabricIngress.next.multicast",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005696 "id" : 33,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005697 "source_info" : {
5698 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005699 "line" : 230,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005700 "column" : 10,
5701 "source_fragment" : "multicast"
5702 },
5703 "key" : [
5704 {
5705 "match_type" : "exact",
5706 "name" : "next_id",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005707 "target" : ["scalars", "fabric_metadata_t._next_id13"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005708 "mask" : null
5709 }
5710 ],
5711 "match_type" : "exact",
5712 "type" : "simple",
5713 "max_size" : 1024,
5714 "with_counters" : true,
5715 "support_timeout" : false,
5716 "direct_meters" : null,
5717 "action_ids" : [30, 8],
5718 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
5719 "base_default_next" : "FabricIngress.next.next_vlan",
5720 "next_tables" : {
5721 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
5722 "nop" : "FabricIngress.next.next_vlan"
5723 },
5724 "default_entry" : {
5725 "action_id" : 8,
5726 "action_const" : true,
5727 "action_data" : [],
5728 "action_entry_const" : true
5729 }
5730 },
5731 {
5732 "name" : "FabricIngress.next.next_vlan",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005733 "id" : 34,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005734 "source_info" : {
5735 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005736 "line" : 82,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005737 "column" : 10,
5738 "source_fragment" : "next_vlan"
5739 },
5740 "key" : [
5741 {
5742 "match_type" : "exact",
5743 "name" : "next_id",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005744 "target" : ["scalars", "fabric_metadata_t._next_id13"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005745 "mask" : null
5746 }
5747 ],
5748 "match_type" : "exact",
5749 "type" : "simple",
5750 "max_size" : 1024,
5751 "with_counters" : true,
5752 "support_timeout" : false,
5753 "direct_meters" : null,
5754 "action_ids" : [24, 5],
5755 "actions" : ["FabricIngress.next.set_vlan", "nop"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07005756 "base_default_next" : "node_55",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005757 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005758 "FabricIngress.next.set_vlan" : "node_55",
5759 "nop" : "node_55"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005760 },
5761 "default_entry" : {
5762 "action_id" : 5,
5763 "action_const" : true,
5764 "action_data" : [],
5765 "action_entry_const" : true
5766 }
5767 },
5768 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005769 "name" : "tbl_act_21",
5770 "id" : 35,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005771 "source_info" : {
5772 "filename" : "include/control/port_counter.p4",
5773 "line" : 31,
5774 "column" : 12,
5775 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
5776 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02005777 "key" : [],
5778 "match_type" : "exact",
5779 "type" : "simple",
5780 "max_size" : 1024,
5781 "with_counters" : false,
5782 "support_timeout" : false,
5783 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005784 "action_ids" : [53],
5785 "actions" : ["act_21"],
5786 "base_default_next" : "node_57",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005787 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005788 "act_21" : "node_57"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005789 },
5790 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005791 "action_id" : 53,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005792 "action_const" : true,
5793 "action_data" : [],
5794 "action_entry_const" : true
5795 }
5796 },
5797 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005798 "name" : "tbl_act_22",
5799 "id" : 36,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005800 "source_info" : {
5801 "filename" : "include/control/port_counter.p4",
5802 "line" : 34,
5803 "column" : 12,
5804 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
5805 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005806 "key" : [],
5807 "match_type" : "exact",
5808 "type" : "simple",
5809 "max_size" : 1024,
5810 "with_counters" : false,
5811 "support_timeout" : false,
5812 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005813 "action_ids" : [54],
5814 "actions" : ["act_22"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005815 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005816 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005817 "act_22" : null
Carmelo Casconea5400af2018-07-17 22:11:54 +02005818 },
5819 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005820 "action_id" : 54,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005821 "action_const" : true,
5822 "action_data" : [],
5823 "action_entry_const" : true
5824 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005825 }
5826 ],
5827 "action_profiles" : [
5828 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005829 "name" : "FabricIngress.next.hashed_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005830 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005831 "source_info" : {
5832 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005833 "line" : 177,
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005834 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005835 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005836 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005837 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005838 "selector" : {
5839 "algo" : "crc16",
5840 "input" : [
5841 {
5842 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005843 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005844 },
5845 {
5846 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005847 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005848 },
5849 {
5850 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005851 "value" : ["scalars", "fabric_metadata_t._ip_proto16"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005852 },
5853 {
5854 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005855 "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005856 },
5857 {
5858 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005859 "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005860 }
5861 ]
5862 }
5863 }
5864 ],
5865 "conditionals" : [
5866 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005867 "name" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005868 "id" : 0,
5869 "source_info" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005870 "filename" : "include/spgw.p4",
5871 "line" : 30,
5872 "column" : 12,
5873 "source_fragment" : "! is_gtpu_encapped"
5874 },
5875 "expression" : {
5876 "type" : "expression",
5877 "value" : {
5878 "op" : "not",
5879 "left" : null,
5880 "right" : {
5881 "type" : "expression",
5882 "value" : {
5883 "op" : "d2b",
5884 "left" : null,
5885 "right" : {
5886 "type" : "field",
5887 "value" : ["gtpu", "$valid$"]
5888 }
5889 }
5890 }
5891 }
5892 },
5893 "true_next" : "tbl_act_0",
5894 "false_next" : "node_5"
5895 },
5896 {
5897 "name" : "node_5",
5898 "id" : 1,
5899 "expression" : {
5900 "type" : "expression",
5901 "value" : {
5902 "op" : "not",
5903 "left" : null,
5904 "right" : {
5905 "type" : "expression",
5906 "value" : {
5907 "op" : "d2b",
5908 "left" : null,
5909 "right" : {
5910 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005911 "value" : ["scalars", "spgw_normalizer_hasReturned"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005912 }
5913 }
5914 }
5915 }
5916 },
5917 "true_next" : "tbl_act_1",
5918 "false_next" : "node_10"
5919 },
5920 {
5921 "name" : "node_7",
5922 "id" : 2,
5923 "source_info" : {
5924 "filename" : "include/spgw.p4",
5925 "line" : 34,
5926 "column" : 12,
5927 "source_fragment" : "inner_udp.isValid()"
5928 },
5929 "expression" : {
5930 "type" : "expression",
5931 "value" : {
5932 "op" : "d2b",
5933 "left" : null,
5934 "right" : {
5935 "type" : "field",
5936 "value" : ["inner_udp", "$valid$"]
5937 }
5938 }
5939 },
5940 "true_next" : "tbl_act_2",
5941 "false_next" : "tbl_act_3"
5942 },
5943 {
5944 "name" : "node_10",
5945 "id" : 3,
5946 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005947 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005948 "line" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005949 "column" : 12,
5950 "source_fragment" : "hdr.packet_out.isValid()"
5951 },
5952 "expression" : {
5953 "type" : "expression",
5954 "value" : {
5955 "op" : "d2b",
5956 "left" : null,
5957 "right" : {
5958 "type" : "field",
5959 "value" : ["packet_out", "$valid$"]
5960 }
5961 }
5962 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005963 "true_next" : "tbl_act_4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005964 "false_next" : "node_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005965 },
5966 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005967 "name" : "node_12",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005968 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005969 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005970 "filename" : "include/control/filtering.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005971 "line" : 109,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005972 "column" : 12,
5973 "source_fragment" : "hdr.vlan_tag.isValid()"
5974 },
5975 "expression" : {
5976 "type" : "expression",
5977 "value" : {
5978 "op" : "d2b",
5979 "left" : null,
5980 "right" : {
5981 "type" : "field",
5982 "value" : ["vlan_tag", "$valid$"]
5983 }
5984 }
5985 },
5986 "true_next" : "tbl_act_5",
5987 "false_next" : "node_14"
5988 },
5989 {
5990 "name" : "node_14",
5991 "id" : 5,
5992 "source_info" : {
5993 "filename" : "include/control/filtering.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07005994 "line" : 121,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005995 "column" : 12,
5996 "source_fragment" : "!hdr.mpls.isValid()"
5997 },
5998 "expression" : {
5999 "type" : "expression",
6000 "value" : {
6001 "op" : "not",
6002 "left" : null,
6003 "right" : {
6004 "type" : "expression",
6005 "value" : {
6006 "op" : "d2b",
6007 "left" : null,
6008 "right" : {
6009 "type" : "field",
6010 "value" : ["mpls", "$valid$"]
6011 }
6012 }
6013 }
6014 }
6015 },
6016 "true_next" : "tbl_act_6",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006017 "false_next" : "node_16"
6018 },
6019 {
6020 "name" : "node_16",
6021 "id" : 6,
6022 "source_info" : {
6023 "filename" : "include/control/filtering.p4",
6024 "line" : 130,
6025 "column" : 12,
6026 "source_fragment" : "hdr.mpls.isValid()"
6027 },
6028 "expression" : {
6029 "type" : "expression",
6030 "value" : {
6031 "op" : "d2b",
6032 "left" : null,
6033 "right" : {
6034 "type" : "field",
6035 "value" : ["mpls", "$valid$"]
6036 }
6037 }
6038 },
6039 "true_next" : "tbl_act_7",
6040 "false_next" : "node_18"
6041 },
6042 {
6043 "name" : "node_18",
6044 "id" : 7,
6045 "source_info" : {
6046 "filename" : "include/control/filtering.p4",
6047 "line" : 133,
6048 "column" : 16,
6049 "source_fragment" : "hdr.vlan_tag.isValid()"
6050 },
6051 "expression" : {
6052 "type" : "expression",
6053 "value" : {
6054 "op" : "d2b",
6055 "left" : null,
6056 "right" : {
6057 "type" : "field",
6058 "value" : ["vlan_tag", "$valid$"]
6059 }
6060 }
6061 },
6062 "true_next" : "node_19",
6063 "false_next" : "tbl_act_10"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006064 },
6065 {
6066 "name" : "node_19",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006067 "id" : 8,
6068 "source_info" : {
6069 "filename" : "include/control/filtering.p4",
6070 "line" : 135,
6071 "column" : 19,
6072 "source_fragment" : "hdr.inner_vlan_tag.isValid()"
6073 },
6074 "expression" : {
6075 "type" : "expression",
6076 "value" : {
6077 "op" : "d2b",
6078 "left" : null,
6079 "right" : {
6080 "type" : "field",
6081 "value" : ["inner_vlan_tag", "$valid$"]
6082 }
6083 }
6084 },
6085 "true_next" : "tbl_act_8",
6086 "false_next" : "tbl_act_9"
6087 },
6088 {
6089 "name" : "node_26",
6090 "id" : 9,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006091 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006092 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006093 "line" : 144,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006094 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006095 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006096 },
6097 "expression" : {
6098 "type" : "expression",
6099 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006100 "op" : "d2b",
6101 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006102 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006103 "type" : "field",
6104 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006105 }
6106 }
6107 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006108 "true_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
6109 "false_next" : "FabricIngress.spgw_ingress.dl_sess_lookup"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006110 },
6111 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006112 "name" : "node_30",
6113 "id" : 10,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006114 "source_info" : {
6115 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006116 "line" : 148,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006117 "column" : 16,
6118 "source_fragment" : "!s1u_filter_table.apply().hit"
6119 },
6120 "expression" : {
6121 "type" : "expression",
6122 "value" : {
6123 "op" : "not",
6124 "left" : null,
6125 "right" : {
6126 "type" : "expression",
6127 "value" : {
6128 "op" : "d2b",
6129 "left" : null,
6130 "right" : {
6131 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006132 "value" : ["scalars", "spgw_ingress_tmp"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006133 }
6134 }
6135 }
6136 }
6137 },
Daniele Moro7c3a0022019-07-12 13:38:34 -07006138 "true_next" : "tbl_act_14",
6139 "false_next" : "tbl_act_15"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006140 },
6141 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006142 "name" : "node_37",
6143 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006144 "expression" : {
6145 "type" : "expression",
6146 "value" : {
6147 "op" : "d2b",
6148 "left" : null,
6149 "right" : {
6150 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006151 "value" : ["scalars", "spgw_ingress_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006152 }
6153 }
6154 },
Daniele Moro7c3a0022019-07-12 13:38:34 -07006155 "true_next" : "tbl_act_18",
6156 "false_next" : "tbl_act_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006157 },
6158 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006159 "name" : "node_40",
6160 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006161 "expression" : {
6162 "type" : "expression",
6163 "value" : {
6164 "op" : "not",
6165 "left" : null,
6166 "right" : {
6167 "type" : "expression",
6168 "value" : {
6169 "op" : "d2b",
6170 "left" : null,
6171 "right" : {
6172 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006173 "value" : ["scalars", "spgw_ingress_hasReturned"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006174 }
6175 }
6176 }
6177 }
6178 },
Daniele Moro7c3a0022019-07-12 13:38:34 -07006179 "true_next" : "tbl_act_20",
6180 "false_next" : "node_42"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006181 },
6182 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006183 "name" : "node_42",
6184 "id" : 13,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006185 "source_info" : {
6186 "filename" : "fabric.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006187 "line" : 71,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006188 "column" : 12,
6189 "source_fragment" : "fabric_metadata.skip_forwarding == false"
6190 },
6191 "expression" : {
6192 "type" : "expression",
6193 "value" : {
6194 "op" : "==",
6195 "left" : {
6196 "type" : "expression",
6197 "value" : {
6198 "op" : "d2b",
6199 "left" : null,
6200 "right" : {
6201 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006202 "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006203 }
6204 }
6205 },
6206 "right" : {
6207 "type" : "bool",
6208 "value" : false
6209 }
6210 }
6211 },
Daniele Moro7c3a0022019-07-12 13:38:34 -07006212 "true_next" : "node_43",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006213 "false_next" : "FabricIngress.acl.acl"
6214 },
6215 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006216 "name" : "node_43",
6217 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006218 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006219 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006220 "line" : 141,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006221 "column" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006222 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
6223 },
6224 "expression" : {
6225 "type" : "expression",
6226 "value" : {
6227 "op" : "==",
6228 "left" : {
6229 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006230 "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006231 },
6232 "right" : {
6233 "type" : "hexstr",
6234 "value" : "0x00"
6235 }
6236 }
6237 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006238 "true_next" : "FabricIngress.forwarding.bridging",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006239 "false_next" : "node_45"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006240 },
6241 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006242 "name" : "node_45",
6243 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006244 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006245 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006246 "line" : 142,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006247 "column" : 17,
6248 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
6249 },
6250 "expression" : {
6251 "type" : "expression",
6252 "value" : {
6253 "op" : "==",
6254 "left" : {
6255 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006256 "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006257 },
6258 "right" : {
6259 "type" : "hexstr",
6260 "value" : "0x01"
6261 }
6262 }
6263 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006264 "true_next" : "FabricIngress.forwarding.mpls",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006265 "false_next" : "node_47"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006266 },
6267 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006268 "name" : "node_47",
6269 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006270 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006271 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006272 "line" : 143,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006273 "column" : 17,
6274 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
6275 },
6276 "expression" : {
6277 "type" : "expression",
6278 "value" : {
6279 "op" : "==",
6280 "left" : {
6281 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006282 "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006283 },
6284 "right" : {
6285 "type" : "hexstr",
6286 "value" : "0x02"
6287 }
6288 }
6289 },
Charles Chan384aea22018-08-23 22:08:02 -07006290 "true_next" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006291 "false_next" : "FabricIngress.acl.acl"
6292 },
6293 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006294 "name" : "node_50",
6295 "id" : 17,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006296 "source_info" : {
6297 "filename" : "fabric.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006298 "line" : 75,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006299 "column" : 12,
6300 "source_fragment" : "fabric_metadata.skip_next == false"
6301 },
6302 "expression" : {
6303 "type" : "expression",
6304 "value" : {
6305 "op" : "==",
6306 "left" : {
6307 "type" : "expression",
6308 "value" : {
6309 "op" : "d2b",
6310 "left" : null,
6311 "right" : {
6312 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006313 "value" : ["scalars", "fabric_metadata_t._skip_next11"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006314 }
6315 }
6316 },
6317 "right" : {
6318 "type" : "bool",
6319 "value" : false
6320 }
6321 }
6322 },
6323 "false_next" : null,
6324 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08006325 },
6326 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006327 "name" : "node_55",
6328 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006329 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006330 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006331 "line" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006332 "column" : 12,
6333 "source_fragment" : "standard_metadata.egress_spec < 511"
6334 },
6335 "expression" : {
6336 "type" : "expression",
6337 "value" : {
6338 "op" : "<",
6339 "left" : {
6340 "type" : "field",
6341 "value" : ["standard_metadata", "egress_spec"]
6342 },
6343 "right" : {
6344 "type" : "hexstr",
6345 "value" : "0x01ff"
6346 }
6347 }
6348 },
Daniele Moro7c3a0022019-07-12 13:38:34 -07006349 "true_next" : "tbl_act_21",
6350 "false_next" : "node_57"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006351 },
6352 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006353 "name" : "node_57",
6354 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006355 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006356 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006357 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006358 "column" : 12,
6359 "source_fragment" : "standard_metadata.ingress_port < 511"
6360 },
6361 "expression" : {
6362 "type" : "expression",
6363 "value" : {
6364 "op" : "<",
6365 "left" : {
6366 "type" : "field",
6367 "value" : ["standard_metadata", "ingress_port"]
6368 },
6369 "right" : {
6370 "type" : "hexstr",
6371 "value" : "0x01ff"
6372 }
6373 }
6374 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006375 "false_next" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006376 "true_next" : "tbl_act_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006377 }
6378 ]
6379 },
6380 {
6381 "name" : "egress",
6382 "id" : 1,
6383 "source_info" : {
6384 "filename" : "fabric.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006385 "line" : 93,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006386 "column" : 8,
6387 "source_fragment" : "FabricEgress"
6388 },
Daniele Moro7c3a0022019-07-12 13:38:34 -07006389 "init_table" : "node_61",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006390 "tables" : [
6391 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006392 "name" : "tbl_act_23",
6393 "id" : 37,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006394 "source_info" : {
6395 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006396 "line" : 41,
6397 "column" : 12,
6398 "source_fragment" : "exit"
Carmelo Cascone3032b872019-04-13 01:23:54 -07006399 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006400 "key" : [],
6401 "match_type" : "exact",
6402 "type" : "simple",
6403 "max_size" : 1024,
6404 "with_counters" : false,
6405 "support_timeout" : false,
6406 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006407 "action_ids" : [61],
6408 "actions" : ["act_23"],
6409 "base_default_next" : "node_63",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006410 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006411 "act_23" : "node_63"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006412 },
6413 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006414 "action_id" : 61,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006415 "action_const" : true,
6416 "action_data" : [],
6417 "action_entry_const" : true
6418 }
6419 },
6420 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006421 "name" : "tbl_act_24",
6422 "id" : 38,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006423 "source_info" : {
6424 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006425 "line" : 44,
6426 "column" : 12,
6427 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07006428 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006429 "key" : [],
6430 "match_type" : "exact",
6431 "type" : "simple",
6432 "max_size" : 1024,
6433 "with_counters" : false,
6434 "support_timeout" : false,
6435 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006436 "action_ids" : [62],
6437 "actions" : ["act_24"],
6438 "base_default_next" : "node_65",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006439 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006440 "act_24" : "node_65"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006441 },
6442 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006443 "action_id" : 62,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006444 "action_const" : true,
6445 "action_data" : [],
6446 "action_entry_const" : true
6447 }
6448 },
6449 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006450 "name" : "tbl_act_25",
6451 "id" : 39,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006452 "source_info" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006453 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006454 "line" : 334,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006455 "column" : 12,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006456 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07006457 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006458 "key" : [],
6459 "match_type" : "exact",
6460 "type" : "simple",
6461 "max_size" : 1024,
6462 "with_counters" : false,
6463 "support_timeout" : false,
6464 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006465 "action_ids" : [63],
6466 "actions" : ["act_25"],
6467 "base_default_next" : "node_67",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006468 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006469 "act_25" : "node_67"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006470 },
6471 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006472 "action_id" : 63,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006473 "action_const" : true,
6474 "action_data" : [],
6475 "action_entry_const" : true
6476 }
6477 },
6478 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006479 "name" : "tbl_egress_next_pop_mpls_if_present",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006480 "id" : 40,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006481 "source_info" : {
6482 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006483 "line" : 338,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006484 "column" : 36,
6485 "source_fragment" : "pop_mpls_if_present()"
6486 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006487 "key" : [],
6488 "match_type" : "exact",
6489 "type" : "simple",
6490 "max_size" : 1024,
6491 "with_counters" : false,
6492 "support_timeout" : false,
6493 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006494 "action_ids" : [57],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006495 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
6496 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6497 "next_tables" : {
6498 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
6499 },
6500 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006501 "action_id" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006502 "action_const" : true,
6503 "action_data" : [],
6504 "action_entry_const" : true
6505 }
6506 },
6507 {
6508 "name" : "tbl_egress_next_set_mpls",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006509 "id" : 41,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006510 "source_info" : {
6511 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006512 "line" : 340,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006513 "column" : 12,
6514 "source_fragment" : "set_mpls()"
6515 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006516 "key" : [],
6517 "match_type" : "exact",
6518 "type" : "simple",
6519 "max_size" : 1024,
6520 "with_counters" : false,
6521 "support_timeout" : false,
6522 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006523 "action_ids" : [58],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006524 "actions" : ["FabricEgress.egress_next.set_mpls"],
6525 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6526 "next_tables" : {
6527 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
6528 },
6529 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006530 "action_id" : 58,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006531 "action_const" : true,
6532 "action_data" : [],
6533 "action_entry_const" : true
6534 }
6535 },
6536 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006537 "name" : "FabricEgress.egress_next.egress_vlan",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006538 "id" : 42,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006539 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006540 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006541 "line" : 317,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006542 "column" : 10,
6543 "source_fragment" : "egress_vlan"
6544 },
6545 "key" : [
6546 {
6547 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006548 "name" : "vlan_id",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006549 "target" : ["scalars", "fabric_metadata_t._vlan_id5"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006550 "mask" : null
6551 },
6552 {
6553 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006554 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006555 "target" : ["standard_metadata", "egress_port"],
6556 "mask" : null
6557 }
6558 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006559 "match_type" : "exact",
6560 "type" : "simple",
6561 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08006562 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006563 "support_timeout" : false,
6564 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006565 "action_ids" : [60, 55],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006566 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006567 "base_default_next" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006568 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006569 "__HIT__" : "tbl_act_26",
6570 "__MISS__" : "tbl_act_27"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006571 },
6572 "default_entry" : {
6573 "action_id" : 55,
6574 "action_const" : true,
6575 "action_data" : [],
6576 "action_entry_const" : true
6577 }
6578 },
6579 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006580 "name" : "tbl_act_26",
6581 "id" : 43,
6582 "key" : [],
6583 "match_type" : "exact",
6584 "type" : "simple",
6585 "max_size" : 1024,
6586 "with_counters" : false,
6587 "support_timeout" : false,
6588 "direct_meters" : null,
6589 "action_ids" : [64],
6590 "actions" : ["act_26"],
6591 "base_default_next" : "node_74",
6592 "next_tables" : {
6593 "act_26" : "node_74"
6594 },
6595 "default_entry" : {
6596 "action_id" : 64,
6597 "action_const" : true,
6598 "action_data" : [],
6599 "action_entry_const" : true
6600 }
6601 },
6602 {
6603 "name" : "tbl_act_27",
6604 "id" : 44,
6605 "key" : [],
6606 "match_type" : "exact",
6607 "type" : "simple",
6608 "max_size" : 1024,
6609 "with_counters" : false,
6610 "support_timeout" : false,
6611 "direct_meters" : null,
6612 "action_ids" : [65],
6613 "actions" : ["act_27"],
6614 "base_default_next" : "node_74",
6615 "next_tables" : {
6616 "act_27" : "node_74"
6617 },
6618 "default_entry" : {
6619 "action_id" : 65,
6620 "action_const" : true,
6621 "action_data" : [],
6622 "action_entry_const" : true
6623 }
6624 },
6625 {
6626 "name" : "tbl_egress_next_push_vlan",
6627 "id" : 45,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006628 "source_info" : {
6629 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006630 "line" : 357,
6631 "column" : 20,
6632 "source_fragment" : "push_vlan()"
6633 },
6634 "key" : [],
6635 "match_type" : "exact",
6636 "type" : "simple",
6637 "max_size" : 1024,
6638 "with_counters" : false,
6639 "support_timeout" : false,
6640 "direct_meters" : null,
6641 "action_ids" : [59],
6642 "actions" : ["FabricEgress.egress_next.push_vlan"],
6643 "base_default_next" : "node_77",
6644 "next_tables" : {
6645 "FabricEgress.egress_next.push_vlan" : "node_77"
6646 },
6647 "default_entry" : {
6648 "action_id" : 59,
6649 "action_const" : true,
6650 "action_data" : [],
6651 "action_entry_const" : true
6652 }
6653 },
6654 {
6655 "name" : "tbl_act_28",
6656 "id" : 46,
6657 "source_info" : {
6658 "filename" : "include/control/next.p4",
6659 "line" : 366,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006660 "column" : 25,
6661 "source_fragment" : "="
6662 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006663 "key" : [],
6664 "match_type" : "exact",
6665 "type" : "simple",
6666 "max_size" : 1024,
6667 "with_counters" : false,
6668 "support_timeout" : false,
6669 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006670 "action_ids" : [67],
6671 "actions" : ["act_29"],
6672 "base_default_next" : "node_79",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006673 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006674 "act_29" : "node_79"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006675 },
6676 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006677 "action_id" : 67,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006678 "action_const" : true,
6679 "action_data" : [],
6680 "action_entry_const" : true
6681 }
6682 },
6683 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006684 "name" : "tbl_act_29",
6685 "id" : 47,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006686 "source_info" : {
6687 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006688 "line" : 367,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006689 "column" : 35,
6690 "source_fragment" : "mark_to_drop(standard_metadata)"
6691 },
6692 "key" : [],
6693 "match_type" : "exact",
6694 "type" : "simple",
6695 "max_size" : 1024,
6696 "with_counters" : false,
6697 "support_timeout" : false,
6698 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006699 "action_ids" : [66],
6700 "actions" : ["act_28"],
6701 "base_default_next" : "node_85",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006702 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006703 "act_28" : "node_85"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006704 },
6705 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006706 "action_id" : 66,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006707 "action_const" : true,
6708 "action_data" : [],
6709 "action_entry_const" : true
6710 }
6711 },
6712 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006713 "name" : "tbl_act_30",
6714 "id" : 48,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006715 "source_info" : {
6716 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006717 "line" : 370,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006718 "column" : 29,
6719 "source_fragment" : "="
6720 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006721 "key" : [],
6722 "match_type" : "exact",
6723 "type" : "simple",
6724 "max_size" : 1024,
6725 "with_counters" : false,
6726 "support_timeout" : false,
6727 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006728 "action_ids" : [69],
6729 "actions" : ["act_31"],
6730 "base_default_next" : "node_83",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006731 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006732 "act_31" : "node_83"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006733 },
6734 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006735 "action_id" : 69,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006736 "action_const" : true,
6737 "action_data" : [],
6738 "action_entry_const" : true
6739 }
6740 },
6741 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006742 "name" : "tbl_act_31",
6743 "id" : 49,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006744 "source_info" : {
6745 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006746 "line" : 371,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006747 "column" : 39,
6748 "source_fragment" : "mark_to_drop(standard_metadata)"
6749 },
6750 "key" : [],
6751 "match_type" : "exact",
6752 "type" : "simple",
6753 "max_size" : 1024,
6754 "with_counters" : false,
6755 "support_timeout" : false,
6756 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006757 "action_ids" : [68],
6758 "actions" : ["act_30"],
6759 "base_default_next" : "node_85",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006760 "next_tables" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006761 "act_30" : "node_85"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006762 },
6763 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006764 "action_id" : 68,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006765 "action_const" : true,
6766 "action_data" : [],
6767 "action_entry_const" : true
6768 }
6769 },
6770 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006771 "name" : "tbl_spgw_egress_gtpu_encap",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006772 "id" : 50,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006773 "source_info" : {
6774 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006775 "line" : 228,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006776 "column" : 12,
6777 "source_fragment" : "gtpu_encap()"
6778 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006779 "key" : [],
6780 "match_type" : "exact",
6781 "type" : "simple",
6782 "max_size" : 1024,
6783 "with_counters" : false,
6784 "support_timeout" : false,
6785 "direct_meters" : null,
Daniele Moro7c3a0022019-07-12 13:38:34 -07006786 "action_ids" : [56],
Yi Tseng27b9bc02018-04-12 14:52:40 +08006787 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006788 "base_default_next" : null,
6789 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006790 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006791 },
6792 "default_entry" : {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006793 "action_id" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006794 "action_const" : true,
6795 "action_data" : [],
6796 "action_entry_const" : true
6797 }
6798 }
6799 ],
6800 "action_profiles" : [],
6801 "conditionals" : [
6802 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006803 "name" : "node_61",
6804 "id" : 20,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006805 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006806 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006807 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006808 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006809 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006810 },
6811 "expression" : {
6812 "type" : "expression",
6813 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006814 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006815 "left" : {
6816 "type" : "expression",
6817 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006818 "op" : "d2b",
6819 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006820 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006821 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006822 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02006823 }
6824 }
6825 },
6826 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006827 "type" : "bool",
6828 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02006829 }
6830 }
6831 },
Daniele Moro7c3a0022019-07-12 13:38:34 -07006832 "true_next" : "tbl_act_23",
6833 "false_next" : "node_63"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006834 },
6835 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006836 "name" : "node_63",
6837 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006838 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006839 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006840 "line" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006841 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08006842 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006843 },
6844 "expression" : {
6845 "type" : "expression",
6846 "value" : {
6847 "op" : "==",
6848 "left" : {
6849 "type" : "field",
6850 "value" : ["standard_metadata", "egress_port"]
6851 },
6852 "right" : {
6853 "type" : "hexstr",
6854 "value" : "0x00ff"
6855 }
6856 }
6857 },
Daniele Moro7c3a0022019-07-12 13:38:34 -07006858 "true_next" : "tbl_act_24",
6859 "false_next" : "node_65"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006860 },
6861 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006862 "name" : "node_65",
6863 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006864 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006865 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006866 "line" : 332,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006867 "column" : 12,
6868 "source_fragment" : "fabric_metadata.is_multicast == true ..."
6869 },
6870 "expression" : {
6871 "type" : "expression",
6872 "value" : {
6873 "op" : "and",
6874 "left" : {
6875 "type" : "expression",
6876 "value" : {
6877 "op" : "==",
6878 "left" : {
6879 "type" : "expression",
6880 "value" : {
6881 "op" : "d2b",
6882 "left" : null,
6883 "right" : {
6884 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006885 "value" : ["scalars", "fabric_metadata_t._is_multicast14"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006886 }
6887 }
6888 },
6889 "right" : {
6890 "type" : "bool",
6891 "value" : true
6892 }
6893 }
6894 },
6895 "right" : {
6896 "type" : "expression",
6897 "value" : {
6898 "op" : "==",
6899 "left" : {
6900 "type" : "field",
6901 "value" : ["standard_metadata", "ingress_port"]
6902 },
6903 "right" : {
6904 "type" : "field",
6905 "value" : ["standard_metadata", "egress_port"]
6906 }
6907 }
6908 }
6909 }
6910 },
Daniele Moro7c3a0022019-07-12 13:38:34 -07006911 "true_next" : "tbl_act_25",
6912 "false_next" : "node_67"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006913 },
6914 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006915 "name" : "node_67",
6916 "id" : 23,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006917 "source_info" : {
6918 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006919 "line" : 337,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006920 "column" : 12,
6921 "source_fragment" : "fabric_metadata.mpls_label == 0"
6922 },
6923 "expression" : {
6924 "type" : "expression",
6925 "value" : {
6926 "op" : "==",
6927 "left" : {
6928 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006929 "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006930 },
6931 "right" : {
6932 "type" : "hexstr",
6933 "value" : "0x000000"
6934 }
6935 }
6936 },
Daniele Moro7c3a0022019-07-12 13:38:34 -07006937 "true_next" : "node_68",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006938 "false_next" : "tbl_egress_next_set_mpls"
6939 },
6940 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006941 "name" : "node_68",
6942 "id" : 24,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006943 "source_info" : {
6944 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006945 "line" : 338,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006946 "column" : 16,
6947 "source_fragment" : "hdr.mpls.isValid()"
6948 },
6949 "expression" : {
6950 "type" : "expression",
6951 "value" : {
6952 "op" : "d2b",
6953 "left" : null,
6954 "right" : {
6955 "type" : "field",
6956 "value" : ["mpls", "$valid$"]
6957 }
6958 }
6959 },
6960 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006961 "false_next" : "FabricEgress.egress_next.egress_vlan"
6962 },
6963 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006964 "name" : "node_74",
6965 "id" : 25,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006966 "source_info" : {
6967 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006968 "line" : 354,
6969 "column" : 16,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006970 "source_fragment" : "!egress_vlan.apply().hit"
6971 },
6972 "expression" : {
6973 "type" : "expression",
6974 "value" : {
6975 "op" : "not",
6976 "left" : null,
6977 "right" : {
6978 "type" : "expression",
6979 "value" : {
6980 "op" : "d2b",
6981 "left" : null,
6982 "right" : {
6983 "type" : "field",
6984 "value" : ["scalars", "egress_next_tmp"]
6985 }
6986 }
6987 }
6988 }
6989 },
Daniele Moro7c3a0022019-07-12 13:38:34 -07006990 "true_next" : "node_75",
6991 "false_next" : "node_77"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006992 },
6993 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07006994 "name" : "node_75",
6995 "id" : 26,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006996 "source_info" : {
6997 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07006998 "line" : 356,
6999 "column" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007000 "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
7001 },
7002 "expression" : {
7003 "type" : "expression",
7004 "value" : {
7005 "op" : "!=",
7006 "left" : {
7007 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07007008 "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007009 },
7010 "right" : {
7011 "type" : "hexstr",
7012 "value" : "0x0ffe"
7013 }
7014 }
7015 },
7016 "true_next" : "tbl_egress_next_push_vlan",
Daniele Moro7c3a0022019-07-12 13:38:34 -07007017 "false_next" : "node_77"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007018 },
7019 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07007020 "name" : "node_77",
7021 "id" : 27,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007022 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007023 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07007024 "line" : 365,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007025 "column" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007026 "source_fragment" : "hdr.mpls.isValid()"
7027 },
7028 "expression" : {
7029 "type" : "expression",
7030 "value" : {
7031 "op" : "d2b",
7032 "left" : null,
7033 "right" : {
7034 "type" : "field",
7035 "value" : ["mpls", "$valid$"]
7036 }
7037 }
7038 },
Daniele Moro7c3a0022019-07-12 13:38:34 -07007039 "true_next" : "tbl_act_28",
7040 "false_next" : "node_81"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007041 },
7042 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07007043 "name" : "node_79",
7044 "id" : 28,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007045 "source_info" : {
7046 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07007047 "line" : 367,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007048 "column" : 16,
7049 "source_fragment" : "hdr.mpls.ttl == 0"
7050 },
7051 "expression" : {
7052 "type" : "expression",
7053 "value" : {
7054 "op" : "==",
7055 "left" : {
7056 "type" : "field",
7057 "value" : ["mpls", "ttl"]
7058 },
7059 "right" : {
7060 "type" : "hexstr",
7061 "value" : "0x00"
7062 }
7063 }
7064 },
Daniele Moro7c3a0022019-07-12 13:38:34 -07007065 "true_next" : "tbl_act_29",
7066 "false_next" : "node_85"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007067 },
7068 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07007069 "name" : "node_81",
7070 "id" : 29,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007071 "source_info" : {
7072 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07007073 "line" : 369,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007074 "column" : 15,
7075 "source_fragment" : "hdr.ipv4.isValid()"
7076 },
7077 "expression" : {
7078 "type" : "expression",
7079 "value" : {
7080 "op" : "d2b",
7081 "left" : null,
7082 "right" : {
7083 "type" : "field",
7084 "value" : ["ipv4", "$valid$"]
7085 }
7086 }
7087 },
Daniele Moro7c3a0022019-07-12 13:38:34 -07007088 "true_next" : "tbl_act_30",
7089 "false_next" : "node_85"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007090 },
7091 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07007092 "name" : "node_83",
7093 "id" : 30,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007094 "source_info" : {
7095 "filename" : "include/control/next.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07007096 "line" : 371,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007097 "column" : 20,
7098 "source_fragment" : "hdr.ipv4.ttl == 0"
7099 },
7100 "expression" : {
7101 "type" : "expression",
7102 "value" : {
7103 "op" : "==",
7104 "left" : {
7105 "type" : "field",
7106 "value" : ["ipv4", "ttl"]
7107 },
7108 "right" : {
7109 "type" : "hexstr",
7110 "value" : "0x00"
7111 }
7112 }
7113 },
Daniele Moro7c3a0022019-07-12 13:38:34 -07007114 "true_next" : "tbl_act_31",
7115 "false_next" : "node_85"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007116 },
7117 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07007118 "name" : "node_85",
7119 "id" : 31,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007120 "source_info" : {
7121 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007122 "line" : 227,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007123 "column" : 12,
7124 "source_fragment" : "fabric_meta.spgw.direction == SPGW_DIR_DOWNLINK"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007125 },
7126 "expression" : {
7127 "type" : "expression",
7128 "value" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007129 "op" : "==",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007130 "left" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007131 "type" : "field",
Daniele Moro7c3a0022019-07-12 13:38:34 -07007132 "value" : ["scalars", "fabric_metadata_t._spgw_direction19"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007133 },
7134 "right" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007135 "type" : "hexstr",
7136 "value" : "0x02"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007137 }
7138 }
7139 },
7140 "false_next" : null,
7141 "true_next" : "tbl_spgw_egress_gtpu_encap"
7142 }
7143 ]
7144 }
7145 ],
7146 "checksums" : [
7147 {
7148 "name" : "cksum",
7149 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07007150 "source_info" : {
7151 "filename" : "include/checksum.p4",
7152 "line" : 28,
7153 "column" : 8,
7154 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
7155 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007156 "target" : ["ipv4", "hdr_checksum"],
7157 "type" : "generic",
7158 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08007159 "verify" : false,
7160 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007161 "if_cond" : {
7162 "type" : "expression",
7163 "value" : {
7164 "op" : "d2b",
7165 "left" : null,
7166 "right" : {
7167 "type" : "field",
7168 "value" : ["ipv4", "$valid$"]
7169 }
7170 }
7171 }
7172 },
7173 {
7174 "name" : "cksum_0",
7175 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07007176 "source_info" : {
7177 "filename" : "include/spgw.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007178 "line" : 243,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07007179 "column" : 8,
7180 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
7181 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007182 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007183 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007184 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08007185 "verify" : false,
7186 "update" : true,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007187 "if_cond" : {
7188 "type" : "expression",
7189 "value" : {
7190 "op" : "d2b",
7191 "left" : null,
7192 "right" : {
7193 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007194 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007195 }
7196 }
7197 }
7198 },
7199 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007200 "name" : "cksum_1",
7201 "id" : 2,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07007202 "source_info" : {
7203 "filename" : "include/checksum.p4",
7204 "line" : 57,
7205 "column" : 8,
7206 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
7207 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007208 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007209 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007210 "calculation" : "calc_1",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08007211 "verify" : true,
7212 "update" : false,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007213 "if_cond" : {
7214 "type" : "expression",
7215 "value" : {
7216 "op" : "d2b",
7217 "left" : null,
7218 "right" : {
7219 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007220 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007221 }
7222 }
7223 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007224 }
7225 ],
7226 "force_arith" : [],
7227 "extern_instances" : [],
7228 "field_aliases" : [
7229 [
7230 "queueing_metadata.enq_timestamp",
7231 ["standard_metadata", "enq_timestamp"]
7232 ],
7233 [
7234 "queueing_metadata.enq_qdepth",
7235 ["standard_metadata", "enq_qdepth"]
7236 ],
7237 [
7238 "queueing_metadata.deq_timedelta",
7239 ["standard_metadata", "deq_timedelta"]
7240 ],
7241 [
7242 "queueing_metadata.deq_qdepth",
7243 ["standard_metadata", "deq_qdepth"]
7244 ],
7245 [
7246 "intrinsic_metadata.ingress_global_timestamp",
7247 ["standard_metadata", "ingress_global_timestamp"]
7248 ],
7249 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08007250 "intrinsic_metadata.egress_global_timestamp",
7251 ["standard_metadata", "egress_global_timestamp"]
7252 ],
7253 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007254 "intrinsic_metadata.lf_field_list",
7255 ["standard_metadata", "lf_field_list"]
7256 ],
7257 [
7258 "intrinsic_metadata.mcast_grp",
7259 ["standard_metadata", "mcast_grp"]
7260 ],
7261 [
7262 "intrinsic_metadata.resubmit_flag",
7263 ["standard_metadata", "resubmit_flag"]
7264 ],
7265 [
7266 "intrinsic_metadata.egress_rid",
7267 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08007268 ],
7269 [
7270 "intrinsic_metadata.recirculate_flag",
7271 ["standard_metadata", "recirculate_flag"]
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007272 ],
7273 [
7274 "intrinsic_metadata.priority",
7275 ["standard_metadata", "priority"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007276 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007277 ],
7278 "program" : "fabric.p4",
7279 "__meta__" : {
7280 "version" : [2, 18],
7281 "compiler" : "https://github.com/p4lang/p4c"
7282 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08007283}