blob: a3db0a8aa99db6e03dbe86bb621b7f6216b2f541 [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" : [
7 ["tmp", 4, false],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07008 ["tmp_0", 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],
11 ["spgw_ingress_tmp_1", 1, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080012 ["spgw_ingress_tmp_2", 1, false],
Carmelo Cascone8a715f82018-08-20 23:16:27 -070013 ["filtering_tmp_0", 1, false],
Carmelo Casconea5400af2018-07-17 22:11:54 +020014 ["next_tmp_2", 1, false],
15 ["next_tmp_3", 1, false],
16 ["next_tmp_4", 1, false],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -070017 ["spgw_normalizer_hasReturned_0", 1, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080018 ["spgw_ingress_hasReturned_0", 1, false],
Carmelo Casconea5400af2018-07-17 22:11:54 +020019 ["next_hasReturned_0", 1, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080020 ["fabric_metadata_t.fwd_type", 3, false],
21 ["fabric_metadata_t.next_id", 32, false],
Yi Tseng20f9e7b2018-05-24 23:27:39 +080022 ["fabric_metadata_t.pop_vlan_when_packet_in", 1, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020023 ["fabric_metadata_t.is_multicast", 1, false],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -070024 ["fabric_metadata_t.is_controller_packet_out", 1, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020025 ["fabric_metadata_t.clone_to_cpu", 1, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080026 ["fabric_metadata_t.ip_proto", 8, false],
27 ["fabric_metadata_t.l4_src_port", 16, false],
28 ["fabric_metadata_t.l4_dst_port", 16, false],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -070029 ["_padding_1", 4, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080030 ]
31 },
32 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020033 "name" : "standard_metadata",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080034 "id" : 1,
35 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020036 ["ingress_port", 9, false],
37 ["egress_spec", 9, false],
38 ["egress_port", 9, false],
39 ["clone_spec", 32, false],
40 ["instance_type", 32, false],
41 ["drop", 1, false],
42 ["recirculate_port", 16, false],
43 ["packet_length", 32, false],
44 ["enq_timestamp", 32, false],
45 ["enq_qdepth", 19, false],
46 ["deq_timedelta", 32, false],
47 ["deq_qdepth", 19, false],
48 ["ingress_global_timestamp", 48, false],
49 ["egress_global_timestamp", 48, false],
50 ["lf_field_list", 32, false],
51 ["mcast_grp", 16, false],
52 ["resubmit_flag", 32, false],
53 ["egress_rid", 16, false],
54 ["checksum_error", 1, false],
55 ["recirculate_flag", 32, false],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -070056 ["parser_error", 32, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020057 ["_padding", 5, false]
58 ]
59 },
60 {
61 "name" : "ethernet_t",
62 "id" : 2,
63 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080064 ["dst_addr", 48, false],
65 ["src_addr", 48, false],
66 ["ether_type", 16, false]
67 ]
68 },
69 {
70 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020071 "id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080072 "fields" : [
73 ["pri", 3, false],
74 ["cfi", 1, false],
75 ["vlan_id", 12, false],
76 ["ether_type", 16, false]
77 ]
78 },
79 {
80 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020081 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080082 "fields" : [
83 ["label", 20, false],
84 ["tc", 3, false],
85 ["bos", 1, false],
86 ["ttl", 8, false]
87 ]
88 },
89 {
90 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020091 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080092 "fields" : [
93 ["version", 4, false],
94 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +090095 ["dscp", 6, false],
96 ["ecn", 2, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080097 ["total_len", 16, false],
98 ["identification", 16, false],
99 ["flags", 3, false],
100 ["frag_offset", 13, false],
101 ["ttl", 8, false],
102 ["protocol", 8, false],
103 ["hdr_checksum", 16, false],
104 ["src_addr", 32, false],
105 ["dst_addr", 32, false]
106 ]
107 },
108 {
109 "name" : "udp_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200110 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800111 "fields" : [
112 ["src_port", 16, false],
113 ["dst_port", 16, false],
114 ["len", 16, false],
115 ["checksum", 16, false]
116 ]
117 },
118 {
119 "name" : "gtpu_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200120 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800121 "fields" : [
122 ["version", 3, false],
123 ["pt", 1, false],
124 ["spare", 1, false],
125 ["ex_flag", 1, false],
126 ["seq_flag", 1, false],
127 ["npdu_flag", 1, false],
128 ["msgtype", 8, false],
129 ["msglen", 16, false],
130 ["teid", 32, false]
131 ]
132 },
133 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800134 "name" : "arp_t",
135 "id" : 8,
136 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800137 ["hw_type", 16, false],
138 ["proto_type", 16, false],
139 ["hw_addr_len", 8, false],
140 ["proto_addr_len", 8, false],
141 ["opcode", 16, false]
142 ]
143 },
144 {
145 "name" : "tcp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800146 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800147 "fields" : [
148 ["src_port", 16, false],
149 ["dst_port", 16, false],
150 ["seq_no", 32, false],
151 ["ack_no", 32, false],
152 ["data_offset", 4, false],
153 ["res", 3, false],
154 ["ecn", 3, false],
155 ["ctrl", 6, false],
156 ["window", 16, false],
157 ["checksum", 16, false],
158 ["urgent_ptr", 16, false]
159 ]
160 },
161 {
162 "name" : "icmp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800163 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800164 "fields" : [
165 ["icmp_type", 8, false],
166 ["icmp_code", 8, false],
167 ["checksum", 16, false],
168 ["identifier", 16, false],
169 ["sequence_number", 16, false],
170 ["timestamp", 64, false]
171 ]
172 },
173 {
174 "name" : "packet_out_header_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800175 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800176 "fields" : [
177 ["egress_port", 9, false],
178 ["_pad", 7, false]
179 ]
180 },
181 {
182 "name" : "packet_in_header_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800183 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800184 "fields" : [
185 ["ingress_port", 9, false],
186 ["_pad", 7, false]
187 ]
188 },
189 {
190 "name" : "spgw_meta_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800191 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800192 "fields" : [
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700193 ["direction", 2, false],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800194 ["ipv4_len", 16, false],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800195 ["teid", 32, false],
196 ["s1u_enb_addr", 32, false],
197 ["s1u_sgw_addr", 32, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200198 ["_padding_0", 6, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800199 ]
200 }
201 ],
202 "headers" : [
203 {
204 "name" : "scalars",
205 "id" : 0,
206 "header_type" : "scalars_0",
207 "metadata" : true,
208 "pi_omit" : true
209 },
210 {
211 "name" : "standard_metadata",
212 "id" : 1,
213 "header_type" : "standard_metadata",
214 "metadata" : true,
215 "pi_omit" : true
216 },
217 {
218 "name" : "ethernet",
219 "id" : 2,
220 "header_type" : "ethernet_t",
221 "metadata" : false,
222 "pi_omit" : true
223 },
224 {
225 "name" : "vlan_tag",
226 "id" : 3,
227 "header_type" : "vlan_tag_t",
228 "metadata" : false,
229 "pi_omit" : true
230 },
231 {
232 "name" : "mpls",
233 "id" : 4,
234 "header_type" : "mpls_t",
235 "metadata" : false,
236 "pi_omit" : true
237 },
238 {
239 "name" : "gtpu_ipv4",
240 "id" : 5,
241 "header_type" : "ipv4_t",
242 "metadata" : false,
243 "pi_omit" : true
244 },
245 {
246 "name" : "gtpu_udp",
247 "id" : 6,
248 "header_type" : "udp_t",
249 "metadata" : false,
250 "pi_omit" : true
251 },
252 {
253 "name" : "gtpu",
254 "id" : 7,
255 "header_type" : "gtpu_t",
256 "metadata" : false,
257 "pi_omit" : true
258 },
259 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700260 "name" : "inner_ipv4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800261 "id" : 8,
262 "header_type" : "ipv4_t",
263 "metadata" : false,
264 "pi_omit" : true
265 },
266 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700267 "name" : "inner_udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200268 "id" : 9,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700269 "header_type" : "udp_t",
270 "metadata" : false,
271 "pi_omit" : true
272 },
273 {
274 "name" : "ipv4",
275 "id" : 10,
276 "header_type" : "ipv4_t",
277 "metadata" : false,
278 "pi_omit" : true
279 },
280 {
281 "name" : "arp",
282 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800283 "header_type" : "arp_t",
284 "metadata" : false,
285 "pi_omit" : true
286 },
287 {
288 "name" : "tcp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700289 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800290 "header_type" : "tcp_t",
291 "metadata" : false,
292 "pi_omit" : true
293 },
294 {
295 "name" : "udp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700296 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800297 "header_type" : "udp_t",
298 "metadata" : false,
299 "pi_omit" : true
300 },
301 {
302 "name" : "icmp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700303 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800304 "header_type" : "icmp_t",
305 "metadata" : false,
306 "pi_omit" : true
307 },
308 {
309 "name" : "packet_out",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700310 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800311 "header_type" : "packet_out_header_t",
312 "metadata" : false,
313 "pi_omit" : true
314 },
315 {
316 "name" : "packet_in",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700317 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800318 "header_type" : "packet_in_header_t",
319 "metadata" : false,
320 "pi_omit" : true
321 },
322 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800323 "name" : "userMetadata.spgw",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700324 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800325 "header_type" : "spgw_meta_t",
326 "metadata" : true,
327 "pi_omit" : true
328 }
329 ],
330 "header_stacks" : [],
331 "header_union_types" : [],
332 "header_unions" : [],
333 "header_union_stacks" : [],
334 "field_lists" : [],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700335 "errors" : [
336 ["NoError", 1],
337 ["PacketTooShort", 2],
338 ["NoMatch", 3],
339 ["StackOutOfBounds", 4],
340 ["HeaderTooShort", 5],
341 ["ParserTimeout", 6]
342 ],
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 Casconeb81f4be2018-01-16 23:24:01 -0800409 }
410 ],
411 "transitions" : [
412 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800413 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800414 "value" : "0x8100",
415 "mask" : null,
416 "next_state" : "parse_vlan_tag"
417 },
418 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800419 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800420 "value" : "0x8847",
421 "mask" : null,
422 "next_state" : "parse_mpls"
423 },
424 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800425 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800426 "value" : "0x0806",
427 "mask" : null,
428 "next_state" : "parse_arp"
429 },
430 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800431 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800432 "value" : "0x0800",
433 "mask" : null,
434 "next_state" : "parse_ipv4"
435 },
436 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800437 "value" : "default",
438 "mask" : null,
439 "next_state" : null
440 }
441 ],
442 "transition_key" : [
443 {
444 "type" : "field",
445 "value" : ["ethernet", "ether_type"]
446 }
447 ]
448 },
449 {
450 "name" : "parse_vlan_tag",
451 "id" : 3,
452 "parser_ops" : [
453 {
454 "parameters" : [
455 {
456 "type" : "regular",
457 "value" : "vlan_tag"
458 }
459 ],
460 "op" : "extract"
461 }
462 ],
463 "transitions" : [
464 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800465 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800466 "value" : "0x0806",
467 "mask" : null,
468 "next_state" : "parse_arp"
469 },
470 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800471 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800472 "value" : "0x0800",
473 "mask" : null,
474 "next_state" : "parse_ipv4"
475 },
476 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800477 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800478 "value" : "0x8847",
479 "mask" : null,
480 "next_state" : "parse_mpls"
481 },
482 {
483 "value" : "default",
484 "mask" : null,
485 "next_state" : null
486 }
487 ],
488 "transition_key" : [
489 {
490 "type" : "field",
491 "value" : ["vlan_tag", "ether_type"]
492 }
493 ]
494 },
495 {
496 "name" : "parse_mpls",
497 "id" : 4,
498 "parser_ops" : [
499 {
500 "parameters" : [
501 {
502 "type" : "regular",
503 "value" : "mpls"
504 }
505 ],
506 "op" : "extract"
507 },
508 {
509 "parameters" : [
510 {
511 "type" : "field",
512 "value" : ["scalars", "tmp"]
513 },
514 {
515 "type" : "lookahead",
516 "value" : [0, 4]
517 }
518 ],
519 "op" : "set"
520 }
521 ],
522 "transitions" : [
523 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800524 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800525 "value" : "0x04",
526 "mask" : null,
527 "next_state" : "parse_ipv4"
528 },
529 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800530 "value" : "default",
531 "mask" : null,
532 "next_state" : "parse_ethernet"
533 }
534 ],
535 "transition_key" : [
536 {
537 "type" : "field",
538 "value" : ["scalars", "tmp"]
539 }
540 ]
541 },
542 {
543 "name" : "parse_ipv4",
544 "id" : 5,
545 "parser_ops" : [
546 {
547 "parameters" : [
548 {
549 "type" : "regular",
550 "value" : "ipv4"
551 }
552 ],
553 "op" : "extract"
554 },
555 {
556 "parameters" : [
557 {
558 "type" : "field",
559 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
560 },
561 {
562 "type" : "field",
563 "value" : ["ipv4", "protocol"]
564 }
565 ],
566 "op" : "set"
567 }
568 ],
569 "transitions" : [
570 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800571 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800572 "value" : "0x06",
573 "mask" : null,
574 "next_state" : "parse_tcp"
575 },
576 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800577 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800578 "value" : "0x11",
579 "mask" : null,
580 "next_state" : "parse_udp"
581 },
582 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800583 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800584 "value" : "0x01",
585 "mask" : null,
586 "next_state" : "parse_icmp"
587 },
588 {
589 "value" : "default",
590 "mask" : null,
591 "next_state" : null
592 }
593 ],
594 "transition_key" : [
595 {
596 "type" : "field",
597 "value" : ["ipv4", "protocol"]
598 }
599 ]
600 },
601 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800602 "name" : "parse_arp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200603 "id" : 6,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800604 "parser_ops" : [
605 {
606 "parameters" : [
607 {
608 "type" : "regular",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800609 "value" : "arp"
610 }
611 ],
612 "op" : "extract"
613 }
614 ],
615 "transitions" : [
616 {
617 "value" : "default",
618 "mask" : null,
619 "next_state" : null
620 }
621 ],
622 "transition_key" : []
623 },
624 {
625 "name" : "parse_tcp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200626 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800627 "parser_ops" : [
628 {
629 "parameters" : [
630 {
631 "type" : "regular",
632 "value" : "tcp"
633 }
634 ],
635 "op" : "extract"
636 },
637 {
638 "parameters" : [
639 {
640 "type" : "field",
641 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
642 },
643 {
644 "type" : "field",
645 "value" : ["tcp", "src_port"]
646 }
647 ],
648 "op" : "set"
649 },
650 {
651 "parameters" : [
652 {
653 "type" : "field",
654 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
655 },
656 {
657 "type" : "field",
658 "value" : ["tcp", "dst_port"]
659 }
660 ],
661 "op" : "set"
662 }
663 ],
664 "transitions" : [
665 {
666 "value" : "default",
667 "mask" : null,
668 "next_state" : null
669 }
670 ],
671 "transition_key" : []
672 },
673 {
674 "name" : "parse_udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200675 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800676 "parser_ops" : [
677 {
678 "parameters" : [
679 {
680 "type" : "regular",
681 "value" : "udp"
682 }
683 ],
684 "op" : "extract"
685 },
686 {
687 "parameters" : [
688 {
689 "type" : "field",
690 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
691 },
692 {
693 "type" : "field",
694 "value" : ["udp", "src_port"]
695 }
696 ],
697 "op" : "set"
698 },
699 {
700 "parameters" : [
701 {
702 "type" : "field",
703 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
704 },
705 {
706 "type" : "field",
707 "value" : ["udp", "dst_port"]
708 }
709 ],
710 "op" : "set"
711 }
712 ],
713 "transitions" : [
714 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800715 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800716 "value" : "0x0868",
717 "mask" : null,
718 "next_state" : "parse_gtpu"
719 },
720 {
721 "value" : "default",
722 "mask" : null,
723 "next_state" : null
724 }
725 ],
726 "transition_key" : [
727 {
728 "type" : "field",
729 "value" : ["udp", "dst_port"]
730 }
731 ]
732 },
733 {
734 "name" : "parse_icmp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200735 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800736 "parser_ops" : [
737 {
738 "parameters" : [
739 {
740 "type" : "regular",
741 "value" : "icmp"
742 }
743 ],
744 "op" : "extract"
745 }
746 ],
747 "transitions" : [
748 {
749 "value" : "default",
750 "mask" : null,
751 "next_state" : null
752 }
753 ],
754 "transition_key" : []
755 },
756 {
757 "name" : "parse_gtpu",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200758 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800759 "parser_ops" : [
760 {
761 "parameters" : [
762 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700763 "type" : "field",
764 "value" : ["scalars", "tmp_0"]
765 },
766 {
767 "type" : "expression",
768 "value" : {
769 "type" : "expression",
770 "value" : {
771 "op" : "&",
772 "left" : {
773 "type" : "expression",
774 "value" : {
775 "op" : "&",
776 "left" : {
777 "type" : "expression",
778 "value" : {
779 "op" : ">>",
780 "left" : {
781 "type" : "field",
782 "value" : ["ipv4", "dst_addr"]
783 },
784 "right" : {
785 "type" : "hexstr",
786 "value" : "0x18"
787 }
788 }
789 },
790 "right" : {
791 "type" : "hexstr",
792 "value" : "0xffffffff"
793 }
794 }
795 },
796 "right" : {
797 "type" : "hexstr",
798 "value" : "0xff"
799 }
800 }
801 }
802 }
803 ],
804 "op" : "set"
805 }
806 ],
807 "transitions" : [
808 {
809 "type" : "hexstr",
810 "value" : "0x8c",
811 "mask" : null,
812 "next_state" : "do_parse_gtpu"
813 },
814 {
815 "value" : "default",
816 "mask" : null,
817 "next_state" : null
818 }
819 ],
820 "transition_key" : [
821 {
822 "type" : "field",
823 "value" : ["scalars", "tmp_0"]
824 }
825 ]
826 },
827 {
828 "name" : "do_parse_gtpu",
829 "id" : 11,
830 "parser_ops" : [
831 {
832 "parameters" : [
833 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800834 "type" : "regular",
835 "value" : "gtpu"
836 }
837 ],
838 "op" : "extract"
839 },
840 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800841 "parameters" : [
842 {
843 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700844 "value" : "inner_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800845 }
846 ],
847 "op" : "extract"
848 }
849 ],
850 "transitions" : [
851 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800852 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800853 "value" : "0x06",
854 "mask" : null,
855 "next_state" : "parse_tcp"
856 },
857 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800858 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800859 "value" : "0x11",
860 "mask" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700861 "next_state" : "parse_inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800862 },
863 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800864 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800865 "value" : "0x01",
866 "mask" : null,
867 "next_state" : "parse_icmp"
868 },
869 {
870 "value" : "default",
871 "mask" : null,
872 "next_state" : null
873 }
874 ],
875 "transition_key" : [
876 {
877 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700878 "value" : ["inner_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800879 }
880 ]
881 },
882 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700883 "name" : "parse_inner_udp",
884 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800885 "parser_ops" : [
886 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800887 "parameters" : [
888 {
889 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700890 "value" : "inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800891 }
892 ],
893 "op" : "extract"
894 },
895 {
896 "parameters" : [
897 {
898 "type" : "field",
899 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
900 },
901 {
902 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700903 "value" : ["inner_udp", "src_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800904 }
905 ],
906 "op" : "set"
907 },
908 {
909 "parameters" : [
910 {
911 "type" : "field",
912 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
913 },
914 {
915 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700916 "value" : ["inner_udp", "dst_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800917 }
918 ],
919 "op" : "set"
920 }
921 ],
922 "transitions" : [
923 {
924 "value" : "default",
925 "mask" : null,
926 "next_state" : null
927 }
928 ],
929 "transition_key" : []
930 }
931 ]
932 }
933 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800934 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800935 "deparsers" : [
936 {
937 "name" : "deparser",
938 "id" : 0,
939 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200940 "filename" : "include/parser.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700941 "line" : 228,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800942 "column" : 8,
943 "source_fragment" : "FabricDeparser"
944 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200945 "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "tcp", "udp", "icmp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800946 }
947 ],
948 "meter_arrays" : [],
949 "counter_arrays" : [
950 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800951 "name" : "FabricIngress.spgw_ingress.ue_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800952 "id" : 0,
953 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700954 "binding" : "FabricIngress.spgw_ingress.dl_sess_lookup",
955 "source_info" : {
956 "filename" : "include/spgw.p4",
957 "line" : 51,
958 "column" : 50,
959 "source_fragment" : "ue_counter"
960 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800961 },
962 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800963 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800964 "id" : 1,
965 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700966 "binding" : "FabricIngress.filtering.ingress_port_vlan",
967 "source_info" : {
968 "filename" : "include/control/filtering.p4",
969 "line" : 34,
970 "column" : 50,
971 "source_fragment" : "ingress_port_vlan_counter"
972 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800973 },
974 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800975 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800976 "id" : 2,
977 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700978 "binding" : "FabricIngress.filtering.fwd_classifier",
979 "source_info" : {
980 "filename" : "include/control/filtering.p4",
981 "line" : 96,
982 "column" : 50,
983 "source_fragment" : "fwd_classifier_counter"
984 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800985 },
986 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800987 "name" : "FabricIngress.forwarding.bridging_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800988 "id" : 3,
989 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700990 "binding" : "FabricIngress.forwarding.bridging",
991 "source_info" : {
992 "filename" : "include/control/forwarding.p4",
993 "line" : 34,
994 "column" : 50,
995 "source_fragment" : "bridging_counter"
996 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800997 },
998 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800999 "name" : "FabricIngress.forwarding.mpls_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001000 "id" : 4,
1001 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001002 "binding" : "FabricIngress.forwarding.mpls",
1003 "source_info" : {
1004 "filename" : "include/control/forwarding.p4",
1005 "line" : 57,
1006 "column" : 50,
1007 "source_fragment" : "mpls_counter"
1008 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001009 },
1010 {
Charles Chan384aea22018-08-23 22:08:02 -07001011 "name" : "FabricIngress.forwarding.routing_v4_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001012 "id" : 5,
1013 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001014 "binding" : "FabricIngress.forwarding.routing_v4",
1015 "source_info" : {
1016 "filename" : "include/control/forwarding.p4",
1017 "line" : 80,
1018 "column" : 50,
1019 "source_fragment" : "routing_v4_counter"
1020 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001021 },
1022 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001023 "name" : "FabricIngress.forwarding.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001024 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001025 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001026 "binding" : "FabricIngress.forwarding.acl",
1027 "source_info" : {
1028 "filename" : "include/control/forwarding.p4",
1029 "line" : 107,
1030 "column" : 50,
1031 "source_fragment" : "acl_counter"
1032 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001033 },
1034 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001035 "name" : "FabricIngress.next.vlan_meta_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001036 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001037 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001038 "binding" : "FabricIngress.next.vlan_meta",
1039 "source_info" : {
1040 "filename" : "include/control/next.p4",
1041 "line" : 58,
1042 "column" : 50,
1043 "source_fragment" : "vlan_meta_counter"
1044 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001045 },
1046 {
1047 "name" : "FabricIngress.next.simple_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001048 "id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001049 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001050 "binding" : "FabricIngress.next.simple",
1051 "source_info" : {
1052 "filename" : "include/control/next.p4",
1053 "line" : 82,
1054 "column" : 50,
1055 "source_fragment" : "simple_counter"
1056 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001057 },
1058 {
1059 "name" : "FabricIngress.next.hashed_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001060 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001061 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001062 "binding" : "FabricIngress.next.hashed",
1063 "source_info" : {
1064 "filename" : "include/control/next.p4",
1065 "line" : 146,
1066 "column" : 50,
1067 "source_fragment" : "hashed_counter"
1068 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001069 },
1070 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001071 "name" : "FabricIngress.next.multicast_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001072 "id" : 10,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001073 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001074 "binding" : "FabricIngress.next.multicast",
1075 "source_info" : {
1076 "filename" : "include/control/next.p4",
1077 "line" : 199,
1078 "column" : 50,
1079 "source_fragment" : "multicast_counter"
1080 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00001081 },
1082 {
1083 "name" : "FabricIngress.port_counters_control.egress_port_counter",
1084 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001085 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001086 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001087 "line" : 23,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001088 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001089 "source_fragment" : "egress_port_counter"
1090 },
1091 "size" : 511,
1092 "is_direct" : false
1093 },
1094 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001095 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001096 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001097 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001098 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001099 "line" : 24,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001100 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001101 "source_fragment" : "ingress_port_counter"
1102 },
1103 "size" : 511,
1104 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08001105 },
1106 {
1107 "name" : "FabricEgress.egress_next.egress_vlan_counter",
1108 "id" : 13,
1109 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001110 "binding" : "FabricEgress.egress_next.egress_vlan",
1111 "source_info" : {
1112 "filename" : "include/control/next.p4",
1113 "line" : 250,
1114 "column" : 50,
1115 "source_fragment" : "egress_vlan_counter"
1116 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001117 }
1118 ],
1119 "register_arrays" : [],
1120 "calculations" : [
1121 {
1122 "name" : "calc",
1123 "id" : 0,
1124 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001125 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001126 "line" : 28,
1127 "column" : 8,
1128 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1129 },
1130 "algo" : "csum16",
1131 "input" : [
1132 {
1133 "type" : "field",
1134 "value" : ["ipv4", "version"]
1135 },
1136 {
1137 "type" : "field",
1138 "value" : ["ipv4", "ihl"]
1139 },
1140 {
1141 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001142 "value" : ["ipv4", "dscp"]
1143 },
1144 {
1145 "type" : "field",
1146 "value" : ["ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001147 },
1148 {
1149 "type" : "field",
1150 "value" : ["ipv4", "total_len"]
1151 },
1152 {
1153 "type" : "field",
1154 "value" : ["ipv4", "identification"]
1155 },
1156 {
1157 "type" : "field",
1158 "value" : ["ipv4", "flags"]
1159 },
1160 {
1161 "type" : "field",
1162 "value" : ["ipv4", "frag_offset"]
1163 },
1164 {
1165 "type" : "field",
1166 "value" : ["ipv4", "ttl"]
1167 },
1168 {
1169 "type" : "field",
1170 "value" : ["ipv4", "protocol"]
1171 },
1172 {
1173 "type" : "field",
1174 "value" : ["ipv4", "src_addr"]
1175 },
1176 {
1177 "type" : "field",
1178 "value" : ["ipv4", "dst_addr"]
1179 }
1180 ]
1181 },
1182 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001183 "name" : "calc_0",
1184 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001185 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001186 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07001187 "line" : 237,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001188 "column" : 8,
1189 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1190 },
1191 "algo" : "csum16",
1192 "input" : [
1193 {
1194 "type" : "field",
1195 "value" : ["gtpu_ipv4", "version"]
1196 },
1197 {
1198 "type" : "field",
1199 "value" : ["gtpu_ipv4", "ihl"]
1200 },
1201 {
1202 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001203 "value" : ["gtpu_ipv4", "dscp"]
1204 },
1205 {
1206 "type" : "field",
1207 "value" : ["gtpu_ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001208 },
1209 {
1210 "type" : "field",
1211 "value" : ["gtpu_ipv4", "total_len"]
1212 },
1213 {
1214 "type" : "field",
1215 "value" : ["gtpu_ipv4", "identification"]
1216 },
1217 {
1218 "type" : "field",
1219 "value" : ["gtpu_ipv4", "flags"]
1220 },
1221 {
1222 "type" : "field",
1223 "value" : ["gtpu_ipv4", "frag_offset"]
1224 },
1225 {
1226 "type" : "field",
1227 "value" : ["gtpu_ipv4", "ttl"]
1228 },
1229 {
1230 "type" : "field",
1231 "value" : ["gtpu_ipv4", "protocol"]
1232 },
1233 {
1234 "type" : "field",
1235 "value" : ["gtpu_ipv4", "src_addr"]
1236 },
1237 {
1238 "type" : "field",
1239 "value" : ["gtpu_ipv4", "dst_addr"]
1240 }
1241 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001242 },
1243 {
1244 "name" : "calc_1",
1245 "id" : 2,
1246 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001247 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001248 "line" : 57,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001249 "column" : 8,
1250 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1251 },
1252 "algo" : "csum16",
1253 "input" : [
1254 {
1255 "type" : "field",
1256 "value" : ["ipv4", "version"]
1257 },
1258 {
1259 "type" : "field",
1260 "value" : ["ipv4", "ihl"]
1261 },
1262 {
1263 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001264 "value" : ["ipv4", "dscp"]
1265 },
1266 {
1267 "type" : "field",
1268 "value" : ["ipv4", "ecn"]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001269 },
1270 {
1271 "type" : "field",
1272 "value" : ["ipv4", "total_len"]
1273 },
1274 {
1275 "type" : "field",
1276 "value" : ["ipv4", "identification"]
1277 },
1278 {
1279 "type" : "field",
1280 "value" : ["ipv4", "flags"]
1281 },
1282 {
1283 "type" : "field",
1284 "value" : ["ipv4", "frag_offset"]
1285 },
1286 {
1287 "type" : "field",
1288 "value" : ["ipv4", "ttl"]
1289 },
1290 {
1291 "type" : "field",
1292 "value" : ["ipv4", "protocol"]
1293 },
1294 {
1295 "type" : "field",
1296 "value" : ["ipv4", "src_addr"]
1297 },
1298 {
1299 "type" : "field",
1300 "value" : ["ipv4", "dst_addr"]
1301 }
1302 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001303 }
1304 ],
1305 "learn_lists" : [],
1306 "actions" : [
1307 {
1308 "name" : "NoAction",
1309 "id" : 0,
1310 "runtime_data" : [],
1311 "primitives" : []
1312 },
1313 {
1314 "name" : "NoAction",
1315 "id" : 1,
1316 "runtime_data" : [],
1317 "primitives" : []
1318 },
1319 {
1320 "name" : "NoAction",
1321 "id" : 2,
1322 "runtime_data" : [],
1323 "primitives" : []
1324 },
1325 {
1326 "name" : "NoAction",
1327 "id" : 3,
1328 "runtime_data" : [],
1329 "primitives" : []
1330 },
1331 {
1332 "name" : "NoAction",
1333 "id" : 4,
1334 "runtime_data" : [],
1335 "primitives" : []
1336 },
1337 {
1338 "name" : "NoAction",
1339 "id" : 5,
1340 "runtime_data" : [],
1341 "primitives" : []
1342 },
1343 {
1344 "name" : "NoAction",
1345 "id" : 6,
1346 "runtime_data" : [],
1347 "primitives" : []
1348 },
1349 {
1350 "name" : "NoAction",
1351 "id" : 7,
1352 "runtime_data" : [],
1353 "primitives" : []
1354 },
1355 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001356 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001357 "id" : 8,
1358 "runtime_data" : [],
1359 "primitives" : []
1360 },
1361 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001362 "name" : "drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001363 "id" : 9,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001364 "runtime_data" : [],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001365 "primitives" : [
1366 {
1367 "op" : "drop",
1368 "parameters" : [],
1369 "source_info" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001370 "filename" : "include/control/../action.p4",
1371 "line" : 24,
1372 "column" : 4,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001373 "source_fragment" : "mark_to_drop()"
1374 }
1375 },
1376 {
1377 "op" : "exit",
1378 "parameters" : [],
1379 "source_info" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001380 "filename" : "include/control/../action.p4",
1381 "line" : 25,
1382 "column" : 4,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001383 "source_fragment" : "exit"
1384 }
1385 }
1386 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001387 },
1388 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001389 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001390 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001391 "runtime_data" : [],
1392 "primitives" : [
1393 {
1394 "op" : "remove_header",
1395 "parameters" : [
1396 {
1397 "type" : "header",
1398 "value" : "gtpu_ipv4"
1399 }
1400 ],
1401 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001402 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001403 "line" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001404 "column" : 8,
1405 "source_fragment" : "gtpu_ipv4.setInvalid()"
1406 }
1407 },
1408 {
1409 "op" : "remove_header",
1410 "parameters" : [
1411 {
1412 "type" : "header",
1413 "value" : "gtpu_udp"
1414 }
1415 ],
1416 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001417 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001418 "line" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001419 "column" : 8,
1420 "source_fragment" : "gtpu_udp.setInvalid()"
1421 }
1422 },
1423 {
1424 "op" : "remove_header",
1425 "parameters" : [
1426 {
1427 "type" : "header",
1428 "value" : "gtpu"
1429 }
1430 ],
1431 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001432 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001433 "line" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001434 "column" : 8,
1435 "source_fragment" : "gtpu.setInvalid()"
1436 }
1437 }
1438 ]
1439 },
1440 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001441 "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001442 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001443 "runtime_data" : [
1444 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001445 "name" : "teid",
1446 "bitwidth" : 32
1447 },
1448 {
1449 "name" : "s1u_enb_addr",
1450 "bitwidth" : 32
1451 },
1452 {
1453 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001454 "bitwidth" : 32
1455 }
1456 ],
1457 "primitives" : [
1458 {
1459 "op" : "assign",
1460 "parameters" : [
1461 {
1462 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001463 "value" : ["userMetadata.spgw", "teid"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001464 },
1465 {
1466 "type" : "runtime_data",
1467 "value" : 0
1468 }
1469 ],
1470 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001471 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001472 "line" : 62,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001473 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001474 "source_fragment" : "spgw_meta.teid = teid"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001475 }
1476 },
1477 {
1478 "op" : "assign",
1479 "parameters" : [
1480 {
1481 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001482 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001483 },
1484 {
1485 "type" : "runtime_data",
1486 "value" : 1
1487 }
1488 ],
1489 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001490 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001491 "line" : 63,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001492 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001493 "source_fragment" : "spgw_meta.s1u_enb_addr = s1u_enb_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001494 }
1495 },
1496 {
1497 "op" : "assign",
1498 "parameters" : [
1499 {
1500 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001501 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001502 },
1503 {
1504 "type" : "runtime_data",
1505 "value" : 2
1506 }
1507 ],
1508 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001509 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001510 "line" : 64,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001511 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001512 "source_fragment" : "spgw_meta.s1u_sgw_addr = s1u_sgw_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001513 }
1514 }
1515 ]
1516 },
1517 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001518 "name" : "FabricIngress.filtering.drop",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001519 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001520 "runtime_data" : [],
1521 "primitives" : [
1522 {
1523 "op" : "drop",
1524 "parameters" : [],
1525 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001526 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001527 "line" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001528 "column" : 8,
1529 "source_fragment" : "mark_to_drop()"
1530 }
1531 }
1532 ]
1533 },
1534 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001535 "name" : "FabricIngress.filtering.set_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001536 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001537 "runtime_data" : [
1538 {
1539 "name" : "new_vlan_id",
1540 "bitwidth" : 12
1541 }
1542 ],
1543 "primitives" : [
1544 {
1545 "op" : "assign",
1546 "parameters" : [
1547 {
1548 "type" : "field",
1549 "value" : ["vlan_tag", "vlan_id"]
1550 },
1551 {
1552 "type" : "runtime_data",
1553 "value" : 0
1554 }
1555 ],
1556 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001557 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001558 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001559 "column" : 8,
1560 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1561 }
1562 }
1563 ]
1564 },
1565 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001566 "name" : "FabricIngress.filtering.push_internal_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001567 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001568 "runtime_data" : [
1569 {
1570 "name" : "new_vlan_id",
1571 "bitwidth" : 12
1572 }
1573 ],
1574 "primitives" : [
1575 {
1576 "op" : "add_header",
1577 "parameters" : [
1578 {
1579 "type" : "header",
1580 "value" : "vlan_tag"
1581 }
1582 ],
1583 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001584 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001585 "line" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001586 "column" : 8,
1587 "source_fragment" : "hdr.vlan_tag.setValid()"
1588 }
1589 },
1590 {
1591 "op" : "assign",
1592 "parameters" : [
1593 {
1594 "type" : "field",
1595 "value" : ["vlan_tag", "cfi"]
1596 },
1597 {
1598 "type" : "hexstr",
1599 "value" : "0x00"
1600 }
1601 ],
1602 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001603 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001604 "line" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001605 "column" : 8,
1606 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1607 }
1608 },
1609 {
1610 "op" : "assign",
1611 "parameters" : [
1612 {
1613 "type" : "field",
1614 "value" : ["vlan_tag", "pri"]
1615 },
1616 {
1617 "type" : "hexstr",
1618 "value" : "0x00"
1619 }
1620 ],
1621 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001622 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001623 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001624 "column" : 8,
1625 "source_fragment" : "hdr.vlan_tag.pri = 0"
1626 }
1627 },
1628 {
1629 "op" : "assign",
1630 "parameters" : [
1631 {
1632 "type" : "field",
1633 "value" : ["vlan_tag", "ether_type"]
1634 },
1635 {
1636 "type" : "field",
1637 "value" : ["ethernet", "ether_type"]
1638 }
1639 ],
1640 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001641 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001642 "line" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001643 "column" : 8,
1644 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1645 }
1646 },
1647 {
1648 "op" : "assign",
1649 "parameters" : [
1650 {
1651 "type" : "field",
1652 "value" : ["ethernet", "ether_type"]
1653 },
1654 {
1655 "type" : "hexstr",
1656 "value" : "0x8100"
1657 }
1658 ],
1659 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001660 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001661 "line" : 99,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001662 "column" : 31,
1663 "source_fragment" : "0x8100; ..."
1664 }
1665 },
1666 {
1667 "op" : "assign",
1668 "parameters" : [
1669 {
1670 "type" : "field",
1671 "value" : ["vlan_tag", "vlan_id"]
1672 },
1673 {
1674 "type" : "runtime_data",
1675 "value" : 0
1676 }
1677 ],
1678 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001679 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001680 "line" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001681 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001682 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001683 }
1684 },
1685 {
1686 "op" : "assign",
1687 "parameters" : [
1688 {
1689 "type" : "field",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001690 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001691 },
1692 {
1693 "type" : "expression",
1694 "value" : {
1695 "type" : "expression",
1696 "value" : {
1697 "op" : "b2d",
1698 "left" : null,
1699 "right" : {
1700 "type" : "bool",
1701 "value" : true
1702 }
1703 }
1704 }
1705 }
1706 ],
1707 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001708 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001709 "line" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001710 "column" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001711 "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001712 }
1713 }
1714 ]
1715 },
1716 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001717 "name" : "FabricIngress.filtering.nop_ingress_port_vlan",
1718 "id" : 15,
1719 "runtime_data" : [],
1720 "primitives" : []
1721 },
1722 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001723 "name" : "FabricIngress.filtering.set_forwarding_type",
Charles Chancf696e52018-08-16 16:25:13 -07001724 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001725 "runtime_data" : [
1726 {
1727 "name" : "fwd_type",
1728 "bitwidth" : 3
1729 }
1730 ],
1731 "primitives" : [
1732 {
1733 "op" : "assign",
1734 "parameters" : [
1735 {
1736 "type" : "field",
1737 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1738 },
1739 {
1740 "type" : "runtime_data",
1741 "value" : 0
1742 }
1743 ],
1744 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001745 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001746 "line" : 99,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001747 "column" : 8,
1748 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1749 }
1750 }
1751 ]
1752 },
1753 {
Yi Tseng47eac892018-07-11 02:17:04 +08001754 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Charles Chancf696e52018-08-16 16:25:13 -07001755 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001756 "runtime_data" : [
1757 {
1758 "name" : "next_id",
1759 "bitwidth" : 32
1760 }
1761 ],
1762 "primitives" : [
1763 {
1764 "op" : "assign",
1765 "parameters" : [
1766 {
1767 "type" : "field",
1768 "value" : ["scalars", "fabric_metadata_t.next_id"]
1769 },
1770 {
1771 "type" : "runtime_data",
1772 "value" : 0
1773 }
1774 ],
1775 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001776 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001777 "line" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001778 "column" : 8,
1779 "source_fragment" : "fabric_metadata.next_id = next_id"
1780 }
1781 }
1782 ]
1783 },
1784 {
Yi Tseng47eac892018-07-11 02:17:04 +08001785 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Charles Chancf696e52018-08-16 16:25:13 -07001786 "id" : 18,
Yi Tseng47eac892018-07-11 02:17:04 +08001787 "runtime_data" : [
1788 {
1789 "name" : "next_id",
1790 "bitwidth" : 32
1791 }
1792 ],
1793 "primitives" : [
1794 {
1795 "op" : "remove_header",
1796 "parameters" : [
1797 {
1798 "type" : "header",
1799 "value" : "mpls"
1800 }
1801 ],
1802 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001803 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001804 "line" : 60,
1805 "column" : 8,
1806 "source_fragment" : "hdr.mpls.setInvalid()"
1807 }
1808 },
1809 {
1810 "op" : "assign",
1811 "parameters" : [
1812 {
1813 "type" : "field",
1814 "value" : ["scalars", "fabric_metadata_t.next_id"]
1815 },
1816 {
1817 "type" : "runtime_data",
1818 "value" : 0
1819 }
1820 ],
1821 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001822 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001823 "line" : 61,
1824 "column" : 8,
1825 "source_fragment" : "fabric_metadata.next_id = next_id"
1826 }
1827 }
1828 ]
1829 },
1830 {
Charles Chan384aea22018-08-23 22:08:02 -07001831 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001832 "id" : 19,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001833 "runtime_data" : [
1834 {
1835 "name" : "next_id",
1836 "bitwidth" : 32
1837 }
1838 ],
1839 "primitives" : [
1840 {
1841 "op" : "assign",
1842 "parameters" : [
1843 {
1844 "type" : "field",
1845 "value" : ["scalars", "fabric_metadata_t.next_id"]
1846 },
1847 {
1848 "type" : "runtime_data",
1849 "value" : 0
1850 }
1851 ],
1852 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001853 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001854 "line" : 83,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001855 "column" : 8,
1856 "source_fragment" : "fabric_metadata.next_id = next_id"
1857 }
1858 }
1859 ]
1860 },
1861 {
Charles Chancd03f072018-08-31 17:46:37 -07001862 "name" : "FabricIngress.forwarding.nop_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001863 "id" : 20,
Charles Chancd03f072018-08-31 17:46:37 -07001864 "runtime_data" : [],
1865 "primitives" : []
1866 },
1867 {
1868 "name" : "FabricIngress.forwarding.set_next_id_acl",
1869 "id" : 21,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001870 "runtime_data" : [
1871 {
1872 "name" : "next_id",
1873 "bitwidth" : 32
1874 }
1875 ],
1876 "primitives" : [
1877 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001878 "op" : "assign",
1879 "parameters" : [
1880 {
1881 "type" : "field",
1882 "value" : ["scalars", "fabric_metadata_t.next_id"]
1883 },
1884 {
1885 "type" : "runtime_data",
1886 "value" : 0
1887 }
1888 ],
1889 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001890 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001891 "line" : 110,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001892 "column" : 8,
1893 "source_fragment" : "fabric_metadata.next_id = next_id"
1894 }
1895 }
1896 ]
1897 },
1898 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001899 "name" : "FabricIngress.forwarding.punt_to_cpu",
Charles Chancd03f072018-08-31 17:46:37 -07001900 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001901 "runtime_data" : [],
1902 "primitives" : [
1903 {
1904 "op" : "assign",
1905 "parameters" : [
1906 {
1907 "type" : "field",
1908 "value" : ["standard_metadata", "egress_spec"]
1909 },
1910 {
1911 "type" : "hexstr",
1912 "value" : "0x00ff"
1913 }
1914 ],
1915 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001916 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001917 "line" : 116,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001918 "column" : 8,
1919 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001920 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001921 },
1922 {
1923 "op" : "exit",
1924 "parameters" : [],
1925 "source_info" : {
1926 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001927 "line" : 118,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001928 "column" : 8,
1929 "source_fragment" : "exit"
1930 }
1931 }
1932 ]
1933 },
1934 {
1935 "name" : "FabricIngress.forwarding.clone_to_cpu",
Charles Chancd03f072018-08-31 17:46:37 -07001936 "id" : 23,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001937 "runtime_data" : [],
1938 "primitives" : [
1939 {
1940 "op" : "assign",
1941 "parameters" : [
1942 {
1943 "type" : "field",
1944 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
1945 },
1946 {
1947 "type" : "expression",
1948 "value" : {
1949 "type" : "expression",
1950 "value" : {
1951 "op" : "b2d",
1952 "left" : null,
1953 "right" : {
1954 "type" : "bool",
1955 "value" : true
1956 }
1957 }
1958 }
1959 }
1960 ],
1961 "source_info" : {
1962 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001963 "line" : 123,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001964 "column" : 8,
1965 "source_fragment" : "fabric_metadata.clone_to_cpu = true"
1966 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001967 }
1968 ]
1969 },
1970 {
Yi Tseng47eac892018-07-11 02:17:04 +08001971 "name" : "FabricIngress.forwarding.drop",
Charles Chancd03f072018-08-31 17:46:37 -07001972 "id" : 24,
Yi Tseng47eac892018-07-11 02:17:04 +08001973 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001974 "primitives" : [
1975 {
Yi Tseng47eac892018-07-11 02:17:04 +08001976 "op" : "drop",
1977 "parameters" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001978 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001979 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001980 "line" : 128,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001981 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001982 "source_fragment" : "mark_to_drop()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001983 }
1984 }
1985 ]
1986 },
1987 {
Charles Chancf696e52018-08-16 16:25:13 -07001988 "name" : "FabricIngress.forwarding.nop_acl",
Charles Chancd03f072018-08-31 17:46:37 -07001989 "id" : 25,
Charles Chancf696e52018-08-16 16:25:13 -07001990 "runtime_data" : [],
1991 "primitives" : []
1992 },
1993 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001994 "name" : "FabricIngress.next.set_vlan",
Charles Chancd03f072018-08-31 17:46:37 -07001995 "id" : 26,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001996 "runtime_data" : [
1997 {
1998 "name" : "new_vlan_id",
1999 "bitwidth" : 12
2000 }
2001 ],
2002 "primitives" : [
2003 {
2004 "op" : "assign",
2005 "parameters" : [
2006 {
2007 "type" : "field",
2008 "value" : ["vlan_tag", "vlan_id"]
2009 },
2010 {
2011 "type" : "runtime_data",
2012 "value" : 0
2013 }
2014 ],
2015 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002016 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002017 "line" : 61,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002018 "column" : 8,
2019 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
2020 }
2021 }
2022 ]
2023 },
2024 {
Yi Tseng47eac892018-07-11 02:17:04 +08002025 "name" : "FabricIngress.next.output_simple",
Charles Chancd03f072018-08-31 17:46:37 -07002026 "id" : 27,
Yi Tseng47eac892018-07-11 02:17:04 +08002027 "runtime_data" : [
2028 {
2029 "name" : "port_num",
2030 "bitwidth" : 9
2031 }
2032 ],
2033 "primitives" : [
2034 {
2035 "op" : "assign",
2036 "parameters" : [
2037 {
2038 "type" : "field",
2039 "value" : ["standard_metadata", "egress_spec"]
2040 },
2041 {
2042 "type" : "runtime_data",
2043 "value" : 0
2044 }
2045 ],
2046 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002047 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002048 "line" : 85,
2049 "column" : 8,
2050 "source_fragment" : "standard_metadata.egress_spec = port_num"
2051 }
2052 }
2053 ]
2054 },
2055 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002056 "name" : "FabricIngress.next.set_vlan_output",
Charles Chancd03f072018-08-31 17:46:37 -07002057 "id" : 28,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002058 "runtime_data" : [
2059 {
2060 "name" : "new_vlan_id",
2061 "bitwidth" : 12
2062 },
2063 {
2064 "name" : "port_num",
2065 "bitwidth" : 9
2066 }
2067 ],
2068 "primitives" : [
2069 {
2070 "op" : "assign",
2071 "parameters" : [
2072 {
2073 "type" : "field",
2074 "value" : ["vlan_tag", "vlan_id"]
2075 },
2076 {
2077 "type" : "runtime_data",
2078 "value" : 0
2079 }
2080 ],
2081 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002082 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002083 "line" : 90,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002084 "column" : 8,
2085 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
2086 }
2087 },
2088 {
2089 "op" : "assign",
2090 "parameters" : [
2091 {
2092 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002093 "value" : ["standard_metadata", "egress_spec"]
2094 },
2095 {
2096 "type" : "runtime_data",
2097 "value" : 1
2098 }
2099 ],
2100 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002101 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002102 "line" : 85,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002103 "column" : 8,
2104 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2105 }
2106 }
2107 ]
2108 },
2109 {
Yi Tseng47eac892018-07-11 02:17:04 +08002110 "name" : "FabricIngress.next.l3_routing_simple",
Charles Chancd03f072018-08-31 17:46:37 -07002111 "id" : 29,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002112 "runtime_data" : [
2113 {
2114 "name" : "port_num",
2115 "bitwidth" : 9
2116 },
2117 {
2118 "name" : "smac",
2119 "bitwidth" : 48
2120 },
2121 {
2122 "name" : "dmac",
2123 "bitwidth" : 48
2124 }
2125 ],
2126 "primitives" : [
2127 {
2128 "op" : "assign",
2129 "parameters" : [
2130 {
2131 "type" : "field",
2132 "value" : ["ethernet", "src_addr"]
2133 },
2134 {
2135 "type" : "runtime_data",
2136 "value" : 1
2137 }
2138 ],
2139 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002140 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002141 "line" : 37,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002142 "column" : 8,
2143 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2144 }
2145 },
2146 {
2147 "op" : "assign",
2148 "parameters" : [
2149 {
2150 "type" : "field",
2151 "value" : ["ethernet", "dst_addr"]
2152 },
2153 {
2154 "type" : "runtime_data",
2155 "value" : 2
2156 }
2157 ],
2158 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002159 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002160 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002161 "column" : 8,
2162 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2163 }
2164 },
2165 {
2166 "op" : "assign",
2167 "parameters" : [
2168 {
2169 "type" : "field",
2170 "value" : ["standard_metadata", "egress_spec"]
2171 },
2172 {
2173 "type" : "runtime_data",
2174 "value" : 0
2175 }
2176 ],
2177 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002178 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002179 "line" : 85,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002180 "column" : 8,
2181 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2182 }
2183 }
2184 ]
2185 },
2186 {
Yi Tseng47eac892018-07-11 02:17:04 +08002187 "name" : "FabricIngress.next.mpls_routing_v4_simple",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002188 "id" : 30,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002189 "runtime_data" : [
2190 {
2191 "name" : "port_num",
2192 "bitwidth" : 9
2193 },
2194 {
2195 "name" : "smac",
2196 "bitwidth" : 48
2197 },
2198 {
2199 "name" : "dmac",
2200 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002201 },
2202 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002203 "name" : "label",
2204 "bitwidth" : 20
2205 }
2206 ],
2207 "primitives" : [
2208 {
2209 "op" : "assign",
2210 "parameters" : [
2211 {
2212 "type" : "field",
2213 "value" : ["ethernet", "src_addr"]
2214 },
2215 {
2216 "type" : "runtime_data",
2217 "value" : 1
2218 }
2219 ],
2220 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002221 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002222 "line" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002223 "column" : 8,
2224 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2225 }
2226 },
2227 {
2228 "op" : "assign",
2229 "parameters" : [
2230 {
2231 "type" : "field",
2232 "value" : ["ethernet", "dst_addr"]
2233 },
2234 {
2235 "type" : "runtime_data",
2236 "value" : 2
2237 }
2238 ],
2239 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002240 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002241 "line" : 41,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002242 "column" : 8,
2243 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2244 }
2245 },
2246 {
2247 "op" : "assign",
2248 "parameters" : [
2249 {
2250 "type" : "field",
2251 "value" : ["standard_metadata", "egress_spec"]
2252 },
2253 {
2254 "type" : "runtime_data",
2255 "value" : 0
2256 }
2257 ],
2258 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002259 "filename" : "include/control/next.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002260 "line" : 85,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002261 "column" : 8,
2262 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2263 }
2264 },
2265 {
2266 "op" : "add_header",
2267 "parameters" : [
2268 {
2269 "type" : "header",
2270 "value" : "mpls"
2271 }
2272 ],
2273 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002274 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002275 "line" : 46,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002276 "column" : 8,
2277 "source_fragment" : "hdr.mpls.setValid()"
2278 }
2279 },
2280 {
2281 "op" : "assign",
2282 "parameters" : [
2283 {
2284 "type" : "field",
2285 "value" : ["vlan_tag", "ether_type"]
2286 },
2287 {
2288 "type" : "hexstr",
2289 "value" : "0x8847"
2290 }
2291 ],
2292 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002293 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002294 "line" : 100,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002295 "column" : 31,
2296 "source_fragment" : "0x8847; ..."
2297 }
2298 },
2299 {
2300 "op" : "assign",
2301 "parameters" : [
2302 {
2303 "type" : "field",
2304 "value" : ["mpls", "label"]
2305 },
2306 {
2307 "type" : "runtime_data",
2308 "value" : 3
2309 }
2310 ],
2311 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002312 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002313 "line" : 48,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002314 "column" : 8,
2315 "source_fragment" : "hdr.mpls.label = label; ..."
2316 }
2317 },
2318 {
2319 "op" : "assign",
2320 "parameters" : [
2321 {
2322 "type" : "field",
2323 "value" : ["mpls", "tc"]
2324 },
2325 {
2326 "type" : "hexstr",
2327 "value" : "0x00"
2328 }
2329 ],
2330 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002331 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002332 "line" : 49,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002333 "column" : 8,
2334 "source_fragment" : "hdr.mpls.tc = tc; ..."
2335 }
2336 },
2337 {
2338 "op" : "assign",
2339 "parameters" : [
2340 {
2341 "type" : "field",
2342 "value" : ["mpls", "bos"]
2343 },
2344 {
2345 "type" : "hexstr",
2346 "value" : "0x01"
2347 }
2348 ],
2349 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002350 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002351 "line" : 50,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002352 "column" : 8,
2353 "source_fragment" : "hdr.mpls.bos = 1w1"
2354 }
2355 },
2356 {
2357 "op" : "assign",
2358 "parameters" : [
2359 {
2360 "type" : "field",
2361 "value" : ["mpls", "ttl"]
2362 },
2363 {
2364 "type" : "hexstr",
2365 "value" : "0x40"
2366 }
2367 ],
2368 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002369 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002370 "line" : 123,
Yi Tseng47eac892018-07-11 02:17:04 +08002371 "column" : 32,
2372 "source_fragment" : "64; ..."
2373 }
2374 }
2375 ]
2376 },
2377 {
Charles Chancd03f072018-08-31 17:46:37 -07002378 "name" : "FabricIngress.next.mpls_routing_v6_simple",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002379 "id" : 31,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002380 "runtime_data" : [
2381 {
2382 "name" : "port_num",
2383 "bitwidth" : 9
2384 },
2385 {
2386 "name" : "smac",
2387 "bitwidth" : 48
2388 },
2389 {
2390 "name" : "dmac",
2391 "bitwidth" : 48
2392 },
2393 {
Yi Tseng47eac892018-07-11 02:17:04 +08002394 "name" : "label",
2395 "bitwidth" : 20
2396 }
2397 ],
2398 "primitives" : [
2399 {
2400 "op" : "assign",
2401 "parameters" : [
2402 {
2403 "type" : "field",
2404 "value" : ["ethernet", "src_addr"]
2405 },
2406 {
2407 "type" : "runtime_data",
2408 "value" : 1
2409 }
2410 ],
2411 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002412 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002413 "line" : 37,
2414 "column" : 8,
2415 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2416 }
2417 },
2418 {
2419 "op" : "assign",
2420 "parameters" : [
2421 {
2422 "type" : "field",
2423 "value" : ["ethernet", "dst_addr"]
2424 },
2425 {
2426 "type" : "runtime_data",
2427 "value" : 2
2428 }
2429 ],
2430 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002431 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002432 "line" : 41,
2433 "column" : 8,
2434 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2435 }
2436 },
2437 {
2438 "op" : "assign",
2439 "parameters" : [
2440 {
2441 "type" : "field",
2442 "value" : ["standard_metadata", "egress_spec"]
2443 },
2444 {
2445 "type" : "runtime_data",
2446 "value" : 0
2447 }
2448 ],
2449 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002450 "filename" : "include/control/next.p4",
Charles Chancd03f072018-08-31 17:46:37 -07002451 "line" : 85,
Yi Tseng47eac892018-07-11 02:17:04 +08002452 "column" : 8,
2453 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2454 }
2455 },
2456 {
2457 "op" : "add_header",
2458 "parameters" : [
2459 {
2460 "type" : "header",
2461 "value" : "mpls"
2462 }
2463 ],
2464 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002465 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002466 "line" : 46,
2467 "column" : 8,
2468 "source_fragment" : "hdr.mpls.setValid()"
2469 }
2470 },
2471 {
2472 "op" : "assign",
2473 "parameters" : [
2474 {
2475 "type" : "field",
2476 "value" : ["vlan_tag", "ether_type"]
2477 },
2478 {
2479 "type" : "hexstr",
2480 "value" : "0x8847"
2481 }
2482 ],
2483 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002484 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002485 "line" : 100,
Yi Tseng47eac892018-07-11 02:17:04 +08002486 "column" : 31,
2487 "source_fragment" : "0x8847; ..."
2488 }
2489 },
2490 {
2491 "op" : "assign",
2492 "parameters" : [
2493 {
2494 "type" : "field",
2495 "value" : ["mpls", "label"]
2496 },
2497 {
2498 "type" : "runtime_data",
2499 "value" : 3
2500 }
2501 ],
2502 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002503 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002504 "line" : 48,
2505 "column" : 8,
2506 "source_fragment" : "hdr.mpls.label = label; ..."
2507 }
2508 },
2509 {
2510 "op" : "assign",
2511 "parameters" : [
2512 {
2513 "type" : "field",
2514 "value" : ["mpls", "tc"]
2515 },
2516 {
2517 "type" : "hexstr",
2518 "value" : "0x00"
2519 }
2520 ],
2521 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002522 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002523 "line" : 49,
2524 "column" : 8,
2525 "source_fragment" : "hdr.mpls.tc = tc; ..."
2526 }
2527 },
2528 {
2529 "op" : "assign",
2530 "parameters" : [
2531 {
2532 "type" : "field",
2533 "value" : ["mpls", "bos"]
2534 },
2535 {
2536 "type" : "hexstr",
2537 "value" : "0x01"
2538 }
2539 ],
2540 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002541 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002542 "line" : 50,
2543 "column" : 8,
2544 "source_fragment" : "hdr.mpls.bos = 1w1"
2545 }
2546 },
2547 {
2548 "op" : "assign",
2549 "parameters" : [
2550 {
2551 "type" : "field",
2552 "value" : ["mpls", "ttl"]
2553 },
2554 {
2555 "type" : "hexstr",
2556 "value" : "0x40"
2557 }
2558 ],
2559 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002560 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002561 "line" : 123,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002562 "column" : 32,
2563 "source_fragment" : "64; ..."
2564 }
2565 }
2566 ]
2567 },
2568 {
Charles Chancd03f072018-08-31 17:46:37 -07002569 "name" : "FabricIngress.next.l3_routing_vlan",
2570 "id" : 32,
2571 "runtime_data" : [
2572 {
2573 "name" : "port_num",
2574 "bitwidth" : 9
2575 },
2576 {
2577 "name" : "smac",
2578 "bitwidth" : 48
2579 },
2580 {
2581 "name" : "dmac",
2582 "bitwidth" : 48
2583 },
2584 {
2585 "name" : "new_vlan_id",
2586 "bitwidth" : 12
2587 }
2588 ],
2589 "primitives" : [
2590 {
2591 "op" : "assign",
2592 "parameters" : [
2593 {
2594 "type" : "field",
2595 "value" : ["ethernet", "src_addr"]
2596 },
2597 {
2598 "type" : "runtime_data",
2599 "value" : 1
2600 }
2601 ],
2602 "source_info" : {
2603 "filename" : "include/control/next.p4",
2604 "line" : 37,
2605 "column" : 8,
2606 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2607 }
2608 },
2609 {
2610 "op" : "assign",
2611 "parameters" : [
2612 {
2613 "type" : "field",
2614 "value" : ["ethernet", "dst_addr"]
2615 },
2616 {
2617 "type" : "runtime_data",
2618 "value" : 2
2619 }
2620 ],
2621 "source_info" : {
2622 "filename" : "include/control/next.p4",
2623 "line" : 41,
2624 "column" : 8,
2625 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2626 }
2627 },
2628 {
2629 "op" : "assign",
2630 "parameters" : [
2631 {
2632 "type" : "field",
2633 "value" : ["vlan_tag", "vlan_id"]
2634 },
2635 {
2636 "type" : "runtime_data",
2637 "value" : 3
2638 }
2639 ],
2640 "source_info" : {
2641 "filename" : "include/control/next.p4",
2642 "line" : 90,
2643 "column" : 8,
2644 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
2645 }
2646 },
2647 {
2648 "op" : "assign",
2649 "parameters" : [
2650 {
2651 "type" : "field",
2652 "value" : ["standard_metadata", "egress_spec"]
2653 },
2654 {
2655 "type" : "runtime_data",
2656 "value" : 0
2657 }
2658 ],
2659 "source_info" : {
2660 "filename" : "include/control/next.p4",
2661 "line" : 85,
2662 "column" : 8,
2663 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2664 }
2665 }
2666 ]
2667 },
2668 {
2669 "name" : "FabricIngress.next.l3_routing_hashed",
2670 "id" : 33,
2671 "runtime_data" : [
2672 {
2673 "name" : "port_num",
2674 "bitwidth" : 9
2675 },
2676 {
2677 "name" : "smac",
2678 "bitwidth" : 48
2679 },
2680 {
2681 "name" : "dmac",
2682 "bitwidth" : 48
2683 }
2684 ],
2685 "primitives" : [
2686 {
2687 "op" : "assign",
2688 "parameters" : [
2689 {
2690 "type" : "field",
2691 "value" : ["ethernet", "src_addr"]
2692 },
2693 {
2694 "type" : "runtime_data",
2695 "value" : 1
2696 }
2697 ],
2698 "source_info" : {
2699 "filename" : "include/control/next.p4",
2700 "line" : 37,
2701 "column" : 8,
2702 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2703 }
2704 },
2705 {
2706 "op" : "assign",
2707 "parameters" : [
2708 {
2709 "type" : "field",
2710 "value" : ["ethernet", "dst_addr"]
2711 },
2712 {
2713 "type" : "runtime_data",
2714 "value" : 2
2715 }
2716 ],
2717 "source_info" : {
2718 "filename" : "include/control/next.p4",
2719 "line" : 41,
2720 "column" : 8,
2721 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2722 }
2723 },
2724 {
2725 "op" : "assign",
2726 "parameters" : [
2727 {
2728 "type" : "field",
2729 "value" : ["standard_metadata", "egress_spec"]
2730 },
2731 {
2732 "type" : "runtime_data",
2733 "value" : 0
2734 }
2735 ],
2736 "source_info" : {
2737 "filename" : "include/control/next.p4",
2738 "line" : 149,
2739 "column" : 8,
2740 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2741 }
2742 }
2743 ]
2744 },
2745 {
2746 "name" : "FabricIngress.next.mpls_routing_v4_hashed",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002747 "id" : 34,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002748 "runtime_data" : [
2749 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002750 "name" : "port_num",
2751 "bitwidth" : 9
2752 },
2753 {
2754 "name" : "smac",
2755 "bitwidth" : 48
2756 },
2757 {
2758 "name" : "dmac",
2759 "bitwidth" : 48
2760 },
2761 {
2762 "name" : "label",
2763 "bitwidth" : 20
2764 }
2765 ],
2766 "primitives" : [
2767 {
2768 "op" : "assign",
2769 "parameters" : [
2770 {
2771 "type" : "field",
2772 "value" : ["ethernet", "src_addr"]
2773 },
2774 {
2775 "type" : "runtime_data",
2776 "value" : 1
2777 }
2778 ],
2779 "source_info" : {
2780 "filename" : "include/control/next.p4",
2781 "line" : 37,
2782 "column" : 8,
2783 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2784 }
2785 },
2786 {
2787 "op" : "assign",
2788 "parameters" : [
2789 {
2790 "type" : "field",
2791 "value" : ["ethernet", "dst_addr"]
2792 },
2793 {
2794 "type" : "runtime_data",
2795 "value" : 2
2796 }
2797 ],
2798 "source_info" : {
2799 "filename" : "include/control/next.p4",
2800 "line" : 41,
2801 "column" : 8,
2802 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2803 }
2804 },
2805 {
2806 "op" : "assign",
2807 "parameters" : [
2808 {
2809 "type" : "field",
2810 "value" : ["standard_metadata", "egress_spec"]
2811 },
2812 {
2813 "type" : "runtime_data",
2814 "value" : 0
2815 }
2816 ],
2817 "source_info" : {
2818 "filename" : "include/control/next.p4",
2819 "line" : 149,
2820 "column" : 8,
2821 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2822 }
2823 },
2824 {
2825 "op" : "add_header",
2826 "parameters" : [
2827 {
2828 "type" : "header",
2829 "value" : "mpls"
2830 }
2831 ],
2832 "source_info" : {
2833 "filename" : "include/control/next.p4",
2834 "line" : 46,
2835 "column" : 8,
2836 "source_fragment" : "hdr.mpls.setValid()"
2837 }
2838 },
2839 {
2840 "op" : "assign",
2841 "parameters" : [
2842 {
2843 "type" : "field",
2844 "value" : ["vlan_tag", "ether_type"]
2845 },
2846 {
2847 "type" : "hexstr",
2848 "value" : "0x8847"
2849 }
2850 ],
2851 "source_info" : {
2852 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002853 "line" : 100,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002854 "column" : 31,
2855 "source_fragment" : "0x8847; ..."
2856 }
2857 },
2858 {
2859 "op" : "assign",
2860 "parameters" : [
2861 {
2862 "type" : "field",
2863 "value" : ["mpls", "label"]
2864 },
2865 {
2866 "type" : "runtime_data",
2867 "value" : 3
2868 }
2869 ],
2870 "source_info" : {
2871 "filename" : "include/control/next.p4",
2872 "line" : 48,
2873 "column" : 8,
2874 "source_fragment" : "hdr.mpls.label = label; ..."
2875 }
2876 },
2877 {
2878 "op" : "assign",
2879 "parameters" : [
2880 {
2881 "type" : "field",
2882 "value" : ["mpls", "tc"]
2883 },
2884 {
2885 "type" : "hexstr",
2886 "value" : "0x00"
2887 }
2888 ],
2889 "source_info" : {
2890 "filename" : "include/control/next.p4",
2891 "line" : 49,
2892 "column" : 8,
2893 "source_fragment" : "hdr.mpls.tc = tc; ..."
2894 }
2895 },
2896 {
2897 "op" : "assign",
2898 "parameters" : [
2899 {
2900 "type" : "field",
2901 "value" : ["mpls", "bos"]
2902 },
2903 {
2904 "type" : "hexstr",
2905 "value" : "0x01"
2906 }
2907 ],
2908 "source_info" : {
2909 "filename" : "include/control/next.p4",
2910 "line" : 50,
2911 "column" : 8,
2912 "source_fragment" : "hdr.mpls.bos = 1w1"
2913 }
2914 },
2915 {
2916 "op" : "assign",
2917 "parameters" : [
2918 {
2919 "type" : "field",
2920 "value" : ["mpls", "ttl"]
2921 },
2922 {
2923 "type" : "hexstr",
2924 "value" : "0x40"
2925 }
2926 ],
2927 "source_info" : {
2928 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002929 "line" : 123,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002930 "column" : 32,
2931 "source_fragment" : "64; ..."
2932 }
2933 }
2934 ]
2935 },
2936 {
Charles Chancd03f072018-08-31 17:46:37 -07002937 "name" : "FabricIngress.next.mpls_routing_v6_hashed",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002938 "id" : 35,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002939 "runtime_data" : [
2940 {
Charles Chancd03f072018-08-31 17:46:37 -07002941 "name" : "port_num",
2942 "bitwidth" : 9
2943 },
2944 {
2945 "name" : "smac",
2946 "bitwidth" : 48
2947 },
2948 {
2949 "name" : "dmac",
2950 "bitwidth" : 48
2951 },
2952 {
2953 "name" : "label",
2954 "bitwidth" : 20
2955 }
2956 ],
2957 "primitives" : [
2958 {
2959 "op" : "assign",
2960 "parameters" : [
2961 {
2962 "type" : "field",
2963 "value" : ["ethernet", "src_addr"]
2964 },
2965 {
2966 "type" : "runtime_data",
2967 "value" : 1
2968 }
2969 ],
2970 "source_info" : {
2971 "filename" : "include/control/next.p4",
2972 "line" : 37,
2973 "column" : 8,
2974 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2975 }
2976 },
2977 {
2978 "op" : "assign",
2979 "parameters" : [
2980 {
2981 "type" : "field",
2982 "value" : ["ethernet", "dst_addr"]
2983 },
2984 {
2985 "type" : "runtime_data",
2986 "value" : 2
2987 }
2988 ],
2989 "source_info" : {
2990 "filename" : "include/control/next.p4",
2991 "line" : 41,
2992 "column" : 8,
2993 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2994 }
2995 },
2996 {
2997 "op" : "assign",
2998 "parameters" : [
2999 {
3000 "type" : "field",
3001 "value" : ["standard_metadata", "egress_spec"]
3002 },
3003 {
3004 "type" : "runtime_data",
3005 "value" : 0
3006 }
3007 ],
3008 "source_info" : {
3009 "filename" : "include/control/next.p4",
3010 "line" : 149,
3011 "column" : 8,
3012 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
3013 }
3014 },
3015 {
3016 "op" : "add_header",
3017 "parameters" : [
3018 {
3019 "type" : "header",
3020 "value" : "mpls"
3021 }
3022 ],
3023 "source_info" : {
3024 "filename" : "include/control/next.p4",
3025 "line" : 46,
3026 "column" : 8,
3027 "source_fragment" : "hdr.mpls.setValid()"
3028 }
3029 },
3030 {
3031 "op" : "assign",
3032 "parameters" : [
3033 {
3034 "type" : "field",
3035 "value" : ["vlan_tag", "ether_type"]
3036 },
3037 {
3038 "type" : "hexstr",
3039 "value" : "0x8847"
3040 }
3041 ],
3042 "source_info" : {
3043 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07003044 "line" : 100,
Charles Chancd03f072018-08-31 17:46:37 -07003045 "column" : 31,
3046 "source_fragment" : "0x8847; ..."
3047 }
3048 },
3049 {
3050 "op" : "assign",
3051 "parameters" : [
3052 {
3053 "type" : "field",
3054 "value" : ["mpls", "label"]
3055 },
3056 {
3057 "type" : "runtime_data",
3058 "value" : 3
3059 }
3060 ],
3061 "source_info" : {
3062 "filename" : "include/control/next.p4",
3063 "line" : 48,
3064 "column" : 8,
3065 "source_fragment" : "hdr.mpls.label = label; ..."
3066 }
3067 },
3068 {
3069 "op" : "assign",
3070 "parameters" : [
3071 {
3072 "type" : "field",
3073 "value" : ["mpls", "tc"]
3074 },
3075 {
3076 "type" : "hexstr",
3077 "value" : "0x00"
3078 }
3079 ],
3080 "source_info" : {
3081 "filename" : "include/control/next.p4",
3082 "line" : 49,
3083 "column" : 8,
3084 "source_fragment" : "hdr.mpls.tc = tc; ..."
3085 }
3086 },
3087 {
3088 "op" : "assign",
3089 "parameters" : [
3090 {
3091 "type" : "field",
3092 "value" : ["mpls", "bos"]
3093 },
3094 {
3095 "type" : "hexstr",
3096 "value" : "0x01"
3097 }
3098 ],
3099 "source_info" : {
3100 "filename" : "include/control/next.p4",
3101 "line" : 50,
3102 "column" : 8,
3103 "source_fragment" : "hdr.mpls.bos = 1w1"
3104 }
3105 },
3106 {
3107 "op" : "assign",
3108 "parameters" : [
3109 {
3110 "type" : "field",
3111 "value" : ["mpls", "ttl"]
3112 },
3113 {
3114 "type" : "hexstr",
3115 "value" : "0x40"
3116 }
3117 ],
3118 "source_info" : {
3119 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07003120 "line" : 123,
Charles Chancd03f072018-08-31 17:46:37 -07003121 "column" : 32,
3122 "source_fragment" : "64; ..."
3123 }
3124 }
3125 ]
3126 },
3127 {
3128 "name" : "FabricIngress.next.set_mcast_group",
3129 "id" : 36,
3130 "runtime_data" : [
3131 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00003132 "name" : "gid",
3133 "bitwidth" : 16
3134 }
3135 ],
3136 "primitives" : [
3137 {
3138 "op" : "assign",
3139 "parameters" : [
3140 {
3141 "type" : "field",
3142 "value" : ["standard_metadata", "mcast_grp"]
3143 },
3144 {
3145 "type" : "runtime_data",
3146 "value" : 0
3147 }
3148 ],
3149 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003150 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003151 "line" : 202,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003152 "column" : 8,
3153 "source_fragment" : "standard_metadata.mcast_grp = gid"
3154 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003155 },
3156 {
3157 "op" : "assign",
3158 "parameters" : [
3159 {
3160 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003161 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003162 },
3163 {
3164 "type" : "expression",
3165 "value" : {
3166 "type" : "expression",
3167 "value" : {
3168 "op" : "b2d",
3169 "left" : null,
3170 "right" : {
3171 "type" : "bool",
3172 "value" : true
3173 }
3174 }
3175 }
3176 }
3177 ],
3178 "source_info" : {
3179 "filename" : "include/control/next.p4",
3180 "line" : 203,
3181 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003182 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003183 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00003184 }
3185 ]
3186 },
3187 {
3188 "name" : "act",
Charles Chancd03f072018-08-31 17:46:37 -07003189 "id" : 37,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003190 "runtime_data" : [],
3191 "primitives" : [
3192 {
3193 "op" : "assign",
3194 "parameters" : [
3195 {
3196 "type" : "field",
3197 "value" : ["scalars", "spgw_normalizer_hasReturned_0"]
3198 },
3199 {
3200 "type" : "expression",
3201 "value" : {
3202 "type" : "expression",
3203 "value" : {
3204 "op" : "b2d",
3205 "left" : null,
3206 "right" : {
3207 "type" : "bool",
3208 "value" : true
3209 }
3210 }
3211 }
3212 }
3213 ],
3214 "source_info" : {
3215 "filename" : "include/spgw.p4",
3216 "line" : 30,
3217 "column" : 32,
3218 "source_fragment" : "return"
3219 }
3220 }
3221 ]
3222 },
3223 {
3224 "name" : "act_0",
Charles Chancd03f072018-08-31 17:46:37 -07003225 "id" : 38,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003226 "runtime_data" : [],
3227 "primitives" : [
3228 {
3229 "op" : "remove_header",
3230 "parameters" : [
3231 {
3232 "type" : "header",
3233 "value" : "gtpu_ipv4"
3234 }
3235 ],
3236 "source_info" : {
3237 "filename" : "fabric.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07003238 "line" : 55,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003239 "column" : 50,
3240 "source_fragment" : "hdr.gtpu_ipv4"
3241 }
3242 },
3243 {
3244 "op" : "remove_header",
3245 "parameters" : [
3246 {
3247 "type" : "header",
3248 "value" : "gtpu_udp"
3249 }
3250 ],
3251 "source_info" : {
3252 "filename" : "fabric.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07003253 "line" : 55,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003254 "column" : 65,
3255 "source_fragment" : "hdr.gtpu_udp"
3256 }
3257 },
3258 {
3259 "op" : "assign",
3260 "parameters" : [
3261 {
3262 "type" : "field",
3263 "value" : ["scalars", "spgw_normalizer_hasReturned_0"]
3264 },
3265 {
3266 "type" : "expression",
3267 "value" : {
3268 "type" : "expression",
3269 "value" : {
3270 "op" : "b2d",
3271 "left" : null,
3272 "right" : {
3273 "type" : "bool",
3274 "value" : false
3275 }
3276 }
3277 }
3278 }
3279 ]
3280 }
3281 ]
3282 },
3283 {
3284 "name" : "act_1",
Charles Chancd03f072018-08-31 17:46:37 -07003285 "id" : 39,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003286 "runtime_data" : [],
3287 "primitives" : [
3288 {
3289 "op" : "assign_header",
3290 "parameters" : [
3291 {
3292 "type" : "header",
3293 "value" : "udp"
3294 },
3295 {
3296 "type" : "header",
3297 "value" : "inner_udp"
3298 }
3299 ],
3300 "source_info" : {
3301 "filename" : "include/spgw.p4",
3302 "line" : 35,
3303 "column" : 16,
3304 "source_fragment" : "= inner_udp; ..."
3305 }
3306 }
3307 ]
3308 },
3309 {
3310 "name" : "act_2",
Charles Chancd03f072018-08-31 17:46:37 -07003311 "id" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003312 "runtime_data" : [],
3313 "primitives" : [
3314 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003315 "op" : "remove_header",
3316 "parameters" : [
3317 {
3318 "type" : "header",
3319 "value" : "udp"
3320 }
3321 ],
3322 "source_info" : {
3323 "filename" : "include/spgw.p4",
3324 "line" : 37,
3325 "column" : 12,
3326 "source_fragment" : "udp.setInvalid()"
3327 }
3328 }
3329 ]
3330 },
3331 {
3332 "name" : "act_3",
Charles Chancd03f072018-08-31 17:46:37 -07003333 "id" : 41,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003334 "runtime_data" : [],
3335 "primitives" : [
3336 {
3337 "op" : "assign_header",
3338 "parameters" : [
3339 {
3340 "type" : "header",
3341 "value" : "gtpu_ipv4"
3342 },
3343 {
3344 "type" : "header",
3345 "value" : "ipv4"
3346 }
3347 ],
3348 "source_info" : {
3349 "filename" : "include/spgw.p4",
3350 "line" : 31,
3351 "column" : 18,
3352 "source_fragment" : "= ipv4; ..."
3353 }
3354 },
3355 {
3356 "op" : "assign_header",
3357 "parameters" : [
3358 {
3359 "type" : "header",
3360 "value" : "ipv4"
3361 },
3362 {
3363 "type" : "header",
3364 "value" : "inner_ipv4"
3365 }
3366 ],
3367 "source_info" : {
3368 "filename" : "include/spgw.p4",
3369 "line" : 32,
3370 "column" : 13,
3371 "source_fragment" : "= inner_ipv4; ..."
3372 }
3373 },
3374 {
3375 "op" : "assign_header",
3376 "parameters" : [
3377 {
3378 "type" : "header",
3379 "value" : "gtpu_udp"
3380 },
3381 {
3382 "type" : "header",
3383 "value" : "udp"
3384 }
3385 ],
3386 "source_info" : {
3387 "filename" : "include/spgw.p4",
3388 "line" : 33,
3389 "column" : 17,
3390 "source_fragment" : "= udp; ..."
3391 }
3392 }
3393 ]
3394 },
3395 {
3396 "name" : "act_4",
Charles Chancd03f072018-08-31 17:46:37 -07003397 "id" : 42,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003398 "runtime_data" : [],
3399 "primitives" : [
3400 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003401 "op" : "assign",
3402 "parameters" : [
3403 {
3404 "type" : "field",
3405 "value" : ["standard_metadata", "egress_spec"]
3406 },
3407 {
3408 "type" : "field",
3409 "value" : ["packet_out", "egress_port"]
3410 }
3411 ],
3412 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003413 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003414 "line" : 26,
3415 "column" : 12,
3416 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
3417 }
3418 },
3419 {
3420 "op" : "remove_header",
3421 "parameters" : [
3422 {
3423 "type" : "header",
3424 "value" : "packet_out"
3425 }
3426 ],
3427 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003428 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003429 "line" : 27,
3430 "column" : 12,
3431 "source_fragment" : "hdr.packet_out.setInvalid()"
3432 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003433 },
3434 {
3435 "op" : "assign",
3436 "parameters" : [
3437 {
3438 "type" : "field",
3439 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
3440 },
3441 {
3442 "type" : "expression",
3443 "value" : {
3444 "type" : "expression",
3445 "value" : {
3446 "op" : "b2d",
3447 "left" : null,
3448 "right" : {
3449 "type" : "bool",
3450 "value" : true
3451 }
3452 }
3453 }
3454 }
3455 ],
3456 "source_info" : {
3457 "filename" : "include/control/packetio.p4",
3458 "line" : 28,
3459 "column" : 12,
3460 "source_fragment" : "fabric_metadata.is_controller_packet_out = true"
3461 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003462 }
3463 ]
3464 },
3465 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003466 "name" : "act_5",
Charles Chancd03f072018-08-31 17:46:37 -07003467 "id" : 43,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003468 "runtime_data" : [],
3469 "primitives" : [
3470 {
3471 "op" : "assign",
3472 "parameters" : [
3473 {
3474 "type" : "field",
3475 "value" : ["scalars", "spgw_ingress_tmp_1"]
3476 },
3477 {
3478 "type" : "expression",
3479 "value" : {
3480 "type" : "expression",
3481 "value" : {
3482 "op" : "b2d",
3483 "left" : null,
3484 "right" : {
3485 "type" : "bool",
3486 "value" : true
3487 }
3488 }
3489 }
3490 }
3491 ]
3492 }
3493 ]
3494 },
3495 {
3496 "name" : "act_6",
Charles Chancd03f072018-08-31 17:46:37 -07003497 "id" : 44,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003498 "runtime_data" : [],
3499 "primitives" : [
3500 {
3501 "op" : "assign",
3502 "parameters" : [
3503 {
3504 "type" : "field",
3505 "value" : ["scalars", "spgw_ingress_tmp_1"]
3506 },
3507 {
3508 "type" : "expression",
3509 "value" : {
3510 "type" : "expression",
3511 "value" : {
3512 "op" : "b2d",
3513 "left" : null,
3514 "right" : {
3515 "type" : "bool",
3516 "value" : false
3517 }
3518 }
3519 }
3520 }
3521 ]
3522 }
3523 ]
3524 },
3525 {
3526 "name" : "act_7",
Charles Chancd03f072018-08-31 17:46:37 -07003527 "id" : 45,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003528 "runtime_data" : [],
3529 "primitives" : [
3530 {
3531 "op" : "assign",
3532 "parameters" : [
3533 {
3534 "type" : "field",
3535 "value" : ["userMetadata.spgw", "direction"]
3536 },
3537 {
3538 "type" : "hexstr",
3539 "value" : "0x01"
3540 }
3541 ],
3542 "source_info" : {
3543 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07003544 "line" : 129,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003545 "column" : 36,
3546 "source_fragment" : "2w1; ..."
3547 }
3548 }
3549 ]
3550 },
3551 {
3552 "name" : "act_8",
Charles Chancd03f072018-08-31 17:46:37 -07003553 "id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003554 "runtime_data" : [],
3555 "primitives" : [
3556 {
3557 "op" : "assign",
3558 "parameters" : [
3559 {
3560 "type" : "field",
3561 "value" : ["scalars", "spgw_ingress_tmp_2"]
3562 },
3563 {
3564 "type" : "expression",
3565 "value" : {
3566 "type" : "expression",
3567 "value" : {
3568 "op" : "b2d",
3569 "left" : null,
3570 "right" : {
3571 "type" : "bool",
3572 "value" : true
3573 }
3574 }
3575 }
3576 }
3577 ]
3578 }
3579 ]
3580 },
3581 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003582 "name" : "act_9",
Charles Chancd03f072018-08-31 17:46:37 -07003583 "id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003584 "runtime_data" : [],
3585 "primitives" : [
3586 {
3587 "op" : "assign",
3588 "parameters" : [
3589 {
3590 "type" : "field",
3591 "value" : ["scalars", "spgw_ingress_tmp_2"]
3592 },
3593 {
3594 "type" : "expression",
3595 "value" : {
3596 "type" : "expression",
3597 "value" : {
3598 "op" : "b2d",
3599 "left" : null,
3600 "right" : {
3601 "type" : "bool",
3602 "value" : false
3603 }
3604 }
3605 }
3606 }
3607 ]
3608 }
3609 ]
3610 },
3611 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003612 "name" : "act_10",
Charles Chancd03f072018-08-31 17:46:37 -07003613 "id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003614 "runtime_data" : [],
3615 "primitives" : [
3616 {
3617 "op" : "assign",
3618 "parameters" : [
3619 {
3620 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003621 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003622 },
3623 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003624 "type" : "hexstr",
3625 "value" : "0x02"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003626 }
3627 ],
3628 "source_info" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003629 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07003630 "line" : 130,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003631 "column" : 38,
3632 "source_fragment" : "2w2; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003633 }
3634 }
3635 ]
3636 },
3637 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003638 "name" : "act_11",
Charles Chancd03f072018-08-31 17:46:37 -07003639 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003640 "runtime_data" : [],
3641 "primitives" : [
3642 {
3643 "op" : "assign",
3644 "parameters" : [
3645 {
3646 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003647 "value" : ["userMetadata.spgw", "direction"]
3648 },
3649 {
3650 "type" : "hexstr",
3651 "value" : "0x00"
3652 }
3653 ],
3654 "source_info" : {
3655 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07003656 "line" : 128,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003657 "column" : 37,
3658 "source_fragment" : "2w0; ..."
3659 }
3660 },
3661 {
3662 "op" : "assign",
3663 "parameters" : [
3664 {
3665 "type" : "field",
3666 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003667 },
3668 {
3669 "type" : "expression",
3670 "value" : {
3671 "type" : "expression",
3672 "value" : {
3673 "op" : "b2d",
3674 "left" : null,
3675 "right" : {
3676 "type" : "bool",
3677 "value" : true
3678 }
3679 }
3680 }
3681 }
3682 ],
3683 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003684 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07003685 "line" : 153,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003686 "column" : 12,
3687 "source_fragment" : "return"
3688 }
3689 }
3690 ]
3691 },
3692 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003693 "name" : "act_12",
Charles Chancd03f072018-08-31 17:46:37 -07003694 "id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003695 "runtime_data" : [],
3696 "primitives" : [
3697 {
3698 "op" : "assign",
3699 "parameters" : [
3700 {
3701 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003702 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003703 },
3704 {
3705 "type" : "expression",
3706 "value" : {
3707 "type" : "expression",
3708 "value" : {
3709 "op" : "b2d",
3710 "left" : null,
3711 "right" : {
3712 "type" : "bool",
3713 "value" : false
3714 }
3715 }
3716 }
3717 }
3718 ]
3719 }
3720 ]
3721 },
3722 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003723 "name" : "act_13",
Charles Chancd03f072018-08-31 17:46:37 -07003724 "id" : 51,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003725 "runtime_data" : [],
3726 "primitives" : [
3727 {
3728 "op" : "assign",
3729 "parameters" : [
3730 {
3731 "type" : "field",
3732 "value" : ["userMetadata.spgw", "ipv4_len"]
3733 },
3734 {
3735 "type" : "field",
3736 "value" : ["ipv4", "total_len"]
3737 }
3738 ],
3739 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003740 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07003741 "line" : 170,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003742 "column" : 8,
3743 "source_fragment" : "spgw_meta.ipv4_len = ipv4.total_len"
3744 }
3745 }
3746 ]
3747 },
3748 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003749 "name" : "act_14",
Charles Chancd03f072018-08-31 17:46:37 -07003750 "id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003751 "runtime_data" : [],
3752 "primitives" : [
3753 {
3754 "op" : "assign",
3755 "parameters" : [
3756 {
3757 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003758 "value" : ["scalars", "filtering_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003759 },
3760 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003761 "type" : "expression",
3762 "value" : {
3763 "type" : "expression",
3764 "value" : {
3765 "op" : "b2d",
3766 "left" : null,
3767 "right" : {
3768 "type" : "bool",
3769 "value" : true
3770 }
3771 }
3772 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003773 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003774 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003775 }
3776 ]
3777 },
3778 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003779 "name" : "act_15",
Charles Chancd03f072018-08-31 17:46:37 -07003780 "id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003781 "runtime_data" : [],
3782 "primitives" : [
3783 {
3784 "op" : "assign",
3785 "parameters" : [
3786 {
3787 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003788 "value" : ["scalars", "filtering_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003789 },
3790 {
3791 "type" : "expression",
3792 "value" : {
3793 "type" : "expression",
3794 "value" : {
3795 "op" : "b2d",
3796 "left" : null,
3797 "right" : {
3798 "type" : "bool",
3799 "value" : false
3800 }
3801 }
3802 }
3803 }
3804 ]
3805 }
3806 ]
3807 },
3808 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003809 "name" : "act_16",
Charles Chancd03f072018-08-31 17:46:37 -07003810 "id" : 54,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003811 "runtime_data" : [],
3812 "primitives" : [
3813 {
3814 "op" : "assign",
3815 "parameters" : [
3816 {
3817 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003818 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003819 },
3820 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003821 "type" : "hexstr",
3822 "value" : "0x07"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003823 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003824 ],
3825 "source_info" : {
3826 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07003827 "line" : 119,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003828 "column" : 31,
3829 "source_fragment" : "7; ..."
3830 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003831 }
3832 ]
3833 },
3834 {
3835 "name" : "act_17",
Charles Chancd03f072018-08-31 17:46:37 -07003836 "id" : 55,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003837 "runtime_data" : [],
3838 "primitives" : [
3839 {
3840 "op" : "assign",
3841 "parameters" : [
3842 {
3843 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003844 "value" : ["vlan_tag", "ether_type"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003845 },
3846 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003847 "type" : "hexstr",
3848 "value" : "0x0800"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003849 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003850 ],
3851 "source_info" : {
3852 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07003853 "line" : 102,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003854 "column" : 31,
3855 "source_fragment" : "0x0800; ..."
3856 }
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003857 }
3858 ]
3859 },
3860 {
3861 "name" : "act_18",
Charles Chancd03f072018-08-31 17:46:37 -07003862 "id" : 56,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003863 "runtime_data" : [],
3864 "primitives" : [
3865 {
3866 "op" : "assign",
3867 "parameters" : [
3868 {
3869 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003870 "value" : ["scalars", "next_hasReturned_0"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003871 },
3872 {
3873 "type" : "expression",
3874 "value" : {
3875 "type" : "expression",
3876 "value" : {
3877 "op" : "b2d",
3878 "left" : null,
3879 "right" : {
3880 "type" : "bool",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003881 "value" : false
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003882 }
3883 }
3884 }
3885 }
3886 ]
3887 }
3888 ]
3889 },
3890 {
3891 "name" : "act_19",
Charles Chancd03f072018-08-31 17:46:37 -07003892 "id" : 57,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003893 "runtime_data" : [],
3894 "primitives" : [
3895 {
3896 "op" : "assign",
3897 "parameters" : [
3898 {
3899 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003900 "value" : ["scalars", "next_tmp_4"]
3901 },
3902 {
3903 "type" : "expression",
3904 "value" : {
3905 "type" : "expression",
3906 "value" : {
3907 "op" : "b2d",
3908 "left" : null,
3909 "right" : {
3910 "type" : "bool",
3911 "value" : true
3912 }
3913 }
3914 }
3915 }
3916 ]
3917 }
3918 ]
3919 },
3920 {
3921 "name" : "act_20",
Charles Chancd03f072018-08-31 17:46:37 -07003922 "id" : 58,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003923 "runtime_data" : [],
3924 "primitives" : [
3925 {
3926 "op" : "assign",
3927 "parameters" : [
3928 {
3929 "type" : "field",
3930 "value" : ["scalars", "next_tmp_4"]
3931 },
3932 {
3933 "type" : "expression",
3934 "value" : {
3935 "type" : "expression",
3936 "value" : {
3937 "op" : "b2d",
3938 "left" : null,
3939 "right" : {
3940 "type" : "bool",
3941 "value" : false
3942 }
3943 }
3944 }
3945 }
3946 ]
3947 }
3948 ]
3949 },
3950 {
3951 "name" : "act_21",
Charles Chancd03f072018-08-31 17:46:37 -07003952 "id" : 59,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003953 "runtime_data" : [],
3954 "primitives" : [
3955 {
3956 "op" : "assign",
3957 "parameters" : [
3958 {
3959 "type" : "field",
3960 "value" : ["scalars", "next_tmp_3"]
3961 },
3962 {
3963 "type" : "expression",
3964 "value" : {
3965 "type" : "expression",
3966 "value" : {
3967 "op" : "b2d",
3968 "left" : null,
3969 "right" : {
3970 "type" : "bool",
3971 "value" : true
3972 }
3973 }
3974 }
3975 }
3976 ]
3977 }
3978 ]
3979 },
3980 {
3981 "name" : "act_22",
Charles Chancd03f072018-08-31 17:46:37 -07003982 "id" : 60,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003983 "runtime_data" : [],
3984 "primitives" : [
3985 {
3986 "op" : "assign",
3987 "parameters" : [
3988 {
3989 "type" : "field",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003990 "value" : ["scalars", "next_tmp_3"]
3991 },
3992 {
3993 "type" : "expression",
3994 "value" : {
3995 "type" : "expression",
3996 "value" : {
3997 "op" : "b2d",
3998 "left" : null,
3999 "right" : {
4000 "type" : "bool",
4001 "value" : false
4002 }
4003 }
4004 }
4005 }
4006 ]
4007 }
4008 ]
4009 },
4010 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004011 "name" : "act_23",
Charles Chancd03f072018-08-31 17:46:37 -07004012 "id" : 61,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004013 "runtime_data" : [],
4014 "primitives" : [
4015 {
4016 "op" : "assign",
4017 "parameters" : [
4018 {
4019 "type" : "field",
4020 "value" : ["scalars", "next_tmp_2"]
4021 },
4022 {
4023 "type" : "expression",
4024 "value" : {
4025 "type" : "expression",
4026 "value" : {
4027 "op" : "b2d",
4028 "left" : null,
4029 "right" : {
4030 "type" : "bool",
4031 "value" : true
4032 }
4033 }
4034 }
4035 }
4036 ]
4037 }
4038 ]
4039 },
4040 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004041 "name" : "act_24",
Charles Chancd03f072018-08-31 17:46:37 -07004042 "id" : 62,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004043 "runtime_data" : [],
4044 "primitives" : [
4045 {
4046 "op" : "assign",
4047 "parameters" : [
4048 {
4049 "type" : "field",
4050 "value" : ["scalars", "next_tmp_2"]
4051 },
4052 {
4053 "type" : "expression",
4054 "value" : {
4055 "type" : "expression",
4056 "value" : {
4057 "op" : "b2d",
4058 "left" : null,
4059 "right" : {
4060 "type" : "bool",
4061 "value" : false
4062 }
4063 }
4064 }
4065 }
4066 ]
4067 }
4068 ]
4069 },
4070 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004071 "name" : "act_25",
Charles Chancd03f072018-08-31 17:46:37 -07004072 "id" : 63,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004073 "runtime_data" : [],
4074 "primitives" : [
4075 {
4076 "op" : "assign",
4077 "parameters" : [
4078 {
4079 "type" : "field",
4080 "value" : ["scalars", "next_hasReturned_0"]
4081 },
4082 {
4083 "type" : "expression",
4084 "value" : {
4085 "type" : "expression",
4086 "value" : {
4087 "op" : "b2d",
4088 "left" : null,
4089 "right" : {
4090 "type" : "bool",
4091 "value" : true
4092 }
4093 }
4094 }
4095 }
4096 ],
4097 "source_info" : {
4098 "filename" : "include/control/next.p4",
4099 "line" : 223,
4100 "column" : 20,
4101 "source_fragment" : "return"
4102 }
4103 }
4104 ]
4105 },
4106 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004107 "name" : "act_26",
Charles Chancd03f072018-08-31 17:46:37 -07004108 "id" : 64,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004109 "runtime_data" : [],
4110 "primitives" : [
4111 {
4112 "op" : "assign",
4113 "parameters" : [
4114 {
4115 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004116 "value" : ["ipv4", "ttl"]
4117 },
4118 {
4119 "type" : "expression",
4120 "value" : {
4121 "type" : "expression",
4122 "value" : {
4123 "op" : "&",
4124 "left" : {
4125 "type" : "expression",
4126 "value" : {
4127 "op" : "+",
4128 "left" : {
4129 "type" : "field",
4130 "value" : ["ipv4", "ttl"]
4131 },
4132 "right" : {
4133 "type" : "hexstr",
4134 "value" : "0xff"
4135 }
4136 }
4137 },
4138 "right" : {
4139 "type" : "hexstr",
4140 "value" : "0xff"
4141 }
4142 }
4143 }
4144 }
4145 ],
4146 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004147 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004148 "line" : 230,
4149 "column" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004150 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
4151 }
4152 }
4153 ]
4154 },
4155 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004156 "name" : "act_27",
Charles Chancd03f072018-08-31 17:46:37 -07004157 "id" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004158 "runtime_data" : [],
4159 "primitives" : [
4160 {
4161 "op" : "assign",
4162 "parameters" : [
4163 {
4164 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004165 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004166 },
4167 {
4168 "type" : "expression",
4169 "value" : {
4170 "type" : "expression",
4171 "value" : {
4172 "op" : "&",
4173 "left" : {
4174 "type" : "field",
4175 "value" : ["standard_metadata", "egress_spec"]
4176 },
4177 "right" : {
4178 "type" : "hexstr",
4179 "value" : "0xffffffff"
4180 }
4181 }
4182 }
4183 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004184 ],
4185 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004186 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004187 "line" : 28,
4188 "column" : 38,
4189 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
4190 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004191 },
4192 {
4193 "op" : "count",
4194 "parameters" : [
4195 {
4196 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004197 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004198 },
4199 {
4200 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004201 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004202 }
4203 ],
4204 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004205 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004206 "line" : 28,
4207 "column" : 12,
4208 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
4209 }
4210 }
4211 ]
4212 },
4213 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004214 "name" : "act_28",
Charles Chancd03f072018-08-31 17:46:37 -07004215 "id" : 66,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004216 "runtime_data" : [],
4217 "primitives" : [
4218 {
4219 "op" : "assign",
4220 "parameters" : [
4221 {
4222 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004223 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004224 },
4225 {
4226 "type" : "expression",
4227 "value" : {
4228 "type" : "expression",
4229 "value" : {
4230 "op" : "&",
4231 "left" : {
4232 "type" : "field",
4233 "value" : ["standard_metadata", "ingress_port"]
4234 },
4235 "right" : {
4236 "type" : "hexstr",
4237 "value" : "0xffffffff"
4238 }
4239 }
4240 }
4241 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004242 ],
4243 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004244 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004245 "line" : 31,
4246 "column" : 39,
4247 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
4248 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004249 },
4250 {
4251 "op" : "count",
4252 "parameters" : [
4253 {
4254 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004255 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004256 },
4257 {
4258 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004259 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004260 }
4261 ],
4262 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004263 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004264 "line" : 31,
4265 "column" : 12,
4266 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
4267 }
4268 }
4269 ]
4270 },
4271 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004272 "name" : "nop",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004273 "id" : 67,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004274 "runtime_data" : [],
Charles Chancd03f072018-08-31 17:46:37 -07004275 "primitives" : []
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004276 },
4277 {
4278 "name" : "drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004279 "id" : 68,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004280 "runtime_data" : [],
4281 "primitives" : [
4282 {
4283 "op" : "drop",
4284 "parameters" : [],
4285 "source_info" : {
4286 "filename" : "include/control/../action.p4",
4287 "line" : 24,
4288 "column" : 4,
4289 "source_fragment" : "mark_to_drop()"
4290 }
4291 },
4292 {
4293 "op" : "exit",
4294 "parameters" : [],
4295 "source_info" : {
4296 "filename" : "include/control/../action.p4",
4297 "line" : 25,
4298 "column" : 4,
4299 "source_fragment" : "exit"
4300 }
4301 }
4302 ]
4303 },
4304 {
Charles Chancd03f072018-08-31 17:46:37 -07004305 "name" : "drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004306 "id" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004307 "runtime_data" : [],
4308 "primitives" : [
4309 {
Charles Chancd03f072018-08-31 17:46:37 -07004310 "op" : "drop",
4311 "parameters" : [],
4312 "source_info" : {
4313 "filename" : "include/control/../action.p4",
4314 "line" : 24,
4315 "column" : 4,
4316 "source_fragment" : "mark_to_drop()"
4317 }
4318 },
4319 {
4320 "op" : "exit",
4321 "parameters" : [],
4322 "source_info" : {
4323 "filename" : "include/control/../action.p4",
4324 "line" : 25,
4325 "column" : 4,
4326 "source_fragment" : "exit"
4327 }
4328 }
4329 ]
4330 },
4331 {
4332 "name" : "FabricEgress.spgw_egress.gtpu_encap",
4333 "id" : 70,
4334 "runtime_data" : [],
4335 "primitives" : [
4336 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004337 "op" : "add_header",
4338 "parameters" : [
4339 {
4340 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004341 "value" : "gtpu_ipv4"
4342 }
4343 ],
4344 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004345 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004346 "line" : 185,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004347 "column" : 8,
4348 "source_fragment" : "gtpu_ipv4.setValid()"
4349 }
4350 },
4351 {
4352 "op" : "assign",
4353 "parameters" : [
4354 {
4355 "type" : "field",
4356 "value" : ["gtpu_ipv4", "version"]
4357 },
4358 {
4359 "type" : "hexstr",
4360 "value" : "0x04"
4361 }
4362 ],
4363 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004364 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004365 "line" : 186,
Yi Tseng3d3956d2018-01-31 17:28:05 -08004366 "column" : 8,
4367 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004368 }
4369 },
4370 {
4371 "op" : "assign",
4372 "parameters" : [
4373 {
4374 "type" : "field",
4375 "value" : ["gtpu_ipv4", "ihl"]
4376 },
4377 {
4378 "type" : "hexstr",
4379 "value" : "0x05"
4380 }
4381 ],
4382 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004383 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07004384 "line" : 111,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004385 "column" : 28,
4386 "source_fragment" : "5; ..."
4387 }
4388 },
4389 {
4390 "op" : "assign",
4391 "parameters" : [
4392 {
4393 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004394 "value" : ["gtpu_ipv4", "dscp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004395 },
4396 {
4397 "type" : "hexstr",
4398 "value" : "0x00"
4399 }
4400 ],
4401 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004402 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004403 "line" : 188,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004404 "column" : 8,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004405 "source_fragment" : "gtpu_ipv4.dscp = 0"
4406 }
4407 },
4408 {
4409 "op" : "assign",
4410 "parameters" : [
4411 {
4412 "type" : "field",
4413 "value" : ["gtpu_ipv4", "ecn"]
4414 },
4415 {
4416 "type" : "hexstr",
4417 "value" : "0x00"
4418 }
4419 ],
4420 "source_info" : {
4421 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004422 "line" : 189,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004423 "column" : 8,
4424 "source_fragment" : "gtpu_ipv4.ecn = 0"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004425 }
4426 },
4427 {
4428 "op" : "assign",
4429 "parameters" : [
4430 {
4431 "type" : "field",
4432 "value" : ["gtpu_ipv4", "total_len"]
4433 },
4434 {
4435 "type" : "expression",
4436 "value" : {
4437 "type" : "expression",
4438 "value" : {
4439 "op" : "&",
4440 "left" : {
4441 "type" : "expression",
4442 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004443 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004444 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004445 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004446 "value" : ["ipv4", "total_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004447 },
4448 "right" : {
4449 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004450 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004451 }
4452 }
4453 },
4454 "right" : {
4455 "type" : "hexstr",
4456 "value" : "0xffff"
4457 }
4458 }
4459 }
4460 }
4461 ],
4462 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004463 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004464 "line" : 190,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004465 "column" : 8,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004466 "source_fragment" : "gtpu_ipv4.total_len = ipv4.total_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08004467 }
4468 },
4469 {
4470 "op" : "assign",
4471 "parameters" : [
4472 {
4473 "type" : "field",
4474 "value" : ["gtpu_ipv4", "identification"]
4475 },
4476 {
4477 "type" : "hexstr",
4478 "value" : "0x1513"
4479 }
4480 ],
4481 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004482 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004483 "line" : 192,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004484 "column" : 8,
4485 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
4486 }
4487 },
4488 {
4489 "op" : "assign",
4490 "parameters" : [
4491 {
4492 "type" : "field",
4493 "value" : ["gtpu_ipv4", "flags"]
4494 },
4495 {
4496 "type" : "hexstr",
4497 "value" : "0x00"
4498 }
4499 ],
4500 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004501 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004502 "line" : 193,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004503 "column" : 8,
4504 "source_fragment" : "gtpu_ipv4.flags = 0"
4505 }
4506 },
4507 {
4508 "op" : "assign",
4509 "parameters" : [
4510 {
4511 "type" : "field",
4512 "value" : ["gtpu_ipv4", "frag_offset"]
4513 },
4514 {
4515 "type" : "hexstr",
4516 "value" : "0x0000"
4517 }
4518 ],
4519 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004520 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004521 "line" : 194,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004522 "column" : 8,
4523 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
4524 }
4525 },
4526 {
4527 "op" : "assign",
4528 "parameters" : [
4529 {
4530 "type" : "field",
4531 "value" : ["gtpu_ipv4", "ttl"]
4532 },
4533 {
4534 "type" : "hexstr",
4535 "value" : "0x40"
4536 }
4537 ],
4538 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004539 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07004540 "line" : 124,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004541 "column" : 32,
4542 "source_fragment" : "64; ..."
4543 }
4544 },
4545 {
4546 "op" : "assign",
4547 "parameters" : [
4548 {
4549 "type" : "field",
4550 "value" : ["gtpu_ipv4", "protocol"]
4551 },
4552 {
4553 "type" : "hexstr",
4554 "value" : "0x11"
4555 }
4556 ],
4557 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004558 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07004559 "line" : 108,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004560 "column" : 25,
4561 "source_fragment" : "17; ..."
4562 }
4563 },
4564 {
4565 "op" : "assign",
4566 "parameters" : [
4567 {
4568 "type" : "field",
4569 "value" : ["gtpu_ipv4", "dst_addr"]
4570 },
4571 {
4572 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004573 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004574 }
4575 ],
4576 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004577 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004578 "line" : 197,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004579 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004580 "source_fragment" : "gtpu_ipv4.dst_addr = spgw_meta.s1u_enb_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004581 }
4582 },
4583 {
4584 "op" : "assign",
4585 "parameters" : [
4586 {
4587 "type" : "field",
4588 "value" : ["gtpu_ipv4", "src_addr"]
4589 },
4590 {
4591 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004592 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004593 }
4594 ],
4595 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004596 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004597 "line" : 198,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004598 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004599 "source_fragment" : "gtpu_ipv4.src_addr = spgw_meta.s1u_sgw_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004600 }
4601 },
4602 {
4603 "op" : "assign",
4604 "parameters" : [
4605 {
4606 "type" : "field",
4607 "value" : ["gtpu_ipv4", "hdr_checksum"]
4608 },
4609 {
4610 "type" : "hexstr",
4611 "value" : "0x0000"
4612 }
4613 ],
4614 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004615 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004616 "line" : 199,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004617 "column" : 8,
4618 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
4619 }
4620 },
4621 {
4622 "op" : "add_header",
4623 "parameters" : [
4624 {
4625 "type" : "header",
4626 "value" : "gtpu_udp"
4627 }
4628 ],
4629 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004630 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004631 "line" : 201,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004632 "column" : 8,
4633 "source_fragment" : "gtpu_udp.setValid()"
4634 }
4635 },
4636 {
4637 "op" : "assign",
4638 "parameters" : [
4639 {
4640 "type" : "field",
4641 "value" : ["gtpu_udp", "src_port"]
4642 },
4643 {
4644 "type" : "hexstr",
4645 "value" : "0x0868"
4646 }
4647 ],
4648 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004649 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004650 "line" : 202,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004651 "column" : 8,
4652 "source_fragment" : "gtpu_udp.src_port = 2152"
4653 }
4654 },
4655 {
4656 "op" : "assign",
4657 "parameters" : [
4658 {
4659 "type" : "field",
4660 "value" : ["gtpu_udp", "dst_port"]
4661 },
4662 {
4663 "type" : "hexstr",
4664 "value" : "0x0868"
4665 }
4666 ],
4667 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004668 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004669 "line" : 203,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004670 "column" : 8,
4671 "source_fragment" : "gtpu_udp.dst_port = 2152"
4672 }
4673 },
4674 {
4675 "op" : "assign",
4676 "parameters" : [
4677 {
4678 "type" : "field",
4679 "value" : ["gtpu_udp", "len"]
4680 },
4681 {
4682 "type" : "expression",
4683 "value" : {
4684 "type" : "expression",
4685 "value" : {
4686 "op" : "&",
4687 "left" : {
4688 "type" : "expression",
4689 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004690 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004691 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004692 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004693 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004694 },
4695 "right" : {
4696 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004697 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004698 }
4699 }
4700 },
4701 "right" : {
4702 "type" : "hexstr",
4703 "value" : "0xffff"
4704 }
4705 }
4706 }
4707 }
4708 ],
4709 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004710 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004711 "line" : 204,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004712 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004713 "source_fragment" : "gtpu_udp.len = spgw_meta.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004714 }
4715 },
4716 {
4717 "op" : "assign",
4718 "parameters" : [
4719 {
4720 "type" : "field",
4721 "value" : ["gtpu_udp", "checksum"]
4722 },
4723 {
4724 "type" : "hexstr",
4725 "value" : "0x0000"
4726 }
4727 ],
4728 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004729 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004730 "line" : 206,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004731 "column" : 8,
4732 "source_fragment" : "gtpu_udp.checksum = 0"
4733 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08004734 },
4735 {
4736 "op" : "add_header",
4737 "parameters" : [
4738 {
4739 "type" : "header",
4740 "value" : "gtpu"
4741 }
4742 ],
4743 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004744 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004745 "line" : 208,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004746 "column" : 8,
4747 "source_fragment" : "gtpu.setValid()"
4748 }
4749 },
4750 {
4751 "op" : "assign",
4752 "parameters" : [
4753 {
4754 "type" : "field",
4755 "value" : ["gtpu", "version"]
4756 },
4757 {
4758 "type" : "hexstr",
4759 "value" : "0x01"
4760 }
4761 ],
4762 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004763 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004764 "line" : 209,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004765 "column" : 8,
4766 "source_fragment" : "gtpu.version = 0x01"
4767 }
4768 },
4769 {
4770 "op" : "assign",
4771 "parameters" : [
4772 {
4773 "type" : "field",
4774 "value" : ["gtpu", "pt"]
4775 },
4776 {
4777 "type" : "hexstr",
4778 "value" : "0x01"
4779 }
4780 ],
4781 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004782 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004783 "line" : 210,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004784 "column" : 8,
4785 "source_fragment" : "gtpu.pt = 0x01"
4786 }
4787 },
4788 {
4789 "op" : "assign",
4790 "parameters" : [
4791 {
4792 "type" : "field",
4793 "value" : ["gtpu", "spare"]
4794 },
4795 {
4796 "type" : "hexstr",
4797 "value" : "0x00"
4798 }
4799 ],
4800 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004801 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004802 "line" : 211,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004803 "column" : 8,
4804 "source_fragment" : "gtpu.spare = 0"
4805 }
4806 },
4807 {
4808 "op" : "assign",
4809 "parameters" : [
4810 {
4811 "type" : "field",
4812 "value" : ["gtpu", "ex_flag"]
4813 },
4814 {
4815 "type" : "hexstr",
4816 "value" : "0x00"
4817 }
4818 ],
4819 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004820 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004821 "line" : 212,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004822 "column" : 8,
4823 "source_fragment" : "gtpu.ex_flag = 0"
4824 }
4825 },
4826 {
4827 "op" : "assign",
4828 "parameters" : [
4829 {
4830 "type" : "field",
4831 "value" : ["gtpu", "seq_flag"]
4832 },
4833 {
4834 "type" : "hexstr",
4835 "value" : "0x00"
4836 }
4837 ],
4838 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004839 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004840 "line" : 213,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004841 "column" : 8,
4842 "source_fragment" : "gtpu.seq_flag = 0"
4843 }
4844 },
4845 {
4846 "op" : "assign",
4847 "parameters" : [
4848 {
4849 "type" : "field",
4850 "value" : ["gtpu", "npdu_flag"]
4851 },
4852 {
4853 "type" : "hexstr",
4854 "value" : "0x00"
4855 }
4856 ],
4857 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004858 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004859 "line" : 214,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004860 "column" : 8,
4861 "source_fragment" : "gtpu.npdu_flag = 0"
4862 }
4863 },
4864 {
4865 "op" : "assign",
4866 "parameters" : [
4867 {
4868 "type" : "field",
4869 "value" : ["gtpu", "msgtype"]
4870 },
4871 {
4872 "type" : "hexstr",
4873 "value" : "0xff"
4874 }
4875 ],
4876 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004877 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004878 "line" : 215,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004879 "column" : 8,
4880 "source_fragment" : "gtpu.msgtype = 0xff"
4881 }
4882 },
4883 {
4884 "op" : "assign",
4885 "parameters" : [
4886 {
4887 "type" : "field",
4888 "value" : ["gtpu", "msglen"]
4889 },
4890 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004891 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004892 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004893 }
4894 ],
4895 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004896 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004897 "line" : 216,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004898 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004899 "source_fragment" : "gtpu.msglen = spgw_meta.ipv4_len"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004900 }
4901 },
4902 {
4903 "op" : "assign",
4904 "parameters" : [
4905 {
4906 "type" : "field",
4907 "value" : ["gtpu", "teid"]
4908 },
4909 {
4910 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004911 "value" : ["userMetadata.spgw", "teid"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004912 }
4913 ],
4914 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004915 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004916 "line" : 217,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004917 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004918 "source_fragment" : "gtpu.teid = spgw_meta.teid"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004919 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004920 }
4921 ]
4922 },
4923 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004924 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
Charles Chancd03f072018-08-31 17:46:37 -07004925 "id" : 71,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004926 "runtime_data" : [],
4927 "primitives" : [
4928 {
4929 "op" : "assign",
4930 "parameters" : [
4931 {
4932 "type" : "field",
4933 "value" : ["ethernet", "ether_type"]
4934 },
4935 {
4936 "type" : "field",
4937 "value" : ["vlan_tag", "ether_type"]
4938 }
4939 ],
4940 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004941 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07004942 "line" : 40,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004943 "column" : 8,
4944 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4945 }
4946 },
4947 {
4948 "op" : "remove_header",
4949 "parameters" : [
4950 {
4951 "type" : "header",
4952 "value" : "vlan_tag"
4953 }
4954 ],
4955 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004956 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07004957 "line" : 41,
Yi Tseng47eac892018-07-11 02:17:04 +08004958 "column" : 8,
4959 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4960 }
4961 }
4962 ]
4963 },
4964 {
4965 "name" : "FabricEgress.egress_next.pop_vlan",
Charles Chancd03f072018-08-31 17:46:37 -07004966 "id" : 72,
Yi Tseng47eac892018-07-11 02:17:04 +08004967 "runtime_data" : [],
4968 "primitives" : [
4969 {
4970 "op" : "assign",
4971 "parameters" : [
4972 {
4973 "type" : "field",
4974 "value" : ["ethernet", "ether_type"]
4975 },
4976 {
4977 "type" : "field",
4978 "value" : ["vlan_tag", "ether_type"]
4979 }
4980 ],
4981 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004982 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004983 "line" : 253,
Yi Tseng47eac892018-07-11 02:17:04 +08004984 "column" : 8,
4985 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4986 }
4987 },
4988 {
4989 "op" : "remove_header",
4990 "parameters" : [
4991 {
4992 "type" : "header",
4993 "value" : "vlan_tag"
4994 }
4995 ],
4996 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004997 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004998 "line" : 254,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004999 "column" : 8,
5000 "source_fragment" : "hdr.vlan_tag.setInvalid()"
5001 }
5002 }
5003 ]
5004 },
5005 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005006 "name" : "act_29",
Charles Chancd03f072018-08-31 17:46:37 -07005007 "id" : 73,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005008 "runtime_data" : [],
5009 "primitives" : [
5010 {
5011 "op" : "add_header",
5012 "parameters" : [
5013 {
5014 "type" : "header",
5015 "value" : "packet_in"
5016 }
5017 ],
5018 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005019 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07005020 "line" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005021 "column" : 12,
5022 "source_fragment" : "hdr.packet_in.setValid()"
5023 }
5024 },
5025 {
5026 "op" : "assign",
5027 "parameters" : [
5028 {
5029 "type" : "field",
5030 "value" : ["packet_in", "ingress_port"]
5031 },
5032 {
5033 "type" : "field",
5034 "value" : ["standard_metadata", "ingress_port"]
5035 }
5036 ],
5037 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005038 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07005039 "line" : 58,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005040 "column" : 12,
5041 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
5042 }
5043 }
5044 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005045 }
5046 ],
5047 "pipelines" : [
5048 {
5049 "name" : "ingress",
5050 "id" : 0,
5051 "source_info" : {
5052 "filename" : "fabric.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07005053 "line" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005054 "column" : 8,
5055 "source_fragment" : "FabricIngress"
5056 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005057 "init_table" : "tbl_act",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005058 "tables" : [
5059 {
5060 "name" : "tbl_act",
5061 "id" : 0,
5062 "key" : [],
5063 "match_type" : "exact",
5064 "type" : "simple",
5065 "max_size" : 1024,
5066 "with_counters" : false,
5067 "support_timeout" : false,
5068 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005069 "action_ids" : [38],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005070 "actions" : ["act_0"],
5071 "base_default_next" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005072 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005073 "act_0" : "node_3"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005074 },
5075 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005076 "action_id" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005077 "action_const" : true,
5078 "action_data" : [],
5079 "action_entry_const" : true
5080 }
5081 },
5082 {
5083 "name" : "tbl_act_0",
5084 "id" : 1,
5085 "key" : [],
5086 "match_type" : "exact",
5087 "type" : "simple",
5088 "max_size" : 1024,
5089 "with_counters" : false,
5090 "support_timeout" : false,
5091 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005092 "action_ids" : [37],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005093 "actions" : ["act"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005094 "base_default_next" : "node_5",
5095 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005096 "act" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005097 },
5098 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005099 "action_id" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005100 "action_const" : true,
5101 "action_data" : [],
5102 "action_entry_const" : true
5103 }
5104 },
5105 {
5106 "name" : "tbl_act_1",
5107 "id" : 2,
5108 "key" : [],
5109 "match_type" : "exact",
5110 "type" : "simple",
5111 "max_size" : 1024,
5112 "with_counters" : false,
5113 "support_timeout" : false,
5114 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005115 "action_ids" : [41],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005116 "actions" : ["act_3"],
5117 "base_default_next" : "node_7",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005118 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005119 "act_3" : "node_7"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005120 },
5121 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005122 "action_id" : 41,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005123 "action_const" : true,
5124 "action_data" : [],
5125 "action_entry_const" : true
5126 }
5127 },
5128 {
5129 "name" : "tbl_act_2",
5130 "id" : 3,
5131 "key" : [],
5132 "match_type" : "exact",
5133 "type" : "simple",
5134 "max_size" : 1024,
5135 "with_counters" : false,
5136 "support_timeout" : false,
5137 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005138 "action_ids" : [39],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005139 "actions" : ["act_1"],
5140 "base_default_next" : "node_10",
5141 "next_tables" : {
5142 "act_1" : "node_10"
5143 },
5144 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005145 "action_id" : 39,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005146 "action_const" : true,
5147 "action_data" : [],
5148 "action_entry_const" : true
5149 }
5150 },
5151 {
5152 "name" : "tbl_act_3",
5153 "id" : 4,
5154 "key" : [],
5155 "match_type" : "exact",
5156 "type" : "simple",
5157 "max_size" : 1024,
5158 "with_counters" : false,
5159 "support_timeout" : false,
5160 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005161 "action_ids" : [40],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005162 "actions" : ["act_2"],
5163 "base_default_next" : "node_10",
5164 "next_tables" : {
5165 "act_2" : "node_10"
5166 },
5167 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005168 "action_id" : 40,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005169 "action_const" : true,
5170 "action_data" : [],
5171 "action_entry_const" : true
5172 }
5173 },
5174 {
5175 "name" : "tbl_act_4",
5176 "id" : 5,
5177 "key" : [],
5178 "match_type" : "exact",
5179 "type" : "simple",
5180 "max_size" : 1024,
5181 "with_counters" : false,
5182 "support_timeout" : false,
5183 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005184 "action_ids" : [42],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005185 "actions" : ["act_4"],
5186 "base_default_next" : null,
5187 "next_tables" : {
5188 "act_4" : null
5189 },
5190 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005191 "action_id" : 42,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005192 "action_const" : true,
5193 "action_data" : [],
5194 "action_entry_const" : true
5195 }
5196 },
5197 {
5198 "name" : "tbl_act_5",
5199 "id" : 6,
5200 "key" : [],
5201 "match_type" : "exact",
5202 "type" : "simple",
5203 "max_size" : 1024,
5204 "with_counters" : false,
5205 "support_timeout" : false,
5206 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005207 "action_ids" : [50],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005208 "actions" : ["act_12"],
5209 "base_default_next" : "node_13",
5210 "next_tables" : {
5211 "act_12" : "node_13"
5212 },
5213 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005214 "action_id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005215 "action_const" : true,
5216 "action_data" : [],
5217 "action_entry_const" : true
5218 }
5219 },
5220 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005221 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005222 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005223 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005224 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005225 "line" : 79,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005226 "column" : 10,
5227 "source_fragment" : "s1u_filter_table"
5228 },
5229 "key" : [
5230 {
5231 "match_type" : "exact",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005232 "name" : "gtpu_ipv4.dst_addr",
5233 "target" : ["gtpu_ipv4", "dst_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005234 "mask" : null
5235 }
5236 ],
5237 "match_type" : "exact",
5238 "type" : "simple",
5239 "max_size" : 1024,
5240 "with_counters" : false,
5241 "support_timeout" : false,
5242 "direct_meters" : null,
5243 "action_ids" : [1],
5244 "actions" : ["NoAction"],
5245 "base_default_next" : null,
5246 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005247 "__HIT__" : "tbl_act_6",
5248 "__MISS__" : "tbl_act_7"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005249 },
5250 "default_entry" : {
5251 "action_id" : 1,
5252 "action_const" : false,
5253 "action_data" : [],
5254 "action_entry_const" : false
5255 }
5256 },
5257 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005258 "name" : "tbl_act_6",
5259 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005260 "key" : [],
5261 "match_type" : "exact",
5262 "type" : "simple",
5263 "max_size" : 1024,
5264 "with_counters" : false,
5265 "support_timeout" : false,
5266 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005267 "action_ids" : [43],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005268 "actions" : ["act_5"],
5269 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005270 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005271 "act_5" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005272 },
5273 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005274 "action_id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005275 "action_const" : true,
5276 "action_data" : [],
5277 "action_entry_const" : true
5278 }
5279 },
5280 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005281 "name" : "tbl_act_7",
5282 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005283 "key" : [],
5284 "match_type" : "exact",
5285 "type" : "simple",
5286 "max_size" : 1024,
5287 "with_counters" : false,
5288 "support_timeout" : false,
5289 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005290 "action_ids" : [44],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005291 "actions" : ["act_6"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005292 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005293 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005294 "act_6" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005295 },
5296 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005297 "action_id" : 44,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005298 "action_const" : true,
5299 "action_data" : [],
5300 "action_entry_const" : true
5301 }
5302 },
5303 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005304 "name" : "tbl_drop_now",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005305 "id" : 10,
5306 "key" : [],
5307 "match_type" : "exact",
5308 "type" : "simple",
5309 "max_size" : 1024,
5310 "with_counters" : false,
5311 "support_timeout" : false,
5312 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005313 "action_ids" : [9],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005314 "actions" : ["drop_now"],
5315 "base_default_next" : "tbl_act_8",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005316 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005317 "drop_now" : "tbl_act_8"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005318 },
5319 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005320 "action_id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005321 "action_const" : true,
5322 "action_data" : [],
5323 "action_entry_const" : true
5324 }
5325 },
5326 {
5327 "name" : "tbl_act_8",
5328 "id" : 11,
5329 "key" : [],
5330 "match_type" : "exact",
5331 "type" : "simple",
5332 "max_size" : 1024,
5333 "with_counters" : false,
5334 "support_timeout" : false,
5335 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005336 "action_ids" : [45],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005337 "actions" : ["act_7"],
5338 "base_default_next" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005339 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005340 "act_7" : "tbl_spgw_ingress_gtpu_decap"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005341 },
5342 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005343 "action_id" : 45,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005344 "action_const" : true,
5345 "action_data" : [],
5346 "action_entry_const" : true
5347 }
5348 },
5349 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005350 "name" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005351 "id" : 12,
5352 "key" : [],
5353 "match_type" : "exact",
5354 "type" : "simple",
5355 "max_size" : 1024,
5356 "with_counters" : false,
5357 "support_timeout" : false,
5358 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005359 "action_ids" : [10],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005360 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005361 "base_default_next" : "node_27",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005362 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005363 "FabricIngress.spgw_ingress.gtpu_decap" : "node_27"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005364 },
5365 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005366 "action_id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005367 "action_const" : true,
5368 "action_data" : [],
5369 "action_entry_const" : true
5370 }
5371 },
5372 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005373 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005374 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005375 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005376 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005377 "line" : 68,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005378 "column" : 10,
5379 "source_fragment" : "dl_sess_lookup"
5380 },
5381 "key" : [
5382 {
5383 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005384 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005385 "target" : ["ipv4", "dst_addr"],
5386 "mask" : null
5387 }
5388 ],
5389 "match_type" : "exact",
5390 "type" : "simple",
5391 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005392 "with_counters" : true,
5393 "support_timeout" : false,
5394 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005395 "action_ids" : [11, 0],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005396 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "NoAction"],
5397 "base_default_next" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005398 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005399 "__HIT__" : "tbl_act_9",
5400 "__MISS__" : "tbl_act_10"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005401 },
5402 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005403 "action_id" : 0,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005404 "action_const" : false,
5405 "action_data" : [],
5406 "action_entry_const" : false
5407 }
5408 },
5409 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005410 "name" : "tbl_act_9",
5411 "id" : 14,
5412 "key" : [],
5413 "match_type" : "exact",
5414 "type" : "simple",
5415 "max_size" : 1024,
5416 "with_counters" : false,
5417 "support_timeout" : false,
5418 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005419 "action_ids" : [46],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005420 "actions" : ["act_8"],
5421 "base_default_next" : "node_24",
5422 "next_tables" : {
5423 "act_8" : "node_24"
5424 },
5425 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005426 "action_id" : 46,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005427 "action_const" : true,
5428 "action_data" : [],
5429 "action_entry_const" : true
5430 }
5431 },
5432 {
5433 "name" : "tbl_act_10",
5434 "id" : 15,
5435 "key" : [],
5436 "match_type" : "exact",
5437 "type" : "simple",
5438 "max_size" : 1024,
5439 "with_counters" : false,
5440 "support_timeout" : false,
5441 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005442 "action_ids" : [47],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005443 "actions" : ["act_9"],
5444 "base_default_next" : "node_24",
5445 "next_tables" : {
5446 "act_9" : "node_24"
5447 },
5448 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005449 "action_id" : 47,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005450 "action_const" : true,
5451 "action_data" : [],
5452 "action_entry_const" : true
5453 }
5454 },
5455 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005456 "name" : "tbl_act_11",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005457 "id" : 16,
5458 "key" : [],
5459 "match_type" : "exact",
5460 "type" : "simple",
5461 "max_size" : 1024,
5462 "with_counters" : false,
5463 "support_timeout" : false,
5464 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005465 "action_ids" : [48],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005466 "actions" : ["act_10"],
5467 "base_default_next" : "node_27",
5468 "next_tables" : {
5469 "act_10" : "node_27"
5470 },
5471 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005472 "action_id" : 48,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005473 "action_const" : true,
5474 "action_data" : [],
5475 "action_entry_const" : true
5476 }
5477 },
5478 {
5479 "name" : "tbl_act_12",
5480 "id" : 17,
5481 "key" : [],
5482 "match_type" : "exact",
5483 "type" : "simple",
5484 "max_size" : 1024,
5485 "with_counters" : false,
5486 "support_timeout" : false,
5487 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005488 "action_ids" : [49],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005489 "actions" : ["act_11"],
5490 "base_default_next" : "node_27",
5491 "next_tables" : {
5492 "act_11" : "node_27"
5493 },
5494 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005495 "action_id" : 49,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005496 "action_const" : true,
5497 "action_data" : [],
5498 "action_entry_const" : true
5499 }
5500 },
5501 {
5502 "name" : "tbl_act_13",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005503 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005504 "key" : [],
5505 "match_type" : "exact",
5506 "type" : "simple",
5507 "max_size" : 1024,
5508 "with_counters" : false,
5509 "support_timeout" : false,
5510 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005511 "action_ids" : [51],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005512 "actions" : ["act_13"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005513 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
5514 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005515 "act_13" : "FabricIngress.filtering.ingress_port_vlan"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005516 },
5517 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005518 "action_id" : 51,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005519 "action_const" : true,
5520 "action_data" : [],
5521 "action_entry_const" : true
5522 }
5523 },
5524 {
5525 "name" : "FabricIngress.filtering.ingress_port_vlan",
5526 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005527 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005528 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005529 "line" : 66,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005530 "column" : 10,
5531 "source_fragment" : "ingress_port_vlan"
5532 },
5533 "key" : [
5534 {
5535 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005536 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005537 "target" : ["standard_metadata", "ingress_port"],
5538 "mask" : null
5539 },
5540 {
5541 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005542 "name" : "hdr.vlan_tag.is_valid",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005543 "target" : ["vlan_tag", "$valid$"],
5544 "mask" : null
5545 },
5546 {
5547 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005548 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005549 "target" : ["vlan_tag", "vlan_id"],
5550 "mask" : null
5551 }
5552 ],
5553 "match_type" : "ternary",
5554 "type" : "simple",
5555 "max_size" : 1024,
5556 "with_counters" : true,
5557 "support_timeout" : false,
5558 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005559 "action_ids" : [14, 13, 12, 15],
5560 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "FabricIngress.filtering.drop", "FabricIngress.filtering.nop_ingress_port_vlan"],
5561 "base_default_next" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005562 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005563 "__HIT__" : "tbl_act_14",
5564 "__MISS__" : "tbl_act_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005565 },
5566 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005567 "action_id" : 14,
5568 "action_const" : true,
5569 "action_data" : ["0xffe"],
5570 "action_entry_const" : true
5571 }
5572 },
5573 {
5574 "name" : "tbl_act_14",
5575 "id" : 20,
5576 "key" : [],
5577 "match_type" : "exact",
5578 "type" : "simple",
5579 "max_size" : 1024,
5580 "with_counters" : false,
5581 "support_timeout" : false,
5582 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005583 "action_ids" : [52],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005584 "actions" : ["act_14"],
5585 "base_default_next" : "node_32",
5586 "next_tables" : {
5587 "act_14" : "node_32"
5588 },
5589 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005590 "action_id" : 52,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005591 "action_const" : true,
5592 "action_data" : [],
5593 "action_entry_const" : true
5594 }
5595 },
5596 {
5597 "name" : "tbl_act_15",
5598 "id" : 21,
5599 "key" : [],
5600 "match_type" : "exact",
5601 "type" : "simple",
5602 "max_size" : 1024,
5603 "with_counters" : false,
5604 "support_timeout" : false,
5605 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005606 "action_ids" : [53],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005607 "actions" : ["act_15"],
5608 "base_default_next" : "node_32",
5609 "next_tables" : {
5610 "act_15" : "node_32"
5611 },
5612 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005613 "action_id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005614 "action_const" : true,
5615 "action_data" : [],
5616 "action_entry_const" : true
5617 }
5618 },
5619 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005620 "name" : "FabricIngress.filtering.fwd_classifier",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005621 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005622 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005623 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005624 "line" : 103,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005625 "column" : 10,
5626 "source_fragment" : "fwd_classifier"
5627 },
5628 "key" : [
5629 {
5630 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005631 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005632 "target" : ["standard_metadata", "ingress_port"],
5633 "mask" : null
5634 },
5635 {
Charles Chan384aea22018-08-23 22:08:02 -07005636 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005637 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005638 "target" : ["ethernet", "dst_addr"],
5639 "mask" : null
5640 },
5641 {
5642 "match_type" : "exact",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005643 "name" : "hdr.vlan_tag.ether_type",
5644 "target" : ["vlan_tag", "ether_type"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005645 "mask" : null
5646 }
5647 ],
Charles Chan384aea22018-08-23 22:08:02 -07005648 "match_type" : "ternary",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005649 "type" : "simple",
5650 "max_size" : 1024,
5651 "with_counters" : true,
5652 "support_timeout" : false,
5653 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005654 "action_ids" : [16],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005655 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005656 "base_default_next" : "node_35",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005657 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005658 "FabricIngress.filtering.set_forwarding_type" : "node_35"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005659 },
5660 "default_entry" : {
Charles Chancf696e52018-08-16 16:25:13 -07005661 "action_id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005662 "action_const" : true,
5663 "action_data" : ["0x0"],
5664 "action_entry_const" : true
5665 }
5666 },
5667 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005668 "name" : "tbl_act_16",
5669 "id" : 23,
5670 "key" : [],
5671 "match_type" : "exact",
5672 "type" : "simple",
5673 "max_size" : 1024,
5674 "with_counters" : false,
5675 "support_timeout" : false,
5676 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005677 "action_ids" : [54],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005678 "actions" : ["act_16"],
5679 "base_default_next" : "node_35",
5680 "next_tables" : {
5681 "act_16" : "node_35"
5682 },
5683 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005684 "action_id" : 54,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005685 "action_const" : true,
5686 "action_data" : [],
5687 "action_entry_const" : true
5688 }
5689 },
5690 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005691 "name" : "FabricIngress.forwarding.bridging",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005692 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005693 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005694 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005695 "line" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005696 "column" : 10,
5697 "source_fragment" : "bridging"
5698 },
5699 "key" : [
5700 {
5701 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005702 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005703 "target" : ["vlan_tag", "vlan_id"],
5704 "mask" : null
5705 },
5706 {
5707 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005708 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005709 "target" : ["ethernet", "dst_addr"],
5710 "mask" : null
5711 }
5712 ],
5713 "match_type" : "ternary",
5714 "type" : "simple",
5715 "max_size" : 1024,
5716 "with_counters" : true,
5717 "support_timeout" : false,
5718 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005719 "action_ids" : [17, 2],
Yi Tseng47eac892018-07-11 02:17:04 +08005720 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005721 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005722 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005723 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005724 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005725 },
5726 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005727 "action_id" : 2,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005728 "action_const" : false,
5729 "action_data" : [],
5730 "action_entry_const" : false
5731 }
5732 },
5733 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005734 "name" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005735 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005736 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005737 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005738 "line" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005739 "column" : 10,
5740 "source_fragment" : "mpls"
5741 },
5742 "key" : [
5743 {
5744 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005745 "name" : "hdr.mpls.label",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005746 "target" : ["mpls", "label"],
5747 "mask" : null
5748 }
5749 ],
5750 "match_type" : "exact",
5751 "type" : "simple",
5752 "max_size" : 1024,
5753 "with_counters" : true,
5754 "support_timeout" : false,
5755 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005756 "action_ids" : [18, 3],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005757 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005758 "base_default_next" : "tbl_act_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005759 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005760 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_17",
5761 "NoAction" : "tbl_act_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005762 },
5763 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005764 "action_id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005765 "action_const" : false,
5766 "action_data" : [],
5767 "action_entry_const" : false
5768 }
5769 },
5770 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005771 "name" : "tbl_act_17",
5772 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005773 "key" : [],
5774 "match_type" : "exact",
5775 "type" : "simple",
5776 "max_size" : 1024,
5777 "with_counters" : false,
5778 "support_timeout" : false,
5779 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005780 "action_ids" : [55],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005781 "actions" : ["act_17"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005782 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005783 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005784 "act_17" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005785 },
5786 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005787 "action_id" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005788 "action_const" : true,
5789 "action_data" : [],
5790 "action_entry_const" : true
5791 }
5792 },
5793 {
Charles Chan384aea22018-08-23 22:08:02 -07005794 "name" : "FabricIngress.forwarding.routing_v4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005795 "id" : 27,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005796 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005797 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07005798 "line" : 91,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005799 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07005800 "source_fragment" : "routing_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005801 },
5802 "key" : [
5803 {
5804 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005805 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005806 "target" : ["ipv4", "dst_addr"],
5807 "mask" : null
5808 }
5809 ],
5810 "match_type" : "lpm",
5811 "type" : "simple",
5812 "max_size" : 1024,
5813 "with_counters" : true,
5814 "support_timeout" : false,
5815 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005816 "action_ids" : [19, 20, 4],
5817 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005818 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005819 "next_tables" : {
Charles Chan384aea22018-08-23 22:08:02 -07005820 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.forwarding.acl",
Charles Chancd03f072018-08-31 17:46:37 -07005821 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005822 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005823 },
5824 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005825 "action_id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005826 "action_const" : false,
5827 "action_data" : [],
5828 "action_entry_const" : false
5829 }
5830 },
5831 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005832 "name" : "FabricIngress.forwarding.acl",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005833 "id" : 28,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005834 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005835 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07005836 "line" : 136,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005837 "column" : 10,
5838 "source_fragment" : "acl"
5839 },
5840 "key" : [
5841 {
5842 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005843 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005844 "target" : ["standard_metadata", "ingress_port"],
5845 "mask" : null
5846 },
5847 {
5848 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005849 "name" : "fabric_metadata.ip_proto",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005850 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
5851 "mask" : null
5852 },
5853 {
5854 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005855 "name" : "fabric_metadata.l4_src_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005856 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
5857 "mask" : null
5858 },
5859 {
5860 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005861 "name" : "fabric_metadata.l4_dst_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005862 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
5863 "mask" : null
5864 },
5865 {
5866 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005867 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005868 "target" : ["ethernet", "dst_addr"],
5869 "mask" : null
5870 },
5871 {
5872 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005873 "name" : "hdr.ethernet.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005874 "target" : ["ethernet", "src_addr"],
5875 "mask" : null
5876 },
5877 {
5878 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005879 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005880 "target" : ["vlan_tag", "vlan_id"],
5881 "mask" : null
5882 },
5883 {
5884 "match_type" : "ternary",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005885 "name" : "hdr.vlan_tag.ether_type",
5886 "target" : ["vlan_tag", "ether_type"],
5887 "mask" : null
5888 },
5889 {
5890 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005891 "name" : "hdr.ipv4.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005892 "target" : ["ipv4", "src_addr"],
5893 "mask" : null
5894 },
5895 {
5896 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005897 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005898 "target" : ["ipv4", "dst_addr"],
5899 "mask" : null
5900 },
5901 {
5902 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005903 "name" : "hdr.icmp.icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005904 "target" : ["icmp", "icmp_type"],
5905 "mask" : null
5906 },
5907 {
5908 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005909 "name" : "hdr.icmp.icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005910 "target" : ["icmp", "icmp_code"],
5911 "mask" : null
5912 }
5913 ],
5914 "match_type" : "ternary",
5915 "type" : "simple",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005916 "max_size" : 128,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005917 "with_counters" : true,
5918 "support_timeout" : false,
5919 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005920 "action_ids" : [21, 22, 23, 24, 25],
Charles Chancf696e52018-08-16 16:25:13 -07005921 "actions" : ["FabricIngress.forwarding.set_next_id_acl", "FabricIngress.forwarding.punt_to_cpu", "FabricIngress.forwarding.clone_to_cpu", "FabricIngress.forwarding.drop", "FabricIngress.forwarding.nop_acl"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005922 "base_default_next" : "tbl_act_18",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005923 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005924 "FabricIngress.forwarding.set_next_id_acl" : "tbl_act_18",
5925 "FabricIngress.forwarding.punt_to_cpu" : "tbl_act_18",
5926 "FabricIngress.forwarding.clone_to_cpu" : "tbl_act_18",
5927 "FabricIngress.forwarding.drop" : "tbl_act_18",
5928 "FabricIngress.forwarding.nop_acl" : "tbl_act_18"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005929 },
5930 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005931 "action_id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005932 "action_const" : true,
5933 "action_data" : [],
5934 "action_entry_const" : true
5935 }
5936 },
5937 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005938 "name" : "tbl_act_18",
5939 "id" : 29,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005940 "key" : [],
5941 "match_type" : "exact",
5942 "type" : "simple",
5943 "max_size" : 1024,
5944 "with_counters" : false,
5945 "support_timeout" : false,
5946 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005947 "action_ids" : [56],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005948 "actions" : ["act_18"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005949 "base_default_next" : "FabricIngress.next.vlan_meta",
5950 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005951 "act_18" : "FabricIngress.next.vlan_meta"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005952 },
5953 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005954 "action_id" : 56,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005955 "action_const" : true,
5956 "action_data" : [],
5957 "action_entry_const" : true
5958 }
5959 },
5960 {
5961 "name" : "FabricIngress.next.vlan_meta",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005962 "id" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005963 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005964 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005965 "line" : 65,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005966 "column" : 10,
5967 "source_fragment" : "vlan_meta"
5968 },
5969 "key" : [
5970 {
5971 "match_type" : "exact",
5972 "name" : "fabric_metadata.next_id",
5973 "target" : ["scalars", "fabric_metadata_t.next_id"],
5974 "mask" : null
5975 }
5976 ],
5977 "match_type" : "exact",
5978 "type" : "simple",
5979 "max_size" : 1024,
5980 "with_counters" : true,
5981 "support_timeout" : false,
5982 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005983 "action_ids" : [26, 8],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005984 "actions" : ["FabricIngress.next.set_vlan", "nop"],
5985 "base_default_next" : "FabricIngress.next.simple",
5986 "next_tables" : {
5987 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
5988 "nop" : "FabricIngress.next.simple"
5989 },
5990 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005991 "action_id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005992 "action_const" : false,
5993 "action_data" : [],
5994 "action_entry_const" : false
5995 }
5996 },
5997 {
5998 "name" : "FabricIngress.next.simple",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005999 "id" : 31,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006000 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006001 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08006002 "line" : 122,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006003 "column" : 10,
6004 "source_fragment" : "simple"
6005 },
6006 "key" : [
6007 {
6008 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006009 "name" : "fabric_metadata.next_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006010 "target" : ["scalars", "fabric_metadata_t.next_id"],
6011 "mask" : null
6012 }
6013 ],
6014 "match_type" : "exact",
6015 "type" : "simple",
6016 "max_size" : 1024,
6017 "with_counters" : true,
6018 "support_timeout" : false,
6019 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006020 "action_ids" : [27, 28, 29, 30, 31, 32, 5],
Yi Tseng47eac892018-07-11 02:17:04 +08006021 "actions" : ["FabricIngress.next.output_simple", "FabricIngress.next.set_vlan_output", "FabricIngress.next.l3_routing_simple", "FabricIngress.next.mpls_routing_v4_simple", "FabricIngress.next.mpls_routing_v6_simple", "FabricIngress.next.l3_routing_vlan", "NoAction"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006022 "base_default_next" : null,
6023 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006024 "__HIT__" : "tbl_act_19",
6025 "__MISS__" : "tbl_act_20"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006026 },
6027 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006028 "action_id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006029 "action_const" : false,
6030 "action_data" : [],
6031 "action_entry_const" : false
6032 }
6033 },
6034 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006035 "name" : "tbl_act_19",
6036 "id" : 32,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006037 "key" : [],
6038 "match_type" : "exact",
6039 "type" : "simple",
6040 "max_size" : 1024,
6041 "with_counters" : false,
6042 "support_timeout" : false,
6043 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006044 "action_ids" : [57],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006045 "actions" : ["act_19"],
6046 "base_default_next" : "node_48",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006047 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006048 "act_19" : "node_48"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006049 },
6050 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006051 "action_id" : 57,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006052 "action_const" : true,
6053 "action_data" : [],
6054 "action_entry_const" : true
6055 }
6056 },
6057 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006058 "name" : "tbl_act_20",
6059 "id" : 33,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006060 "key" : [],
6061 "match_type" : "exact",
6062 "type" : "simple",
6063 "max_size" : 1024,
6064 "with_counters" : false,
6065 "support_timeout" : false,
6066 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006067 "action_ids" : [58],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006068 "actions" : ["act_20"],
6069 "base_default_next" : "node_48",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006070 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006071 "act_20" : "node_48"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006072 },
6073 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006074 "action_id" : 58,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006075 "action_const" : true,
6076 "action_data" : [],
6077 "action_entry_const" : true
6078 }
6079 },
6080 {
6081 "name" : "FabricIngress.next.hashed",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006082 "id" : 34,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006083 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006084 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08006085 "line" : 175,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006086 "column" : 10,
6087 "source_fragment" : "hashed"
6088 },
6089 "key" : [
6090 {
6091 "match_type" : "exact",
6092 "name" : "fabric_metadata.next_id",
6093 "target" : ["scalars", "fabric_metadata_t.next_id"],
6094 "mask" : null
6095 }
6096 ],
6097 "match_type" : "exact",
6098 "type" : "indirect_ws",
6099 "action_profile" : "FabricIngress.next.ecmp_selector",
6100 "max_size" : 1024,
6101 "with_counters" : true,
6102 "support_timeout" : false,
6103 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006104 "action_ids" : [33, 34, 35, 6],
Yi Tseng47eac892018-07-11 02:17:04 +08006105 "actions" : ["FabricIngress.next.l3_routing_hashed", "FabricIngress.next.mpls_routing_v4_hashed", "FabricIngress.next.mpls_routing_v6_hashed", "NoAction"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006106 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006107 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006108 "__HIT__" : "tbl_act_21",
6109 "__MISS__" : "tbl_act_22"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006110 }
6111 },
6112 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006113 "name" : "tbl_act_21",
6114 "id" : 35,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006115 "key" : [],
6116 "match_type" : "exact",
6117 "type" : "simple",
6118 "max_size" : 1024,
6119 "with_counters" : false,
6120 "support_timeout" : false,
6121 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006122 "action_ids" : [59],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006123 "actions" : ["act_21"],
6124 "base_default_next" : "node_52",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006125 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006126 "act_21" : "node_52"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006127 },
6128 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006129 "action_id" : 59,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006130 "action_const" : true,
6131 "action_data" : [],
6132 "action_entry_const" : true
6133 }
6134 },
6135 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006136 "name" : "tbl_act_22",
6137 "id" : 36,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006138 "key" : [],
6139 "match_type" : "exact",
6140 "type" : "simple",
6141 "max_size" : 1024,
6142 "with_counters" : false,
6143 "support_timeout" : false,
6144 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006145 "action_ids" : [60],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006146 "actions" : ["act_22"],
6147 "base_default_next" : "node_52",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006148 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006149 "act_22" : "node_52"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006150 },
6151 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006152 "action_id" : 60,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006153 "action_const" : true,
6154 "action_data" : [],
6155 "action_entry_const" : true
Esin Karaman971fb7f2017-12-28 13:44:52 +00006156 }
6157 },
6158 {
6159 "name" : "FabricIngress.next.multicast",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006160 "id" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006161 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006162 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006163 "line" : 207,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006164 "column" : 10,
6165 "source_fragment" : "multicast"
6166 },
6167 "key" : [
6168 {
6169 "match_type" : "exact",
6170 "name" : "fabric_metadata.next_id",
6171 "target" : ["scalars", "fabric_metadata_t.next_id"],
6172 "mask" : null
6173 }
6174 ],
6175 "match_type" : "exact",
6176 "type" : "simple",
6177 "max_size" : 1024,
6178 "with_counters" : true,
6179 "support_timeout" : false,
6180 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006181 "action_ids" : [36, 7],
Esin Karaman971fb7f2017-12-28 13:44:52 +00006182 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006183 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006184 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006185 "__HIT__" : "tbl_act_23",
6186 "__MISS__" : "tbl_act_24"
Esin Karaman971fb7f2017-12-28 13:44:52 +00006187 },
6188 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006189 "action_id" : 7,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006190 "action_const" : false,
6191 "action_data" : [],
6192 "action_entry_const" : false
Yi Tseng27b9bc02018-04-12 14:52:40 +08006193 }
6194 },
6195 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006196 "name" : "tbl_act_23",
6197 "id" : 38,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006198 "key" : [],
6199 "match_type" : "exact",
6200 "type" : "simple",
6201 "max_size" : 1024,
6202 "with_counters" : false,
6203 "support_timeout" : false,
6204 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006205 "action_ids" : [61],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006206 "actions" : ["act_23"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006207 "base_default_next" : "node_56",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006208 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006209 "act_23" : "node_56"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006210 },
6211 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006212 "action_id" : 61,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006213 "action_const" : true,
6214 "action_data" : [],
6215 "action_entry_const" : true
6216 }
6217 },
6218 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006219 "name" : "tbl_act_24",
6220 "id" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006221 "key" : [],
6222 "match_type" : "exact",
6223 "type" : "simple",
6224 "max_size" : 1024,
6225 "with_counters" : false,
6226 "support_timeout" : false,
6227 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006228 "action_ids" : [62],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006229 "actions" : ["act_24"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006230 "base_default_next" : "node_56",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006231 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006232 "act_24" : "node_56"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006233 },
6234 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006235 "action_id" : 62,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006236 "action_const" : true,
6237 "action_data" : [],
6238 "action_entry_const" : true
6239 }
6240 },
6241 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006242 "name" : "tbl_act_25",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006243 "id" : 40,
6244 "key" : [],
6245 "match_type" : "exact",
6246 "type" : "simple",
6247 "max_size" : 1024,
6248 "with_counters" : false,
6249 "support_timeout" : false,
6250 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006251 "action_ids" : [63],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006252 "actions" : ["act_25"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006253 "base_default_next" : "node_58",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006254 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006255 "act_25" : "node_58"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006256 },
6257 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006258 "action_id" : 63,
Carmelo Cascone14cde402018-01-25 01:57:18 -08006259 "action_const" : true,
6260 "action_data" : [],
6261 "action_entry_const" : true
6262 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006263 },
6264 {
6265 "name" : "tbl_act_26",
6266 "id" : 41,
6267 "key" : [],
6268 "match_type" : "exact",
6269 "type" : "simple",
6270 "max_size" : 1024,
6271 "with_counters" : false,
6272 "support_timeout" : false,
6273 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006274 "action_ids" : [64],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006275 "actions" : ["act_26"],
6276 "base_default_next" : "node_62",
6277 "next_tables" : {
6278 "act_26" : "node_62"
6279 },
6280 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006281 "action_id" : 64,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006282 "action_const" : true,
6283 "action_data" : [],
6284 "action_entry_const" : true
6285 }
6286 },
6287 {
6288 "name" : "tbl_act_27",
6289 "id" : 42,
6290 "key" : [],
6291 "match_type" : "exact",
6292 "type" : "simple",
6293 "max_size" : 1024,
6294 "with_counters" : false,
6295 "support_timeout" : false,
6296 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006297 "action_ids" : [65],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006298 "actions" : ["act_27"],
6299 "base_default_next" : "node_64",
6300 "next_tables" : {
6301 "act_27" : "node_64"
6302 },
6303 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006304 "action_id" : 65,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006305 "action_const" : true,
6306 "action_data" : [],
6307 "action_entry_const" : true
6308 }
6309 },
6310 {
6311 "name" : "tbl_act_28",
6312 "id" : 43,
6313 "key" : [],
6314 "match_type" : "exact",
6315 "type" : "simple",
6316 "max_size" : 1024,
6317 "with_counters" : false,
6318 "support_timeout" : false,
6319 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006320 "action_ids" : [66],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006321 "actions" : ["act_28"],
6322 "base_default_next" : null,
6323 "next_tables" : {
6324 "act_28" : null
6325 },
6326 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006327 "action_id" : 66,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006328 "action_const" : true,
6329 "action_data" : [],
6330 "action_entry_const" : true
6331 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006332 }
6333 ],
6334 "action_profiles" : [
6335 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006336 "name" : "FabricIngress.next.ecmp_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006337 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006338 "source_info" : {
6339 "filename" : "include/control/next.p4",
6340 "line" : 145,
6341 "column" : 55,
6342 "source_fragment" : "ecmp_selector"
6343 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006344 "max_size" : 64,
6345 "selector" : {
6346 "algo" : "crc16",
6347 "input" : [
6348 {
6349 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08006350 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006351 },
6352 {
6353 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08006354 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006355 },
6356 {
6357 "type" : "field",
6358 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
6359 },
6360 {
6361 "type" : "field",
6362 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
6363 },
6364 {
6365 "type" : "field",
6366 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
6367 }
6368 ]
6369 }
6370 }
6371 ],
6372 "conditionals" : [
6373 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006374 "name" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006375 "id" : 0,
6376 "source_info" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006377 "filename" : "include/spgw.p4",
6378 "line" : 30,
6379 "column" : 12,
6380 "source_fragment" : "! is_gtpu_encapped"
6381 },
6382 "expression" : {
6383 "type" : "expression",
6384 "value" : {
6385 "op" : "not",
6386 "left" : null,
6387 "right" : {
6388 "type" : "expression",
6389 "value" : {
6390 "op" : "d2b",
6391 "left" : null,
6392 "right" : {
6393 "type" : "field",
6394 "value" : ["gtpu", "$valid$"]
6395 }
6396 }
6397 }
6398 }
6399 },
6400 "true_next" : "tbl_act_0",
6401 "false_next" : "node_5"
6402 },
6403 {
6404 "name" : "node_5",
6405 "id" : 1,
6406 "expression" : {
6407 "type" : "expression",
6408 "value" : {
6409 "op" : "not",
6410 "left" : null,
6411 "right" : {
6412 "type" : "expression",
6413 "value" : {
6414 "op" : "d2b",
6415 "left" : null,
6416 "right" : {
6417 "type" : "field",
6418 "value" : ["scalars", "spgw_normalizer_hasReturned_0"]
6419 }
6420 }
6421 }
6422 }
6423 },
6424 "true_next" : "tbl_act_1",
6425 "false_next" : "node_10"
6426 },
6427 {
6428 "name" : "node_7",
6429 "id" : 2,
6430 "source_info" : {
6431 "filename" : "include/spgw.p4",
6432 "line" : 34,
6433 "column" : 12,
6434 "source_fragment" : "inner_udp.isValid()"
6435 },
6436 "expression" : {
6437 "type" : "expression",
6438 "value" : {
6439 "op" : "d2b",
6440 "left" : null,
6441 "right" : {
6442 "type" : "field",
6443 "value" : ["inner_udp", "$valid$"]
6444 }
6445 }
6446 },
6447 "true_next" : "tbl_act_2",
6448 "false_next" : "tbl_act_3"
6449 },
6450 {
6451 "name" : "node_10",
6452 "id" : 3,
6453 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006454 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006455 "line" : 25,
6456 "column" : 12,
6457 "source_fragment" : "hdr.packet_out.isValid()"
6458 },
6459 "expression" : {
6460 "type" : "expression",
6461 "value" : {
6462 "op" : "d2b",
6463 "left" : null,
6464 "right" : {
6465 "type" : "field",
6466 "value" : ["packet_out", "$valid$"]
6467 }
6468 }
6469 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006470 "true_next" : "tbl_act_4",
6471 "false_next" : "tbl_act_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006472 },
6473 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006474 "name" : "node_13",
6475 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006476 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006477 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006478 "line" : 139,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006479 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006480 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006481 },
6482 "expression" : {
6483 "type" : "expression",
6484 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006485 "op" : "d2b",
6486 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006487 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006488 "type" : "field",
6489 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006490 }
6491 }
6492 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006493 "true_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
6494 "false_next" : "FabricIngress.spgw_ingress.dl_sess_lookup"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006495 },
6496 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006497 "name" : "node_17",
6498 "id" : 5,
6499 "source_info" : {
6500 "filename" : "include/spgw.p4",
6501 "line" : 143,
6502 "column" : 16,
6503 "source_fragment" : "!s1u_filter_table.apply().hit"
6504 },
6505 "expression" : {
6506 "type" : "expression",
6507 "value" : {
6508 "op" : "not",
6509 "left" : null,
6510 "right" : {
6511 "type" : "expression",
6512 "value" : {
6513 "op" : "d2b",
6514 "left" : null,
6515 "right" : {
6516 "type" : "field",
6517 "value" : ["scalars", "spgw_ingress_tmp_1"]
6518 }
6519 }
6520 }
6521 }
6522 },
6523 "true_next" : "tbl_drop_now",
6524 "false_next" : "tbl_act_8"
6525 },
6526 {
6527 "name" : "node_24",
6528 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006529 "expression" : {
6530 "type" : "expression",
6531 "value" : {
6532 "op" : "d2b",
6533 "left" : null,
6534 "right" : {
6535 "type" : "field",
6536 "value" : ["scalars", "spgw_ingress_tmp_2"]
6537 }
6538 }
6539 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006540 "true_next" : "tbl_act_11",
6541 "false_next" : "tbl_act_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006542 },
6543 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006544 "name" : "node_27",
6545 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006546 "expression" : {
6547 "type" : "expression",
6548 "value" : {
6549 "op" : "not",
6550 "left" : null,
6551 "right" : {
6552 "type" : "expression",
6553 "value" : {
6554 "op" : "d2b",
6555 "left" : null,
6556 "right" : {
6557 "type" : "field",
6558 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
6559 }
6560 }
6561 }
6562 }
6563 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006564 "true_next" : "tbl_act_13",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006565 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006566 },
6567 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006568 "name" : "node_32",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006569 "id" : 8,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006570 "expression" : {
6571 "type" : "expression",
6572 "value" : {
6573 "op" : "d2b",
6574 "left" : null,
6575 "right" : {
6576 "type" : "field",
6577 "value" : ["scalars", "filtering_tmp_0"]
6578 }
6579 }
6580 },
6581 "true_next" : "FabricIngress.filtering.fwd_classifier",
6582 "false_next" : "tbl_act_16"
6583 },
6584 {
6585 "name" : "node_35",
6586 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006587 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006588 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07006589 "line" : 191,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006590 "column" : 11,
6591 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
6592 },
6593 "expression" : {
6594 "type" : "expression",
6595 "value" : {
6596 "op" : "==",
6597 "left" : {
6598 "type" : "field",
6599 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6600 },
6601 "right" : {
6602 "type" : "hexstr",
6603 "value" : "0x00"
6604 }
6605 }
6606 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006607 "true_next" : "FabricIngress.forwarding.bridging",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006608 "false_next" : "node_37"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006609 },
6610 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006611 "name" : "node_37",
6612 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006613 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006614 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07006615 "line" : 192,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006616 "column" : 17,
6617 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
6618 },
6619 "expression" : {
6620 "type" : "expression",
6621 "value" : {
6622 "op" : "==",
6623 "left" : {
6624 "type" : "field",
6625 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6626 },
6627 "right" : {
6628 "type" : "hexstr",
6629 "value" : "0x01"
6630 }
6631 }
6632 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006633 "true_next" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006634 "false_next" : "node_40"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006635 },
6636 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006637 "name" : "node_40",
6638 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006639 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006640 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07006641 "line" : 198,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006642 "column" : 17,
6643 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
6644 },
6645 "expression" : {
6646 "type" : "expression",
6647 "value" : {
6648 "op" : "==",
6649 "left" : {
6650 "type" : "field",
6651 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6652 },
6653 "right" : {
6654 "type" : "hexstr",
6655 "value" : "0x02"
6656 }
6657 }
6658 },
Charles Chan384aea22018-08-23 22:08:02 -07006659 "true_next" : "FabricIngress.forwarding.routing_v4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006660 "false_next" : "FabricIngress.forwarding.acl"
6661 },
6662 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006663 "name" : "node_48",
6664 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006665 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006666 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08006667 "line" : 219,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006668 "column" : 12,
6669 "source_fragment" : "!simple.apply().hit"
6670 },
6671 "expression" : {
6672 "type" : "expression",
6673 "value" : {
6674 "op" : "not",
6675 "left" : null,
6676 "right" : {
6677 "type" : "expression",
6678 "value" : {
6679 "op" : "d2b",
6680 "left" : null,
6681 "right" : {
6682 "type" : "field",
6683 "value" : ["scalars", "next_tmp_4"]
6684 }
6685 }
6686 }
6687 }
6688 },
6689 "true_next" : "FabricIngress.next.hashed",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006690 "false_next" : "node_58"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006691 },
6692 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006693 "name" : "node_52",
6694 "id" : 13,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006695 "source_info" : {
6696 "filename" : "include/control/next.p4",
6697 "line" : 220,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006698 "column" : 16,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006699 "source_fragment" : "!hashed.apply().hit"
6700 },
6701 "expression" : {
6702 "type" : "expression",
6703 "value" : {
6704 "op" : "not",
6705 "left" : null,
6706 "right" : {
6707 "type" : "expression",
6708 "value" : {
6709 "op" : "d2b",
6710 "left" : null,
6711 "right" : {
6712 "type" : "field",
6713 "value" : ["scalars", "next_tmp_3"]
6714 }
6715 }
6716 }
6717 }
6718 },
6719 "true_next" : "FabricIngress.next.multicast",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006720 "false_next" : "node_58"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006721 },
6722 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006723 "name" : "node_56",
6724 "id" : 14,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006725 "source_info" : {
6726 "filename" : "include/control/next.p4",
6727 "line" : 221,
6728 "column" : 20,
6729 "source_fragment" : "!multicast.apply().hit"
6730 },
6731 "expression" : {
6732 "type" : "expression",
6733 "value" : {
6734 "op" : "not",
6735 "left" : null,
6736 "right" : {
6737 "type" : "expression",
6738 "value" : {
6739 "op" : "d2b",
6740 "left" : null,
6741 "right" : {
6742 "type" : "field",
6743 "value" : ["scalars", "next_tmp_2"]
6744 }
6745 }
6746 }
6747 }
6748 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006749 "true_next" : "tbl_act_25",
6750 "false_next" : "node_58"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006751 },
6752 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006753 "name" : "node_58",
6754 "id" : 15,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006755 "expression" : {
6756 "type" : "expression",
6757 "value" : {
6758 "op" : "not",
6759 "left" : null,
6760 "right" : {
6761 "type" : "expression",
6762 "value" : {
6763 "op" : "d2b",
6764 "left" : null,
6765 "right" : {
6766 "type" : "field",
6767 "value" : ["scalars", "next_hasReturned_0"]
6768 }
6769 }
6770 }
6771 }
6772 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006773 "true_next" : "node_59",
6774 "false_next" : "node_62"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006775 },
6776 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006777 "name" : "node_59",
6778 "id" : 16,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006779 "source_info" : {
6780 "filename" : "include/control/next.p4",
6781 "line" : 228,
6782 "column" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006783 "source_fragment" : "!hdr.mpls.isValid()"
6784 },
6785 "expression" : {
6786 "type" : "expression",
6787 "value" : {
6788 "op" : "not",
6789 "left" : null,
6790 "right" : {
6791 "type" : "expression",
6792 "value" : {
6793 "op" : "d2b",
6794 "left" : null,
6795 "right" : {
6796 "type" : "field",
6797 "value" : ["mpls", "$valid$"]
6798 }
6799 }
6800 }
6801 }
6802 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006803 "true_next" : "node_60",
6804 "false_next" : "node_62"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006805 },
6806 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006807 "name" : "node_60",
6808 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006809 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006810 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006811 "line" : 229,
6812 "column" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006813 "source_fragment" : "hdr.ipv4.isValid()"
6814 },
6815 "expression" : {
6816 "type" : "expression",
6817 "value" : {
6818 "op" : "d2b",
6819 "left" : null,
6820 "right" : {
6821 "type" : "field",
6822 "value" : ["ipv4", "$valid$"]
6823 }
6824 }
6825 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006826 "true_next" : "tbl_act_26",
6827 "false_next" : "node_62"
Yi Tseng27b9bc02018-04-12 14:52:40 +08006828 },
6829 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006830 "name" : "node_62",
6831 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006832 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006833 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006834 "line" : 27,
6835 "column" : 12,
6836 "source_fragment" : "standard_metadata.egress_spec < 511"
6837 },
6838 "expression" : {
6839 "type" : "expression",
6840 "value" : {
6841 "op" : "<",
6842 "left" : {
6843 "type" : "field",
6844 "value" : ["standard_metadata", "egress_spec"]
6845 },
6846 "right" : {
6847 "type" : "hexstr",
6848 "value" : "0x01ff"
6849 }
6850 }
6851 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006852 "true_next" : "tbl_act_27",
6853 "false_next" : "node_64"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006854 },
6855 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006856 "name" : "node_64",
6857 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006858 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006859 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006860 "line" : 30,
6861 "column" : 12,
6862 "source_fragment" : "standard_metadata.ingress_port < 511"
6863 },
6864 "expression" : {
6865 "type" : "expression",
6866 "value" : {
6867 "op" : "<",
6868 "left" : {
6869 "type" : "field",
6870 "value" : ["standard_metadata", "ingress_port"]
6871 },
6872 "right" : {
6873 "type" : "hexstr",
6874 "value" : "0x01ff"
6875 }
6876 }
6877 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006878 "false_next" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006879 "true_next" : "tbl_act_28"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006880 }
6881 ]
6882 },
6883 {
6884 "name" : "egress",
6885 "id" : 1,
6886 "source_info" : {
6887 "filename" : "fabric.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006888 "line" : 80,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006889 "column" : 8,
6890 "source_fragment" : "FabricEgress"
6891 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006892 "init_table" : "node_68",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006893 "tables" : [
6894 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006895 "name" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006896 "id" : 44,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006897 "key" : [],
6898 "match_type" : "exact",
6899 "type" : "simple",
6900 "max_size" : 1024,
6901 "with_counters" : false,
6902 "support_timeout" : false,
6903 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006904 "action_ids" : [71],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006905 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
6906 "base_default_next" : "node_72",
6907 "next_tables" : {
6908 "FabricEgress.pkt_io_egress.pop_vlan" : "node_72"
6909 },
6910 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006911 "action_id" : 71,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006912 "action_const" : true,
6913 "action_data" : [],
6914 "action_entry_const" : true
6915 }
6916 },
6917 {
6918 "name" : "tbl_drop_now_0",
6919 "id" : 45,
6920 "key" : [],
6921 "match_type" : "exact",
6922 "type" : "simple",
6923 "max_size" : 1024,
6924 "with_counters" : false,
6925 "support_timeout" : false,
6926 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006927 "action_ids" : [68],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006928 "actions" : ["drop_now"],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006929 "base_default_next" : "tbl_act_29",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006930 "next_tables" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006931 "drop_now" : "tbl_act_29"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006932 },
6933 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006934 "action_id" : 68,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006935 "action_const" : true,
6936 "action_data" : [],
6937 "action_entry_const" : true
6938 }
6939 },
6940 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006941 "name" : "tbl_act_29",
6942 "id" : 46,
6943 "key" : [],
6944 "match_type" : "exact",
6945 "type" : "simple",
6946 "max_size" : 1024,
6947 "with_counters" : false,
6948 "support_timeout" : false,
6949 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006950 "action_ids" : [73],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006951 "actions" : ["act_29"],
6952 "base_default_next" : null,
6953 "next_tables" : {
6954 "act_29" : null
6955 },
6956 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006957 "action_id" : 73,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006958 "action_const" : true,
6959 "action_data" : [],
6960 "action_entry_const" : true
6961 }
6962 },
6963 {
6964 "name" : "tbl_drop_now_1",
6965 "id" : 47,
6966 "key" : [],
6967 "match_type" : "exact",
6968 "type" : "simple",
6969 "max_size" : 1024,
6970 "with_counters" : false,
6971 "support_timeout" : false,
6972 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006973 "action_ids" : [69],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006974 "actions" : ["drop_now"],
6975 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6976 "next_tables" : {
6977 "drop_now" : "FabricEgress.egress_next.egress_vlan"
6978 },
6979 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006980 "action_id" : 69,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006981 "action_const" : true,
6982 "action_data" : [],
6983 "action_entry_const" : true
6984 }
6985 },
6986 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006987 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006988 "id" : 48,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006989 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006990 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006991 "line" : 258,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006992 "column" : 10,
6993 "source_fragment" : "egress_vlan"
6994 },
6995 "key" : [
6996 {
6997 "match_type" : "exact",
6998 "name" : "hdr.vlan_tag.vlan_id",
6999 "target" : ["vlan_tag", "vlan_id"],
7000 "mask" : null
7001 },
7002 {
7003 "match_type" : "exact",
7004 "name" : "standard_metadata.egress_port",
7005 "target" : ["standard_metadata", "egress_port"],
7006 "mask" : null
7007 }
7008 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08007009 "match_type" : "exact",
7010 "type" : "simple",
7011 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08007012 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08007013 "support_timeout" : false,
7014 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07007015 "action_ids" : [72, 67],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007016 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007017 "base_default_next" : "node_78",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08007018 "next_tables" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007019 "FabricEgress.egress_next.pop_vlan" : "node_78",
7020 "nop" : "node_78"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08007021 },
7022 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07007023 "action_id" : 67,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007024 "action_const" : false,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08007025 "action_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007026 "action_entry_const" : false
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08007027 }
7028 },
7029 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007030 "name" : "tbl_spgw_egress_gtpu_encap",
7031 "id" : 49,
7032 "key" : [],
7033 "match_type" : "exact",
7034 "type" : "simple",
7035 "max_size" : 1024,
7036 "with_counters" : false,
7037 "support_timeout" : false,
7038 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07007039 "action_ids" : [70],
Yi Tseng27b9bc02018-04-12 14:52:40 +08007040 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007041 "base_default_next" : null,
7042 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08007043 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007044 },
7045 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07007046 "action_id" : 70,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007047 "action_const" : true,
7048 "action_data" : [],
7049 "action_entry_const" : true
7050 }
7051 }
7052 ],
7053 "action_profiles" : [],
7054 "conditionals" : [
7055 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007056 "name" : "node_68",
7057 "id" : 20,
Carmelo Casconea5400af2018-07-17 22:11:54 +02007058 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007059 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07007060 "line" : 44,
Carmelo Casconea5400af2018-07-17 22:11:54 +02007061 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007062 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02007063 },
7064 "expression" : {
7065 "type" : "expression",
7066 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007067 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02007068 "left" : {
7069 "type" : "expression",
7070 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007071 "op" : "d2b",
7072 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02007073 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007074 "type" : "field",
7075 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02007076 }
7077 }
7078 },
7079 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007080 "type" : "bool",
7081 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02007082 }
7083 }
7084 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007085 "true_next" : null,
7086 "false_next" : "node_69"
Carmelo Casconea5400af2018-07-17 22:11:54 +02007087 },
7088 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007089 "name" : "node_69",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007090 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007091 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007092 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07007093 "line" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007094 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08007095 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007096 },
7097 "expression" : {
7098 "type" : "expression",
7099 "value" : {
7100 "op" : "==",
7101 "left" : {
7102 "type" : "field",
7103 "value" : ["standard_metadata", "egress_port"]
7104 },
7105 "right" : {
7106 "type" : "hexstr",
7107 "value" : "0x00ff"
7108 }
7109 }
7110 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007111 "true_next" : "node_70",
7112 "false_next" : "node_75"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007113 },
7114 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007115 "name" : "node_70",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007116 "id" : 22,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007117 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007118 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07007119 "line" : 49,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007120 "column" : 16,
Carmelo Cascone228092b2018-06-15 20:41:10 +02007121 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in == true"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007122 },
7123 "expression" : {
7124 "type" : "expression",
7125 "value" : {
7126 "op" : "and",
7127 "left" : {
7128 "type" : "expression",
7129 "value" : {
7130 "op" : "d2b",
7131 "left" : null,
7132 "right" : {
7133 "type" : "field",
7134 "value" : ["vlan_tag", "$valid$"]
7135 }
7136 }
7137 },
7138 "right" : {
7139 "type" : "expression",
7140 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02007141 "op" : "==",
7142 "left" : {
7143 "type" : "expression",
7144 "value" : {
7145 "op" : "d2b",
7146 "left" : null,
7147 "right" : {
7148 "type" : "field",
7149 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
7150 }
7151 }
7152 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007153 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02007154 "type" : "bool",
7155 "value" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007156 }
7157 }
7158 }
7159 }
7160 },
7161 "true_next" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007162 "false_next" : "node_72"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02007163 },
7164 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007165 "name" : "node_72",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007166 "id" : 23,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02007167 "source_info" : {
7168 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07007169 "line" : 52,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02007170 "column" : 16,
7171 "source_fragment" : "fabric_metadata.is_multicast == true && ..."
7172 },
7173 "expression" : {
7174 "type" : "expression",
7175 "value" : {
7176 "op" : "and",
7177 "left" : {
7178 "type" : "expression",
7179 "value" : {
7180 "op" : "==",
7181 "left" : {
7182 "type" : "expression",
7183 "value" : {
7184 "op" : "d2b",
7185 "left" : null,
7186 "right" : {
7187 "type" : "field",
7188 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
7189 }
7190 }
7191 },
7192 "right" : {
7193 "type" : "bool",
7194 "value" : true
7195 }
7196 }
7197 },
7198 "right" : {
7199 "type" : "expression",
7200 "value" : {
7201 "op" : "==",
7202 "left" : {
7203 "type" : "expression",
7204 "value" : {
7205 "op" : "d2b",
7206 "left" : null,
7207 "right" : {
7208 "type" : "field",
7209 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
7210 }
7211 }
7212 },
7213 "right" : {
7214 "type" : "bool",
7215 "value" : false
7216 }
7217 }
7218 }
7219 }
7220 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007221 "true_next" : "tbl_drop_now_0",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007222 "false_next" : "tbl_act_29"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007223 },
7224 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007225 "name" : "node_75",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007226 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007227 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007228 "filename" : "include/control/next.p4",
7229 "line" : 272,
7230 "column" : 12,
7231 "source_fragment" : "fabric_metadata.is_multicast == true ..."
7232 },
7233 "expression" : {
7234 "type" : "expression",
7235 "value" : {
7236 "op" : "and",
7237 "left" : {
7238 "type" : "expression",
7239 "value" : {
7240 "op" : "==",
7241 "left" : {
7242 "type" : "expression",
7243 "value" : {
7244 "op" : "d2b",
7245 "left" : null,
7246 "right" : {
7247 "type" : "field",
7248 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
7249 }
7250 }
7251 },
7252 "right" : {
7253 "type" : "bool",
7254 "value" : true
7255 }
7256 }
7257 },
7258 "right" : {
7259 "type" : "expression",
7260 "value" : {
7261 "op" : "==",
7262 "left" : {
7263 "type" : "field",
7264 "value" : ["standard_metadata", "ingress_port"]
7265 },
7266 "right" : {
7267 "type" : "field",
7268 "value" : ["standard_metadata", "egress_port"]
7269 }
7270 }
7271 }
7272 }
7273 },
7274 "true_next" : "tbl_drop_now_1",
7275 "false_next" : "FabricEgress.egress_next.egress_vlan"
7276 },
7277 {
7278 "name" : "node_78",
7279 "id" : 25,
7280 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007281 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07007282 "line" : 221,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007283 "column" : 12,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007284 "source_fragment" : "spgw_meta.direction == SPGW_DIR_DOWNLINK"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007285 },
7286 "expression" : {
7287 "type" : "expression",
7288 "value" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007289 "op" : "==",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007290 "left" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007291 "type" : "field",
7292 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007293 },
7294 "right" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007295 "type" : "hexstr",
7296 "value" : "0x02"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007297 }
7298 }
7299 },
7300 "false_next" : null,
7301 "true_next" : "tbl_spgw_egress_gtpu_encap"
7302 }
7303 ]
7304 }
7305 ],
7306 "checksums" : [
7307 {
7308 "name" : "cksum",
7309 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07007310 "source_info" : {
7311 "filename" : "include/checksum.p4",
7312 "line" : 28,
7313 "column" : 8,
7314 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
7315 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007316 "target" : ["ipv4", "hdr_checksum"],
7317 "type" : "generic",
7318 "calculation" : "calc",
7319 "if_cond" : {
7320 "type" : "expression",
7321 "value" : {
7322 "op" : "d2b",
7323 "left" : null,
7324 "right" : {
7325 "type" : "field",
7326 "value" : ["ipv4", "$valid$"]
7327 }
7328 }
7329 }
7330 },
7331 {
7332 "name" : "cksum_0",
7333 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07007334 "source_info" : {
7335 "filename" : "include/spgw.p4",
7336 "line" : 237,
7337 "column" : 8,
7338 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
7339 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007340 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007341 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007342 "calculation" : "calc_0",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007343 "if_cond" : {
7344 "type" : "expression",
7345 "value" : {
7346 "op" : "d2b",
7347 "left" : null,
7348 "right" : {
7349 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007350 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007351 }
7352 }
7353 }
7354 },
7355 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007356 "name" : "cksum_1",
7357 "id" : 2,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07007358 "source_info" : {
7359 "filename" : "include/checksum.p4",
7360 "line" : 57,
7361 "column" : 8,
7362 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
7363 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007364 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007365 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007366 "calculation" : "calc_1",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007367 "if_cond" : {
7368 "type" : "expression",
7369 "value" : {
7370 "op" : "d2b",
7371 "left" : null,
7372 "right" : {
7373 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007374 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007375 }
7376 }
7377 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007378 }
7379 ],
7380 "force_arith" : [],
7381 "extern_instances" : [],
7382 "field_aliases" : [
7383 [
7384 "queueing_metadata.enq_timestamp",
7385 ["standard_metadata", "enq_timestamp"]
7386 ],
7387 [
7388 "queueing_metadata.enq_qdepth",
7389 ["standard_metadata", "enq_qdepth"]
7390 ],
7391 [
7392 "queueing_metadata.deq_timedelta",
7393 ["standard_metadata", "deq_timedelta"]
7394 ],
7395 [
7396 "queueing_metadata.deq_qdepth",
7397 ["standard_metadata", "deq_qdepth"]
7398 ],
7399 [
7400 "intrinsic_metadata.ingress_global_timestamp",
7401 ["standard_metadata", "ingress_global_timestamp"]
7402 ],
7403 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08007404 "intrinsic_metadata.egress_global_timestamp",
7405 ["standard_metadata", "egress_global_timestamp"]
7406 ],
7407 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007408 "intrinsic_metadata.lf_field_list",
7409 ["standard_metadata", "lf_field_list"]
7410 ],
7411 [
7412 "intrinsic_metadata.mcast_grp",
7413 ["standard_metadata", "mcast_grp"]
7414 ],
7415 [
7416 "intrinsic_metadata.resubmit_flag",
7417 ["standard_metadata", "resubmit_flag"]
7418 ],
7419 [
7420 "intrinsic_metadata.egress_rid",
7421 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08007422 ],
7423 [
7424 "intrinsic_metadata.recirculate_flag",
7425 ["standard_metadata", "recirculate_flag"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007426 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007427 ],
7428 "program" : "fabric.p4",
7429 "__meta__" : {
7430 "version" : [2, 18],
7431 "compiler" : "https://github.com/p4lang/p4c"
7432 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007433}