blob: a34bcfbfd064b5ec48366ccade9a3ecc4a1bdf00 [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],
56 ["_padding", 5, false]
57 ]
58 },
59 {
60 "name" : "ethernet_t",
61 "id" : 2,
62 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080063 ["dst_addr", 48, false],
64 ["src_addr", 48, false],
65 ["ether_type", 16, false]
66 ]
67 },
68 {
69 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020070 "id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080071 "fields" : [
72 ["pri", 3, false],
73 ["cfi", 1, false],
74 ["vlan_id", 12, false],
75 ["ether_type", 16, false]
76 ]
77 },
78 {
79 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020080 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080081 "fields" : [
82 ["label", 20, false],
83 ["tc", 3, false],
84 ["bos", 1, false],
85 ["ttl", 8, false]
86 ]
87 },
88 {
89 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020090 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080091 "fields" : [
92 ["version", 4, false],
93 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +090094 ["dscp", 6, false],
95 ["ecn", 2, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080096 ["total_len", 16, false],
97 ["identification", 16, false],
98 ["flags", 3, false],
99 ["frag_offset", 13, false],
100 ["ttl", 8, false],
101 ["protocol", 8, false],
102 ["hdr_checksum", 16, false],
103 ["src_addr", 32, false],
104 ["dst_addr", 32, false]
105 ]
106 },
107 {
108 "name" : "udp_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200109 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800110 "fields" : [
111 ["src_port", 16, false],
112 ["dst_port", 16, false],
113 ["len", 16, false],
114 ["checksum", 16, false]
115 ]
116 },
117 {
118 "name" : "gtpu_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200119 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800120 "fields" : [
121 ["version", 3, false],
122 ["pt", 1, false],
123 ["spare", 1, false],
124 ["ex_flag", 1, false],
125 ["seq_flag", 1, false],
126 ["npdu_flag", 1, false],
127 ["msgtype", 8, false],
128 ["msglen", 16, false],
129 ["teid", 32, false]
130 ]
131 },
132 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800133 "name" : "arp_t",
134 "id" : 8,
135 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800136 ["hw_type", 16, false],
137 ["proto_type", 16, false],
138 ["hw_addr_len", 8, false],
139 ["proto_addr_len", 8, false],
140 ["opcode", 16, false]
141 ]
142 },
143 {
144 "name" : "tcp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800145 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800146 "fields" : [
147 ["src_port", 16, false],
148 ["dst_port", 16, false],
149 ["seq_no", 32, false],
150 ["ack_no", 32, false],
151 ["data_offset", 4, false],
152 ["res", 3, false],
153 ["ecn", 3, false],
154 ["ctrl", 6, false],
155 ["window", 16, false],
156 ["checksum", 16, false],
157 ["urgent_ptr", 16, false]
158 ]
159 },
160 {
161 "name" : "icmp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800162 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800163 "fields" : [
164 ["icmp_type", 8, false],
165 ["icmp_code", 8, false],
166 ["checksum", 16, false],
167 ["identifier", 16, false],
168 ["sequence_number", 16, false],
169 ["timestamp", 64, false]
170 ]
171 },
172 {
173 "name" : "packet_out_header_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800174 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800175 "fields" : [
176 ["egress_port", 9, false],
177 ["_pad", 7, false]
178 ]
179 },
180 {
181 "name" : "packet_in_header_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800182 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800183 "fields" : [
184 ["ingress_port", 9, false],
185 ["_pad", 7, false]
186 ]
187 },
188 {
189 "name" : "spgw_meta_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800190 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800191 "fields" : [
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700192 ["direction", 2, false],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800193 ["ipv4_len", 16, false],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800194 ["teid", 32, false],
195 ["s1u_enb_addr", 32, false],
196 ["s1u_sgw_addr", 32, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200197 ["_padding_0", 6, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800198 ]
199 }
200 ],
201 "headers" : [
202 {
203 "name" : "scalars",
204 "id" : 0,
205 "header_type" : "scalars_0",
206 "metadata" : true,
207 "pi_omit" : true
208 },
209 {
210 "name" : "standard_metadata",
211 "id" : 1,
212 "header_type" : "standard_metadata",
213 "metadata" : true,
214 "pi_omit" : true
215 },
216 {
217 "name" : "ethernet",
218 "id" : 2,
219 "header_type" : "ethernet_t",
220 "metadata" : false,
221 "pi_omit" : true
222 },
223 {
224 "name" : "vlan_tag",
225 "id" : 3,
226 "header_type" : "vlan_tag_t",
227 "metadata" : false,
228 "pi_omit" : true
229 },
230 {
231 "name" : "mpls",
232 "id" : 4,
233 "header_type" : "mpls_t",
234 "metadata" : false,
235 "pi_omit" : true
236 },
237 {
238 "name" : "gtpu_ipv4",
239 "id" : 5,
240 "header_type" : "ipv4_t",
241 "metadata" : false,
242 "pi_omit" : true
243 },
244 {
245 "name" : "gtpu_udp",
246 "id" : 6,
247 "header_type" : "udp_t",
248 "metadata" : false,
249 "pi_omit" : true
250 },
251 {
252 "name" : "gtpu",
253 "id" : 7,
254 "header_type" : "gtpu_t",
255 "metadata" : false,
256 "pi_omit" : true
257 },
258 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700259 "name" : "inner_ipv4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800260 "id" : 8,
261 "header_type" : "ipv4_t",
262 "metadata" : false,
263 "pi_omit" : true
264 },
265 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700266 "name" : "inner_udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200267 "id" : 9,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700268 "header_type" : "udp_t",
269 "metadata" : false,
270 "pi_omit" : true
271 },
272 {
273 "name" : "ipv4",
274 "id" : 10,
275 "header_type" : "ipv4_t",
276 "metadata" : false,
277 "pi_omit" : true
278 },
279 {
280 "name" : "arp",
281 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800282 "header_type" : "arp_t",
283 "metadata" : false,
284 "pi_omit" : true
285 },
286 {
287 "name" : "tcp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700288 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800289 "header_type" : "tcp_t",
290 "metadata" : false,
291 "pi_omit" : true
292 },
293 {
294 "name" : "udp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700295 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800296 "header_type" : "udp_t",
297 "metadata" : false,
298 "pi_omit" : true
299 },
300 {
301 "name" : "icmp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700302 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800303 "header_type" : "icmp_t",
304 "metadata" : false,
305 "pi_omit" : true
306 },
307 {
308 "name" : "packet_out",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700309 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800310 "header_type" : "packet_out_header_t",
311 "metadata" : false,
312 "pi_omit" : true
313 },
314 {
315 "name" : "packet_in",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700316 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800317 "header_type" : "packet_in_header_t",
318 "metadata" : false,
319 "pi_omit" : true
320 },
321 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800322 "name" : "userMetadata.spgw",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700323 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800324 "header_type" : "spgw_meta_t",
325 "metadata" : true,
326 "pi_omit" : true
327 }
328 ],
329 "header_stacks" : [],
330 "header_union_types" : [],
331 "header_unions" : [],
332 "header_union_stacks" : [],
333 "field_lists" : [],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200334 "errors" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800335 "enums" : [],
336 "parsers" : [
337 {
338 "name" : "parser",
339 "id" : 0,
340 "init_state" : "start",
341 "parse_states" : [
342 {
343 "name" : "start",
344 "id" : 0,
345 "parser_ops" : [],
346 "transitions" : [
347 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800348 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800349 "value" : "0x00ff",
350 "mask" : null,
351 "next_state" : "parse_packet_out"
352 },
353 {
354 "value" : "default",
355 "mask" : null,
356 "next_state" : "parse_ethernet"
357 }
358 ],
359 "transition_key" : [
360 {
361 "type" : "field",
362 "value" : ["standard_metadata", "ingress_port"]
363 }
364 ]
365 },
366 {
367 "name" : "parse_packet_out",
368 "id" : 1,
369 "parser_ops" : [
370 {
371 "parameters" : [
372 {
373 "type" : "regular",
374 "value" : "packet_out"
375 }
376 ],
377 "op" : "extract"
378 }
379 ],
380 "transitions" : [
381 {
382 "value" : "default",
383 "mask" : null,
384 "next_state" : "parse_ethernet"
385 }
386 ],
387 "transition_key" : []
388 },
389 {
390 "name" : "parse_ethernet",
391 "id" : 2,
392 "parser_ops" : [
393 {
394 "parameters" : [
395 {
396 "type" : "regular",
397 "value" : "ethernet"
398 }
399 ],
400 "op" : "extract"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800401 }
402 ],
403 "transitions" : [
404 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800405 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800406 "value" : "0x8100",
407 "mask" : null,
408 "next_state" : "parse_vlan_tag"
409 },
410 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800411 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800412 "value" : "0x8847",
413 "mask" : null,
414 "next_state" : "parse_mpls"
415 },
416 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800417 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800418 "value" : "0x0806",
419 "mask" : null,
420 "next_state" : "parse_arp"
421 },
422 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800423 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800424 "value" : "0x0800",
425 "mask" : null,
426 "next_state" : "parse_ipv4"
427 },
428 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800429 "value" : "default",
430 "mask" : null,
431 "next_state" : null
432 }
433 ],
434 "transition_key" : [
435 {
436 "type" : "field",
437 "value" : ["ethernet", "ether_type"]
438 }
439 ]
440 },
441 {
442 "name" : "parse_vlan_tag",
443 "id" : 3,
444 "parser_ops" : [
445 {
446 "parameters" : [
447 {
448 "type" : "regular",
449 "value" : "vlan_tag"
450 }
451 ],
452 "op" : "extract"
453 }
454 ],
455 "transitions" : [
456 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800457 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800458 "value" : "0x0806",
459 "mask" : null,
460 "next_state" : "parse_arp"
461 },
462 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800463 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800464 "value" : "0x0800",
465 "mask" : null,
466 "next_state" : "parse_ipv4"
467 },
468 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800469 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800470 "value" : "0x8847",
471 "mask" : null,
472 "next_state" : "parse_mpls"
473 },
474 {
475 "value" : "default",
476 "mask" : null,
477 "next_state" : null
478 }
479 ],
480 "transition_key" : [
481 {
482 "type" : "field",
483 "value" : ["vlan_tag", "ether_type"]
484 }
485 ]
486 },
487 {
488 "name" : "parse_mpls",
489 "id" : 4,
490 "parser_ops" : [
491 {
492 "parameters" : [
493 {
494 "type" : "regular",
495 "value" : "mpls"
496 }
497 ],
498 "op" : "extract"
499 },
500 {
501 "parameters" : [
502 {
503 "type" : "field",
504 "value" : ["scalars", "tmp"]
505 },
506 {
507 "type" : "lookahead",
508 "value" : [0, 4]
509 }
510 ],
511 "op" : "set"
512 }
513 ],
514 "transitions" : [
515 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800516 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800517 "value" : "0x04",
518 "mask" : null,
519 "next_state" : "parse_ipv4"
520 },
521 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800522 "value" : "default",
523 "mask" : null,
524 "next_state" : "parse_ethernet"
525 }
526 ],
527 "transition_key" : [
528 {
529 "type" : "field",
530 "value" : ["scalars", "tmp"]
531 }
532 ]
533 },
534 {
535 "name" : "parse_ipv4",
536 "id" : 5,
537 "parser_ops" : [
538 {
539 "parameters" : [
540 {
541 "type" : "regular",
542 "value" : "ipv4"
543 }
544 ],
545 "op" : "extract"
546 },
547 {
548 "parameters" : [
549 {
550 "type" : "field",
551 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
552 },
553 {
554 "type" : "field",
555 "value" : ["ipv4", "protocol"]
556 }
557 ],
558 "op" : "set"
559 }
560 ],
561 "transitions" : [
562 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800563 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800564 "value" : "0x06",
565 "mask" : null,
566 "next_state" : "parse_tcp"
567 },
568 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800569 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800570 "value" : "0x11",
571 "mask" : null,
572 "next_state" : "parse_udp"
573 },
574 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800575 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800576 "value" : "0x01",
577 "mask" : null,
578 "next_state" : "parse_icmp"
579 },
580 {
581 "value" : "default",
582 "mask" : null,
583 "next_state" : null
584 }
585 ],
586 "transition_key" : [
587 {
588 "type" : "field",
589 "value" : ["ipv4", "protocol"]
590 }
591 ]
592 },
593 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800594 "name" : "parse_arp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200595 "id" : 6,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800596 "parser_ops" : [
597 {
598 "parameters" : [
599 {
600 "type" : "regular",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800601 "value" : "arp"
602 }
603 ],
604 "op" : "extract"
605 }
606 ],
607 "transitions" : [
608 {
609 "value" : "default",
610 "mask" : null,
611 "next_state" : null
612 }
613 ],
614 "transition_key" : []
615 },
616 {
617 "name" : "parse_tcp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200618 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800619 "parser_ops" : [
620 {
621 "parameters" : [
622 {
623 "type" : "regular",
624 "value" : "tcp"
625 }
626 ],
627 "op" : "extract"
628 },
629 {
630 "parameters" : [
631 {
632 "type" : "field",
633 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
634 },
635 {
636 "type" : "field",
637 "value" : ["tcp", "src_port"]
638 }
639 ],
640 "op" : "set"
641 },
642 {
643 "parameters" : [
644 {
645 "type" : "field",
646 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
647 },
648 {
649 "type" : "field",
650 "value" : ["tcp", "dst_port"]
651 }
652 ],
653 "op" : "set"
654 }
655 ],
656 "transitions" : [
657 {
658 "value" : "default",
659 "mask" : null,
660 "next_state" : null
661 }
662 ],
663 "transition_key" : []
664 },
665 {
666 "name" : "parse_udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200667 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800668 "parser_ops" : [
669 {
670 "parameters" : [
671 {
672 "type" : "regular",
673 "value" : "udp"
674 }
675 ],
676 "op" : "extract"
677 },
678 {
679 "parameters" : [
680 {
681 "type" : "field",
682 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
683 },
684 {
685 "type" : "field",
686 "value" : ["udp", "src_port"]
687 }
688 ],
689 "op" : "set"
690 },
691 {
692 "parameters" : [
693 {
694 "type" : "field",
695 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
696 },
697 {
698 "type" : "field",
699 "value" : ["udp", "dst_port"]
700 }
701 ],
702 "op" : "set"
703 }
704 ],
705 "transitions" : [
706 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800707 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800708 "value" : "0x0868",
709 "mask" : null,
710 "next_state" : "parse_gtpu"
711 },
712 {
713 "value" : "default",
714 "mask" : null,
715 "next_state" : null
716 }
717 ],
718 "transition_key" : [
719 {
720 "type" : "field",
721 "value" : ["udp", "dst_port"]
722 }
723 ]
724 },
725 {
726 "name" : "parse_icmp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200727 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800728 "parser_ops" : [
729 {
730 "parameters" : [
731 {
732 "type" : "regular",
733 "value" : "icmp"
734 }
735 ],
736 "op" : "extract"
737 }
738 ],
739 "transitions" : [
740 {
741 "value" : "default",
742 "mask" : null,
743 "next_state" : null
744 }
745 ],
746 "transition_key" : []
747 },
748 {
749 "name" : "parse_gtpu",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200750 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800751 "parser_ops" : [
752 {
753 "parameters" : [
754 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700755 "type" : "field",
756 "value" : ["scalars", "tmp_0"]
757 },
758 {
759 "type" : "expression",
760 "value" : {
761 "type" : "expression",
762 "value" : {
763 "op" : "&",
764 "left" : {
765 "type" : "expression",
766 "value" : {
767 "op" : "&",
768 "left" : {
769 "type" : "expression",
770 "value" : {
771 "op" : ">>",
772 "left" : {
773 "type" : "field",
774 "value" : ["ipv4", "dst_addr"]
775 },
776 "right" : {
777 "type" : "hexstr",
778 "value" : "0x18"
779 }
780 }
781 },
782 "right" : {
783 "type" : "hexstr",
784 "value" : "0xffffffff"
785 }
786 }
787 },
788 "right" : {
789 "type" : "hexstr",
790 "value" : "0xff"
791 }
792 }
793 }
794 }
795 ],
796 "op" : "set"
797 }
798 ],
799 "transitions" : [
800 {
801 "type" : "hexstr",
802 "value" : "0x8c",
803 "mask" : null,
804 "next_state" : "do_parse_gtpu"
805 },
806 {
807 "value" : "default",
808 "mask" : null,
809 "next_state" : null
810 }
811 ],
812 "transition_key" : [
813 {
814 "type" : "field",
815 "value" : ["scalars", "tmp_0"]
816 }
817 ]
818 },
819 {
820 "name" : "do_parse_gtpu",
821 "id" : 11,
822 "parser_ops" : [
823 {
824 "parameters" : [
825 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800826 "type" : "regular",
827 "value" : "gtpu"
828 }
829 ],
830 "op" : "extract"
831 },
832 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800833 "parameters" : [
834 {
835 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700836 "value" : "inner_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800837 }
838 ],
839 "op" : "extract"
840 }
841 ],
842 "transitions" : [
843 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800844 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800845 "value" : "0x06",
846 "mask" : null,
847 "next_state" : "parse_tcp"
848 },
849 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800850 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800851 "value" : "0x11",
852 "mask" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700853 "next_state" : "parse_inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800854 },
855 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800856 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800857 "value" : "0x01",
858 "mask" : null,
859 "next_state" : "parse_icmp"
860 },
861 {
862 "value" : "default",
863 "mask" : null,
864 "next_state" : null
865 }
866 ],
867 "transition_key" : [
868 {
869 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700870 "value" : ["inner_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800871 }
872 ]
873 },
874 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700875 "name" : "parse_inner_udp",
876 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800877 "parser_ops" : [
878 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800879 "parameters" : [
880 {
881 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700882 "value" : "inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800883 }
884 ],
885 "op" : "extract"
886 },
887 {
888 "parameters" : [
889 {
890 "type" : "field",
891 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
892 },
893 {
894 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700895 "value" : ["inner_udp", "src_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800896 }
897 ],
898 "op" : "set"
899 },
900 {
901 "parameters" : [
902 {
903 "type" : "field",
904 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
905 },
906 {
907 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700908 "value" : ["inner_udp", "dst_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800909 }
910 ],
911 "op" : "set"
912 }
913 ],
914 "transitions" : [
915 {
916 "value" : "default",
917 "mask" : null,
918 "next_state" : null
919 }
920 ],
921 "transition_key" : []
922 }
923 ]
924 }
925 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800926 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800927 "deparsers" : [
928 {
929 "name" : "deparser",
930 "id" : 0,
931 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200932 "filename" : "include/parser.p4",
Charles Chancf696e52018-08-16 16:25:13 -0700933 "line" : 223,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800934 "column" : 8,
935 "source_fragment" : "FabricDeparser"
936 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200937 "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "tcp", "udp", "icmp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800938 }
939 ],
940 "meter_arrays" : [],
941 "counter_arrays" : [
942 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800943 "name" : "FabricIngress.spgw_ingress.ue_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800944 "id" : 0,
945 "is_direct" : true,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700946 "binding" : "FabricIngress.spgw_ingress.dl_sess_lookup"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800947 },
948 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800949 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800950 "id" : 1,
951 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800952 "binding" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800953 },
954 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800955 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800956 "id" : 2,
957 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800958 "binding" : "FabricIngress.filtering.fwd_classifier"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800959 },
960 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800961 "name" : "FabricIngress.forwarding.bridging_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800962 "id" : 3,
963 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800964 "binding" : "FabricIngress.forwarding.bridging"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800965 },
966 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800967 "name" : "FabricIngress.forwarding.mpls_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800968 "id" : 4,
969 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800970 "binding" : "FabricIngress.forwarding.mpls"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800971 },
972 {
Charles Chan384aea22018-08-23 22:08:02 -0700973 "name" : "FabricIngress.forwarding.routing_v4_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800974 "id" : 5,
975 "is_direct" : true,
Charles Chan384aea22018-08-23 22:08:02 -0700976 "binding" : "FabricIngress.forwarding.routing_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800977 },
978 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800979 "name" : "FabricIngress.forwarding.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800980 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800981 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800982 "binding" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800983 },
984 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800985 "name" : "FabricIngress.next.vlan_meta_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200986 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800987 "is_direct" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800988 "binding" : "FabricIngress.next.vlan_meta"
989 },
990 {
991 "name" : "FabricIngress.next.simple_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200992 "id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800993 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800994 "binding" : "FabricIngress.next.simple"
995 },
996 {
997 "name" : "FabricIngress.next.hashed_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200998 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800999 "is_direct" : true,
1000 "binding" : "FabricIngress.next.hashed"
1001 },
1002 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001003 "name" : "FabricIngress.next.multicast_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001004 "id" : 10,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001005 "is_direct" : true,
1006 "binding" : "FabricIngress.next.multicast"
1007 },
1008 {
1009 "name" : "FabricIngress.port_counters_control.egress_port_counter",
1010 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001011 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001012 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001013 "line" : 23,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001014 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001015 "source_fragment" : "egress_port_counter"
1016 },
1017 "size" : 511,
1018 "is_direct" : false
1019 },
1020 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001021 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001022 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001023 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001024 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001025 "line" : 24,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001026 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001027 "source_fragment" : "ingress_port_counter"
1028 },
1029 "size" : 511,
1030 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08001031 },
1032 {
1033 "name" : "FabricEgress.egress_next.egress_vlan_counter",
1034 "id" : 13,
1035 "is_direct" : true,
1036 "binding" : "FabricEgress.egress_next.egress_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001037 }
1038 ],
1039 "register_arrays" : [],
1040 "calculations" : [
1041 {
1042 "name" : "calc",
1043 "id" : 0,
1044 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001045 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001046 "line" : 28,
1047 "column" : 8,
1048 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1049 },
1050 "algo" : "csum16",
1051 "input" : [
1052 {
1053 "type" : "field",
1054 "value" : ["ipv4", "version"]
1055 },
1056 {
1057 "type" : "field",
1058 "value" : ["ipv4", "ihl"]
1059 },
1060 {
1061 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001062 "value" : ["ipv4", "dscp"]
1063 },
1064 {
1065 "type" : "field",
1066 "value" : ["ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001067 },
1068 {
1069 "type" : "field",
1070 "value" : ["ipv4", "total_len"]
1071 },
1072 {
1073 "type" : "field",
1074 "value" : ["ipv4", "identification"]
1075 },
1076 {
1077 "type" : "field",
1078 "value" : ["ipv4", "flags"]
1079 },
1080 {
1081 "type" : "field",
1082 "value" : ["ipv4", "frag_offset"]
1083 },
1084 {
1085 "type" : "field",
1086 "value" : ["ipv4", "ttl"]
1087 },
1088 {
1089 "type" : "field",
1090 "value" : ["ipv4", "protocol"]
1091 },
1092 {
1093 "type" : "field",
1094 "value" : ["ipv4", "src_addr"]
1095 },
1096 {
1097 "type" : "field",
1098 "value" : ["ipv4", "dst_addr"]
1099 }
1100 ]
1101 },
1102 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001103 "name" : "calc_0",
1104 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001105 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001106 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07001107 "line" : 237,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001108 "column" : 8,
1109 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1110 },
1111 "algo" : "csum16",
1112 "input" : [
1113 {
1114 "type" : "field",
1115 "value" : ["gtpu_ipv4", "version"]
1116 },
1117 {
1118 "type" : "field",
1119 "value" : ["gtpu_ipv4", "ihl"]
1120 },
1121 {
1122 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001123 "value" : ["gtpu_ipv4", "dscp"]
1124 },
1125 {
1126 "type" : "field",
1127 "value" : ["gtpu_ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001128 },
1129 {
1130 "type" : "field",
1131 "value" : ["gtpu_ipv4", "total_len"]
1132 },
1133 {
1134 "type" : "field",
1135 "value" : ["gtpu_ipv4", "identification"]
1136 },
1137 {
1138 "type" : "field",
1139 "value" : ["gtpu_ipv4", "flags"]
1140 },
1141 {
1142 "type" : "field",
1143 "value" : ["gtpu_ipv4", "frag_offset"]
1144 },
1145 {
1146 "type" : "field",
1147 "value" : ["gtpu_ipv4", "ttl"]
1148 },
1149 {
1150 "type" : "field",
1151 "value" : ["gtpu_ipv4", "protocol"]
1152 },
1153 {
1154 "type" : "field",
1155 "value" : ["gtpu_ipv4", "src_addr"]
1156 },
1157 {
1158 "type" : "field",
1159 "value" : ["gtpu_ipv4", "dst_addr"]
1160 }
1161 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001162 },
1163 {
1164 "name" : "calc_1",
1165 "id" : 2,
1166 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001167 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001168 "line" : 57,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001169 "column" : 8,
1170 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1171 },
1172 "algo" : "csum16",
1173 "input" : [
1174 {
1175 "type" : "field",
1176 "value" : ["ipv4", "version"]
1177 },
1178 {
1179 "type" : "field",
1180 "value" : ["ipv4", "ihl"]
1181 },
1182 {
1183 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001184 "value" : ["ipv4", "dscp"]
1185 },
1186 {
1187 "type" : "field",
1188 "value" : ["ipv4", "ecn"]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001189 },
1190 {
1191 "type" : "field",
1192 "value" : ["ipv4", "total_len"]
1193 },
1194 {
1195 "type" : "field",
1196 "value" : ["ipv4", "identification"]
1197 },
1198 {
1199 "type" : "field",
1200 "value" : ["ipv4", "flags"]
1201 },
1202 {
1203 "type" : "field",
1204 "value" : ["ipv4", "frag_offset"]
1205 },
1206 {
1207 "type" : "field",
1208 "value" : ["ipv4", "ttl"]
1209 },
1210 {
1211 "type" : "field",
1212 "value" : ["ipv4", "protocol"]
1213 },
1214 {
1215 "type" : "field",
1216 "value" : ["ipv4", "src_addr"]
1217 },
1218 {
1219 "type" : "field",
1220 "value" : ["ipv4", "dst_addr"]
1221 }
1222 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001223 }
1224 ],
1225 "learn_lists" : [],
1226 "actions" : [
1227 {
1228 "name" : "NoAction",
1229 "id" : 0,
1230 "runtime_data" : [],
1231 "primitives" : []
1232 },
1233 {
1234 "name" : "NoAction",
1235 "id" : 1,
1236 "runtime_data" : [],
1237 "primitives" : []
1238 },
1239 {
1240 "name" : "NoAction",
1241 "id" : 2,
1242 "runtime_data" : [],
1243 "primitives" : []
1244 },
1245 {
1246 "name" : "NoAction",
1247 "id" : 3,
1248 "runtime_data" : [],
1249 "primitives" : []
1250 },
1251 {
1252 "name" : "NoAction",
1253 "id" : 4,
1254 "runtime_data" : [],
1255 "primitives" : []
1256 },
1257 {
1258 "name" : "NoAction",
1259 "id" : 5,
1260 "runtime_data" : [],
1261 "primitives" : []
1262 },
1263 {
1264 "name" : "NoAction",
1265 "id" : 6,
1266 "runtime_data" : [],
1267 "primitives" : []
1268 },
1269 {
1270 "name" : "NoAction",
1271 "id" : 7,
1272 "runtime_data" : [],
1273 "primitives" : []
1274 },
1275 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001276 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001277 "id" : 8,
1278 "runtime_data" : [],
1279 "primitives" : []
1280 },
1281 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001282 "name" : "drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001283 "id" : 9,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001284 "runtime_data" : [],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001285 "primitives" : [
1286 {
1287 "op" : "drop",
1288 "parameters" : [],
1289 "source_info" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001290 "filename" : "include/control/../action.p4",
1291 "line" : 24,
1292 "column" : 4,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001293 "source_fragment" : "mark_to_drop()"
1294 }
1295 },
1296 {
1297 "op" : "exit",
1298 "parameters" : [],
1299 "source_info" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001300 "filename" : "include/control/../action.p4",
1301 "line" : 25,
1302 "column" : 4,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001303 "source_fragment" : "exit"
1304 }
1305 }
1306 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001307 },
1308 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001309 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001310 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001311 "runtime_data" : [],
1312 "primitives" : [
1313 {
1314 "op" : "remove_header",
1315 "parameters" : [
1316 {
1317 "type" : "header",
1318 "value" : "gtpu_ipv4"
1319 }
1320 ],
1321 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001322 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001323 "line" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001324 "column" : 8,
1325 "source_fragment" : "gtpu_ipv4.setInvalid()"
1326 }
1327 },
1328 {
1329 "op" : "remove_header",
1330 "parameters" : [
1331 {
1332 "type" : "header",
1333 "value" : "gtpu_udp"
1334 }
1335 ],
1336 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001337 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001338 "line" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001339 "column" : 8,
1340 "source_fragment" : "gtpu_udp.setInvalid()"
1341 }
1342 },
1343 {
1344 "op" : "remove_header",
1345 "parameters" : [
1346 {
1347 "type" : "header",
1348 "value" : "gtpu"
1349 }
1350 ],
1351 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001352 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001353 "line" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001354 "column" : 8,
1355 "source_fragment" : "gtpu.setInvalid()"
1356 }
1357 }
1358 ]
1359 },
1360 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001361 "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001362 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001363 "runtime_data" : [
1364 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001365 "name" : "teid",
1366 "bitwidth" : 32
1367 },
1368 {
1369 "name" : "s1u_enb_addr",
1370 "bitwidth" : 32
1371 },
1372 {
1373 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001374 "bitwidth" : 32
1375 }
1376 ],
1377 "primitives" : [
1378 {
1379 "op" : "assign",
1380 "parameters" : [
1381 {
1382 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001383 "value" : ["userMetadata.spgw", "teid"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001384 },
1385 {
1386 "type" : "runtime_data",
1387 "value" : 0
1388 }
1389 ],
1390 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001391 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001392 "line" : 62,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001393 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001394 "source_fragment" : "spgw_meta.teid = teid"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001395 }
1396 },
1397 {
1398 "op" : "assign",
1399 "parameters" : [
1400 {
1401 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001402 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001403 },
1404 {
1405 "type" : "runtime_data",
1406 "value" : 1
1407 }
1408 ],
1409 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001410 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001411 "line" : 63,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001412 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001413 "source_fragment" : "spgw_meta.s1u_enb_addr = s1u_enb_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001414 }
1415 },
1416 {
1417 "op" : "assign",
1418 "parameters" : [
1419 {
1420 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001421 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001422 },
1423 {
1424 "type" : "runtime_data",
1425 "value" : 2
1426 }
1427 ],
1428 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001429 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001430 "line" : 64,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001431 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001432 "source_fragment" : "spgw_meta.s1u_sgw_addr = s1u_sgw_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001433 }
1434 }
1435 ]
1436 },
1437 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001438 "name" : "FabricIngress.filtering.drop",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001439 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001440 "runtime_data" : [],
1441 "primitives" : [
1442 {
1443 "op" : "drop",
1444 "parameters" : [],
1445 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001446 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001447 "line" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001448 "column" : 8,
1449 "source_fragment" : "mark_to_drop()"
1450 }
1451 }
1452 ]
1453 },
1454 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001455 "name" : "FabricIngress.filtering.set_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001456 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001457 "runtime_data" : [
1458 {
1459 "name" : "new_vlan_id",
1460 "bitwidth" : 12
1461 }
1462 ],
1463 "primitives" : [
1464 {
1465 "op" : "assign",
1466 "parameters" : [
1467 {
1468 "type" : "field",
1469 "value" : ["vlan_tag", "vlan_id"]
1470 },
1471 {
1472 "type" : "runtime_data",
1473 "value" : 0
1474 }
1475 ],
1476 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001477 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001478 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001479 "column" : 8,
1480 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1481 }
1482 }
1483 ]
1484 },
1485 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001486 "name" : "FabricIngress.filtering.push_internal_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001487 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001488 "runtime_data" : [
1489 {
1490 "name" : "new_vlan_id",
1491 "bitwidth" : 12
1492 }
1493 ],
1494 "primitives" : [
1495 {
1496 "op" : "add_header",
1497 "parameters" : [
1498 {
1499 "type" : "header",
1500 "value" : "vlan_tag"
1501 }
1502 ],
1503 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001504 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001505 "line" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001506 "column" : 8,
1507 "source_fragment" : "hdr.vlan_tag.setValid()"
1508 }
1509 },
1510 {
1511 "op" : "assign",
1512 "parameters" : [
1513 {
1514 "type" : "field",
1515 "value" : ["vlan_tag", "cfi"]
1516 },
1517 {
1518 "type" : "hexstr",
1519 "value" : "0x00"
1520 }
1521 ],
1522 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001523 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001524 "line" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001525 "column" : 8,
1526 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1527 }
1528 },
1529 {
1530 "op" : "assign",
1531 "parameters" : [
1532 {
1533 "type" : "field",
1534 "value" : ["vlan_tag", "pri"]
1535 },
1536 {
1537 "type" : "hexstr",
1538 "value" : "0x00"
1539 }
1540 ],
1541 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001542 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001543 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001544 "column" : 8,
1545 "source_fragment" : "hdr.vlan_tag.pri = 0"
1546 }
1547 },
1548 {
1549 "op" : "assign",
1550 "parameters" : [
1551 {
1552 "type" : "field",
1553 "value" : ["vlan_tag", "ether_type"]
1554 },
1555 {
1556 "type" : "field",
1557 "value" : ["ethernet", "ether_type"]
1558 }
1559 ],
1560 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001561 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001562 "line" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001563 "column" : 8,
1564 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1565 }
1566 },
1567 {
1568 "op" : "assign",
1569 "parameters" : [
1570 {
1571 "type" : "field",
1572 "value" : ["ethernet", "ether_type"]
1573 },
1574 {
1575 "type" : "hexstr",
1576 "value" : "0x8100"
1577 }
1578 ],
1579 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001580 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001581 "line" : 89,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001582 "column" : 31,
1583 "source_fragment" : "0x8100; ..."
1584 }
1585 },
1586 {
1587 "op" : "assign",
1588 "parameters" : [
1589 {
1590 "type" : "field",
1591 "value" : ["vlan_tag", "vlan_id"]
1592 },
1593 {
1594 "type" : "runtime_data",
1595 "value" : 0
1596 }
1597 ],
1598 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001599 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001600 "line" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001601 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001602 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001603 }
1604 },
1605 {
1606 "op" : "assign",
1607 "parameters" : [
1608 {
1609 "type" : "field",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001610 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001611 },
1612 {
1613 "type" : "expression",
1614 "value" : {
1615 "type" : "expression",
1616 "value" : {
1617 "op" : "b2d",
1618 "left" : null,
1619 "right" : {
1620 "type" : "bool",
1621 "value" : true
1622 }
1623 }
1624 }
1625 }
1626 ],
1627 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001628 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001629 "line" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001630 "column" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001631 "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001632 }
1633 }
1634 ]
1635 },
1636 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001637 "name" : "FabricIngress.filtering.nop_ingress_port_vlan",
1638 "id" : 15,
1639 "runtime_data" : [],
1640 "primitives" : []
1641 },
1642 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001643 "name" : "FabricIngress.filtering.set_forwarding_type",
Charles Chancf696e52018-08-16 16:25:13 -07001644 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001645 "runtime_data" : [
1646 {
1647 "name" : "fwd_type",
1648 "bitwidth" : 3
1649 }
1650 ],
1651 "primitives" : [
1652 {
1653 "op" : "assign",
1654 "parameters" : [
1655 {
1656 "type" : "field",
1657 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1658 },
1659 {
1660 "type" : "runtime_data",
1661 "value" : 0
1662 }
1663 ],
1664 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001665 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001666 "line" : 99,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001667 "column" : 8,
1668 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1669 }
1670 }
1671 ]
1672 },
1673 {
Yi Tseng47eac892018-07-11 02:17:04 +08001674 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Charles Chancf696e52018-08-16 16:25:13 -07001675 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001676 "runtime_data" : [
1677 {
1678 "name" : "next_id",
1679 "bitwidth" : 32
1680 }
1681 ],
1682 "primitives" : [
1683 {
1684 "op" : "assign",
1685 "parameters" : [
1686 {
1687 "type" : "field",
1688 "value" : ["scalars", "fabric_metadata_t.next_id"]
1689 },
1690 {
1691 "type" : "runtime_data",
1692 "value" : 0
1693 }
1694 ],
1695 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001696 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001697 "line" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001698 "column" : 8,
1699 "source_fragment" : "fabric_metadata.next_id = next_id"
1700 }
1701 }
1702 ]
1703 },
1704 {
Yi Tseng47eac892018-07-11 02:17:04 +08001705 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Charles Chancf696e52018-08-16 16:25:13 -07001706 "id" : 18,
Yi Tseng47eac892018-07-11 02:17:04 +08001707 "runtime_data" : [
1708 {
1709 "name" : "next_id",
1710 "bitwidth" : 32
1711 }
1712 ],
1713 "primitives" : [
1714 {
1715 "op" : "remove_header",
1716 "parameters" : [
1717 {
1718 "type" : "header",
1719 "value" : "mpls"
1720 }
1721 ],
1722 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001723 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001724 "line" : 60,
1725 "column" : 8,
1726 "source_fragment" : "hdr.mpls.setInvalid()"
1727 }
1728 },
1729 {
1730 "op" : "assign",
1731 "parameters" : [
1732 {
1733 "type" : "field",
1734 "value" : ["scalars", "fabric_metadata_t.next_id"]
1735 },
1736 {
1737 "type" : "runtime_data",
1738 "value" : 0
1739 }
1740 ],
1741 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001742 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001743 "line" : 61,
1744 "column" : 8,
1745 "source_fragment" : "fabric_metadata.next_id = next_id"
1746 }
1747 }
1748 ]
1749 },
1750 {
Charles Chan384aea22018-08-23 22:08:02 -07001751 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001752 "id" : 19,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001753 "runtime_data" : [
1754 {
1755 "name" : "next_id",
1756 "bitwidth" : 32
1757 }
1758 ],
1759 "primitives" : [
1760 {
1761 "op" : "assign",
1762 "parameters" : [
1763 {
1764 "type" : "field",
1765 "value" : ["scalars", "fabric_metadata_t.next_id"]
1766 },
1767 {
1768 "type" : "runtime_data",
1769 "value" : 0
1770 }
1771 ],
1772 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001773 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001774 "line" : 83,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001775 "column" : 8,
1776 "source_fragment" : "fabric_metadata.next_id = next_id"
1777 }
1778 }
1779 ]
1780 },
1781 {
Charles Chancd03f072018-08-31 17:46:37 -07001782 "name" : "FabricIngress.forwarding.nop_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001783 "id" : 20,
Charles Chancd03f072018-08-31 17:46:37 -07001784 "runtime_data" : [],
1785 "primitives" : []
1786 },
1787 {
1788 "name" : "FabricIngress.forwarding.set_next_id_acl",
1789 "id" : 21,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001790 "runtime_data" : [
1791 {
1792 "name" : "next_id",
1793 "bitwidth" : 32
1794 }
1795 ],
1796 "primitives" : [
1797 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001798 "op" : "assign",
1799 "parameters" : [
1800 {
1801 "type" : "field",
1802 "value" : ["scalars", "fabric_metadata_t.next_id"]
1803 },
1804 {
1805 "type" : "runtime_data",
1806 "value" : 0
1807 }
1808 ],
1809 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001810 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001811 "line" : 110,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001812 "column" : 8,
1813 "source_fragment" : "fabric_metadata.next_id = next_id"
1814 }
1815 }
1816 ]
1817 },
1818 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001819 "name" : "FabricIngress.forwarding.punt_to_cpu",
Charles Chancd03f072018-08-31 17:46:37 -07001820 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001821 "runtime_data" : [],
1822 "primitives" : [
1823 {
1824 "op" : "assign",
1825 "parameters" : [
1826 {
1827 "type" : "field",
1828 "value" : ["standard_metadata", "egress_spec"]
1829 },
1830 {
1831 "type" : "hexstr",
1832 "value" : "0x00ff"
1833 }
1834 ],
1835 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001836 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001837 "line" : 116,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001838 "column" : 8,
1839 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001840 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001841 },
1842 {
1843 "op" : "exit",
1844 "parameters" : [],
1845 "source_info" : {
1846 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001847 "line" : 118,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001848 "column" : 8,
1849 "source_fragment" : "exit"
1850 }
1851 }
1852 ]
1853 },
1854 {
1855 "name" : "FabricIngress.forwarding.clone_to_cpu",
Charles Chancd03f072018-08-31 17:46:37 -07001856 "id" : 23,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001857 "runtime_data" : [],
1858 "primitives" : [
1859 {
1860 "op" : "assign",
1861 "parameters" : [
1862 {
1863 "type" : "field",
1864 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
1865 },
1866 {
1867 "type" : "expression",
1868 "value" : {
1869 "type" : "expression",
1870 "value" : {
1871 "op" : "b2d",
1872 "left" : null,
1873 "right" : {
1874 "type" : "bool",
1875 "value" : true
1876 }
1877 }
1878 }
1879 }
1880 ],
1881 "source_info" : {
1882 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001883 "line" : 123,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001884 "column" : 8,
1885 "source_fragment" : "fabric_metadata.clone_to_cpu = true"
1886 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001887 }
1888 ]
1889 },
1890 {
Yi Tseng47eac892018-07-11 02:17:04 +08001891 "name" : "FabricIngress.forwarding.drop",
Charles Chancd03f072018-08-31 17:46:37 -07001892 "id" : 24,
Yi Tseng47eac892018-07-11 02:17:04 +08001893 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001894 "primitives" : [
1895 {
Yi Tseng47eac892018-07-11 02:17:04 +08001896 "op" : "drop",
1897 "parameters" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001898 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001899 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001900 "line" : 128,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001901 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001902 "source_fragment" : "mark_to_drop()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001903 }
1904 }
1905 ]
1906 },
1907 {
Charles Chancf696e52018-08-16 16:25:13 -07001908 "name" : "FabricIngress.forwarding.nop_acl",
Charles Chancd03f072018-08-31 17:46:37 -07001909 "id" : 25,
Charles Chancf696e52018-08-16 16:25:13 -07001910 "runtime_data" : [],
1911 "primitives" : []
1912 },
1913 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001914 "name" : "FabricIngress.next.set_vlan",
Charles Chancd03f072018-08-31 17:46:37 -07001915 "id" : 26,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001916 "runtime_data" : [
1917 {
1918 "name" : "new_vlan_id",
1919 "bitwidth" : 12
1920 }
1921 ],
1922 "primitives" : [
1923 {
1924 "op" : "assign",
1925 "parameters" : [
1926 {
1927 "type" : "field",
1928 "value" : ["vlan_tag", "vlan_id"]
1929 },
1930 {
1931 "type" : "runtime_data",
1932 "value" : 0
1933 }
1934 ],
1935 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001936 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001937 "line" : 61,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001938 "column" : 8,
1939 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1940 }
1941 }
1942 ]
1943 },
1944 {
Yi Tseng47eac892018-07-11 02:17:04 +08001945 "name" : "FabricIngress.next.output_simple",
Charles Chancd03f072018-08-31 17:46:37 -07001946 "id" : 27,
Yi Tseng47eac892018-07-11 02:17:04 +08001947 "runtime_data" : [
1948 {
1949 "name" : "port_num",
1950 "bitwidth" : 9
1951 }
1952 ],
1953 "primitives" : [
1954 {
1955 "op" : "assign",
1956 "parameters" : [
1957 {
1958 "type" : "field",
1959 "value" : ["standard_metadata", "egress_spec"]
1960 },
1961 {
1962 "type" : "runtime_data",
1963 "value" : 0
1964 }
1965 ],
1966 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001967 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001968 "line" : 85,
1969 "column" : 8,
1970 "source_fragment" : "standard_metadata.egress_spec = port_num"
1971 }
1972 }
1973 ]
1974 },
1975 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001976 "name" : "FabricIngress.next.set_vlan_output",
Charles Chancd03f072018-08-31 17:46:37 -07001977 "id" : 28,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001978 "runtime_data" : [
1979 {
1980 "name" : "new_vlan_id",
1981 "bitwidth" : 12
1982 },
1983 {
1984 "name" : "port_num",
1985 "bitwidth" : 9
1986 }
1987 ],
1988 "primitives" : [
1989 {
1990 "op" : "assign",
1991 "parameters" : [
1992 {
1993 "type" : "field",
1994 "value" : ["vlan_tag", "vlan_id"]
1995 },
1996 {
1997 "type" : "runtime_data",
1998 "value" : 0
1999 }
2000 ],
2001 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002002 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002003 "line" : 90,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002004 "column" : 8,
2005 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
2006 }
2007 },
2008 {
2009 "op" : "assign",
2010 "parameters" : [
2011 {
2012 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002013 "value" : ["standard_metadata", "egress_spec"]
2014 },
2015 {
2016 "type" : "runtime_data",
2017 "value" : 1
2018 }
2019 ],
2020 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002021 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002022 "line" : 85,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002023 "column" : 8,
2024 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2025 }
2026 }
2027 ]
2028 },
2029 {
Yi Tseng47eac892018-07-11 02:17:04 +08002030 "name" : "FabricIngress.next.l3_routing_simple",
Charles Chancd03f072018-08-31 17:46:37 -07002031 "id" : 29,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002032 "runtime_data" : [
2033 {
2034 "name" : "port_num",
2035 "bitwidth" : 9
2036 },
2037 {
2038 "name" : "smac",
2039 "bitwidth" : 48
2040 },
2041 {
2042 "name" : "dmac",
2043 "bitwidth" : 48
2044 }
2045 ],
2046 "primitives" : [
2047 {
2048 "op" : "assign",
2049 "parameters" : [
2050 {
2051 "type" : "field",
2052 "value" : ["ethernet", "src_addr"]
2053 },
2054 {
2055 "type" : "runtime_data",
2056 "value" : 1
2057 }
2058 ],
2059 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002060 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002061 "line" : 37,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002062 "column" : 8,
2063 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2064 }
2065 },
2066 {
2067 "op" : "assign",
2068 "parameters" : [
2069 {
2070 "type" : "field",
2071 "value" : ["ethernet", "dst_addr"]
2072 },
2073 {
2074 "type" : "runtime_data",
2075 "value" : 2
2076 }
2077 ],
2078 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002079 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002080 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002081 "column" : 8,
2082 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2083 }
2084 },
2085 {
2086 "op" : "assign",
2087 "parameters" : [
2088 {
2089 "type" : "field",
2090 "value" : ["standard_metadata", "egress_spec"]
2091 },
2092 {
2093 "type" : "runtime_data",
2094 "value" : 0
2095 }
2096 ],
2097 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002098 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002099 "line" : 85,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002100 "column" : 8,
2101 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2102 }
2103 }
2104 ]
2105 },
2106 {
Yi Tseng47eac892018-07-11 02:17:04 +08002107 "name" : "FabricIngress.next.mpls_routing_v4_simple",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002108 "id" : 30,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002109 "runtime_data" : [
2110 {
2111 "name" : "port_num",
2112 "bitwidth" : 9
2113 },
2114 {
2115 "name" : "smac",
2116 "bitwidth" : 48
2117 },
2118 {
2119 "name" : "dmac",
2120 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002121 },
2122 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002123 "name" : "label",
2124 "bitwidth" : 20
2125 }
2126 ],
2127 "primitives" : [
2128 {
2129 "op" : "assign",
2130 "parameters" : [
2131 {
2132 "type" : "field",
2133 "value" : ["ethernet", "src_addr"]
2134 },
2135 {
2136 "type" : "runtime_data",
2137 "value" : 1
2138 }
2139 ],
2140 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002141 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002142 "line" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002143 "column" : 8,
2144 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2145 }
2146 },
2147 {
2148 "op" : "assign",
2149 "parameters" : [
2150 {
2151 "type" : "field",
2152 "value" : ["ethernet", "dst_addr"]
2153 },
2154 {
2155 "type" : "runtime_data",
2156 "value" : 2
2157 }
2158 ],
2159 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002160 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002161 "line" : 41,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002162 "column" : 8,
2163 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2164 }
2165 },
2166 {
2167 "op" : "assign",
2168 "parameters" : [
2169 {
2170 "type" : "field",
2171 "value" : ["standard_metadata", "egress_spec"]
2172 },
2173 {
2174 "type" : "runtime_data",
2175 "value" : 0
2176 }
2177 ],
2178 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002179 "filename" : "include/control/next.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002180 "line" : 85,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002181 "column" : 8,
2182 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2183 }
2184 },
2185 {
2186 "op" : "add_header",
2187 "parameters" : [
2188 {
2189 "type" : "header",
2190 "value" : "mpls"
2191 }
2192 ],
2193 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002194 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002195 "line" : 46,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002196 "column" : 8,
2197 "source_fragment" : "hdr.mpls.setValid()"
2198 }
2199 },
2200 {
2201 "op" : "assign",
2202 "parameters" : [
2203 {
2204 "type" : "field",
2205 "value" : ["vlan_tag", "ether_type"]
2206 },
2207 {
2208 "type" : "hexstr",
2209 "value" : "0x8847"
2210 }
2211 ],
2212 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002213 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002214 "line" : 90,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002215 "column" : 31,
2216 "source_fragment" : "0x8847; ..."
2217 }
2218 },
2219 {
2220 "op" : "assign",
2221 "parameters" : [
2222 {
2223 "type" : "field",
2224 "value" : ["mpls", "label"]
2225 },
2226 {
2227 "type" : "runtime_data",
2228 "value" : 3
2229 }
2230 ],
2231 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002232 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002233 "line" : 48,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002234 "column" : 8,
2235 "source_fragment" : "hdr.mpls.label = label; ..."
2236 }
2237 },
2238 {
2239 "op" : "assign",
2240 "parameters" : [
2241 {
2242 "type" : "field",
2243 "value" : ["mpls", "tc"]
2244 },
2245 {
2246 "type" : "hexstr",
2247 "value" : "0x00"
2248 }
2249 ],
2250 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002251 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002252 "line" : 49,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002253 "column" : 8,
2254 "source_fragment" : "hdr.mpls.tc = tc; ..."
2255 }
2256 },
2257 {
2258 "op" : "assign",
2259 "parameters" : [
2260 {
2261 "type" : "field",
2262 "value" : ["mpls", "bos"]
2263 },
2264 {
2265 "type" : "hexstr",
2266 "value" : "0x01"
2267 }
2268 ],
2269 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002270 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002271 "line" : 50,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002272 "column" : 8,
2273 "source_fragment" : "hdr.mpls.bos = 1w1"
2274 }
2275 },
2276 {
2277 "op" : "assign",
2278 "parameters" : [
2279 {
2280 "type" : "field",
2281 "value" : ["mpls", "ttl"]
2282 },
2283 {
2284 "type" : "hexstr",
2285 "value" : "0x40"
2286 }
2287 ],
2288 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002289 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002290 "line" : 113,
Yi Tseng47eac892018-07-11 02:17:04 +08002291 "column" : 32,
2292 "source_fragment" : "64; ..."
2293 }
2294 }
2295 ]
2296 },
2297 {
Charles Chancd03f072018-08-31 17:46:37 -07002298 "name" : "FabricIngress.next.mpls_routing_v6_simple",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002299 "id" : 31,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002300 "runtime_data" : [
2301 {
2302 "name" : "port_num",
2303 "bitwidth" : 9
2304 },
2305 {
2306 "name" : "smac",
2307 "bitwidth" : 48
2308 },
2309 {
2310 "name" : "dmac",
2311 "bitwidth" : 48
2312 },
2313 {
Yi Tseng47eac892018-07-11 02:17:04 +08002314 "name" : "label",
2315 "bitwidth" : 20
2316 }
2317 ],
2318 "primitives" : [
2319 {
2320 "op" : "assign",
2321 "parameters" : [
2322 {
2323 "type" : "field",
2324 "value" : ["ethernet", "src_addr"]
2325 },
2326 {
2327 "type" : "runtime_data",
2328 "value" : 1
2329 }
2330 ],
2331 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002332 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002333 "line" : 37,
2334 "column" : 8,
2335 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2336 }
2337 },
2338 {
2339 "op" : "assign",
2340 "parameters" : [
2341 {
2342 "type" : "field",
2343 "value" : ["ethernet", "dst_addr"]
2344 },
2345 {
2346 "type" : "runtime_data",
2347 "value" : 2
2348 }
2349 ],
2350 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002351 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002352 "line" : 41,
2353 "column" : 8,
2354 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2355 }
2356 },
2357 {
2358 "op" : "assign",
2359 "parameters" : [
2360 {
2361 "type" : "field",
2362 "value" : ["standard_metadata", "egress_spec"]
2363 },
2364 {
2365 "type" : "runtime_data",
2366 "value" : 0
2367 }
2368 ],
2369 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002370 "filename" : "include/control/next.p4",
Charles Chancd03f072018-08-31 17:46:37 -07002371 "line" : 85,
Yi Tseng47eac892018-07-11 02:17:04 +08002372 "column" : 8,
2373 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2374 }
2375 },
2376 {
2377 "op" : "add_header",
2378 "parameters" : [
2379 {
2380 "type" : "header",
2381 "value" : "mpls"
2382 }
2383 ],
2384 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002385 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002386 "line" : 46,
2387 "column" : 8,
2388 "source_fragment" : "hdr.mpls.setValid()"
2389 }
2390 },
2391 {
2392 "op" : "assign",
2393 "parameters" : [
2394 {
2395 "type" : "field",
2396 "value" : ["vlan_tag", "ether_type"]
2397 },
2398 {
2399 "type" : "hexstr",
2400 "value" : "0x8847"
2401 }
2402 ],
2403 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002404 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002405 "line" : 90,
Yi Tseng47eac892018-07-11 02:17:04 +08002406 "column" : 31,
2407 "source_fragment" : "0x8847; ..."
2408 }
2409 },
2410 {
2411 "op" : "assign",
2412 "parameters" : [
2413 {
2414 "type" : "field",
2415 "value" : ["mpls", "label"]
2416 },
2417 {
2418 "type" : "runtime_data",
2419 "value" : 3
2420 }
2421 ],
2422 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002423 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002424 "line" : 48,
2425 "column" : 8,
2426 "source_fragment" : "hdr.mpls.label = label; ..."
2427 }
2428 },
2429 {
2430 "op" : "assign",
2431 "parameters" : [
2432 {
2433 "type" : "field",
2434 "value" : ["mpls", "tc"]
2435 },
2436 {
2437 "type" : "hexstr",
2438 "value" : "0x00"
2439 }
2440 ],
2441 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002442 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002443 "line" : 49,
2444 "column" : 8,
2445 "source_fragment" : "hdr.mpls.tc = tc; ..."
2446 }
2447 },
2448 {
2449 "op" : "assign",
2450 "parameters" : [
2451 {
2452 "type" : "field",
2453 "value" : ["mpls", "bos"]
2454 },
2455 {
2456 "type" : "hexstr",
2457 "value" : "0x01"
2458 }
2459 ],
2460 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002461 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002462 "line" : 50,
2463 "column" : 8,
2464 "source_fragment" : "hdr.mpls.bos = 1w1"
2465 }
2466 },
2467 {
2468 "op" : "assign",
2469 "parameters" : [
2470 {
2471 "type" : "field",
2472 "value" : ["mpls", "ttl"]
2473 },
2474 {
2475 "type" : "hexstr",
2476 "value" : "0x40"
2477 }
2478 ],
2479 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002480 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002481 "line" : 113,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002482 "column" : 32,
2483 "source_fragment" : "64; ..."
2484 }
2485 }
2486 ]
2487 },
2488 {
Charles Chancd03f072018-08-31 17:46:37 -07002489 "name" : "FabricIngress.next.l3_routing_vlan",
2490 "id" : 32,
2491 "runtime_data" : [
2492 {
2493 "name" : "port_num",
2494 "bitwidth" : 9
2495 },
2496 {
2497 "name" : "smac",
2498 "bitwidth" : 48
2499 },
2500 {
2501 "name" : "dmac",
2502 "bitwidth" : 48
2503 },
2504 {
2505 "name" : "new_vlan_id",
2506 "bitwidth" : 12
2507 }
2508 ],
2509 "primitives" : [
2510 {
2511 "op" : "assign",
2512 "parameters" : [
2513 {
2514 "type" : "field",
2515 "value" : ["ethernet", "src_addr"]
2516 },
2517 {
2518 "type" : "runtime_data",
2519 "value" : 1
2520 }
2521 ],
2522 "source_info" : {
2523 "filename" : "include/control/next.p4",
2524 "line" : 37,
2525 "column" : 8,
2526 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2527 }
2528 },
2529 {
2530 "op" : "assign",
2531 "parameters" : [
2532 {
2533 "type" : "field",
2534 "value" : ["ethernet", "dst_addr"]
2535 },
2536 {
2537 "type" : "runtime_data",
2538 "value" : 2
2539 }
2540 ],
2541 "source_info" : {
2542 "filename" : "include/control/next.p4",
2543 "line" : 41,
2544 "column" : 8,
2545 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2546 }
2547 },
2548 {
2549 "op" : "assign",
2550 "parameters" : [
2551 {
2552 "type" : "field",
2553 "value" : ["vlan_tag", "vlan_id"]
2554 },
2555 {
2556 "type" : "runtime_data",
2557 "value" : 3
2558 }
2559 ],
2560 "source_info" : {
2561 "filename" : "include/control/next.p4",
2562 "line" : 90,
2563 "column" : 8,
2564 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
2565 }
2566 },
2567 {
2568 "op" : "assign",
2569 "parameters" : [
2570 {
2571 "type" : "field",
2572 "value" : ["standard_metadata", "egress_spec"]
2573 },
2574 {
2575 "type" : "runtime_data",
2576 "value" : 0
2577 }
2578 ],
2579 "source_info" : {
2580 "filename" : "include/control/next.p4",
2581 "line" : 85,
2582 "column" : 8,
2583 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2584 }
2585 }
2586 ]
2587 },
2588 {
2589 "name" : "FabricIngress.next.l3_routing_hashed",
2590 "id" : 33,
2591 "runtime_data" : [
2592 {
2593 "name" : "port_num",
2594 "bitwidth" : 9
2595 },
2596 {
2597 "name" : "smac",
2598 "bitwidth" : 48
2599 },
2600 {
2601 "name" : "dmac",
2602 "bitwidth" : 48
2603 }
2604 ],
2605 "primitives" : [
2606 {
2607 "op" : "assign",
2608 "parameters" : [
2609 {
2610 "type" : "field",
2611 "value" : ["ethernet", "src_addr"]
2612 },
2613 {
2614 "type" : "runtime_data",
2615 "value" : 1
2616 }
2617 ],
2618 "source_info" : {
2619 "filename" : "include/control/next.p4",
2620 "line" : 37,
2621 "column" : 8,
2622 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2623 }
2624 },
2625 {
2626 "op" : "assign",
2627 "parameters" : [
2628 {
2629 "type" : "field",
2630 "value" : ["ethernet", "dst_addr"]
2631 },
2632 {
2633 "type" : "runtime_data",
2634 "value" : 2
2635 }
2636 ],
2637 "source_info" : {
2638 "filename" : "include/control/next.p4",
2639 "line" : 41,
2640 "column" : 8,
2641 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2642 }
2643 },
2644 {
2645 "op" : "assign",
2646 "parameters" : [
2647 {
2648 "type" : "field",
2649 "value" : ["standard_metadata", "egress_spec"]
2650 },
2651 {
2652 "type" : "runtime_data",
2653 "value" : 0
2654 }
2655 ],
2656 "source_info" : {
2657 "filename" : "include/control/next.p4",
2658 "line" : 149,
2659 "column" : 8,
2660 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2661 }
2662 }
2663 ]
2664 },
2665 {
2666 "name" : "FabricIngress.next.mpls_routing_v4_hashed",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002667 "id" : 34,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002668 "runtime_data" : [
2669 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002670 "name" : "port_num",
2671 "bitwidth" : 9
2672 },
2673 {
2674 "name" : "smac",
2675 "bitwidth" : 48
2676 },
2677 {
2678 "name" : "dmac",
2679 "bitwidth" : 48
2680 },
2681 {
2682 "name" : "label",
2683 "bitwidth" : 20
2684 }
2685 ],
2686 "primitives" : [
2687 {
2688 "op" : "assign",
2689 "parameters" : [
2690 {
2691 "type" : "field",
2692 "value" : ["ethernet", "src_addr"]
2693 },
2694 {
2695 "type" : "runtime_data",
2696 "value" : 1
2697 }
2698 ],
2699 "source_info" : {
2700 "filename" : "include/control/next.p4",
2701 "line" : 37,
2702 "column" : 8,
2703 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2704 }
2705 },
2706 {
2707 "op" : "assign",
2708 "parameters" : [
2709 {
2710 "type" : "field",
2711 "value" : ["ethernet", "dst_addr"]
2712 },
2713 {
2714 "type" : "runtime_data",
2715 "value" : 2
2716 }
2717 ],
2718 "source_info" : {
2719 "filename" : "include/control/next.p4",
2720 "line" : 41,
2721 "column" : 8,
2722 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2723 }
2724 },
2725 {
2726 "op" : "assign",
2727 "parameters" : [
2728 {
2729 "type" : "field",
2730 "value" : ["standard_metadata", "egress_spec"]
2731 },
2732 {
2733 "type" : "runtime_data",
2734 "value" : 0
2735 }
2736 ],
2737 "source_info" : {
2738 "filename" : "include/control/next.p4",
2739 "line" : 149,
2740 "column" : 8,
2741 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2742 }
2743 },
2744 {
2745 "op" : "add_header",
2746 "parameters" : [
2747 {
2748 "type" : "header",
2749 "value" : "mpls"
2750 }
2751 ],
2752 "source_info" : {
2753 "filename" : "include/control/next.p4",
2754 "line" : 46,
2755 "column" : 8,
2756 "source_fragment" : "hdr.mpls.setValid()"
2757 }
2758 },
2759 {
2760 "op" : "assign",
2761 "parameters" : [
2762 {
2763 "type" : "field",
2764 "value" : ["vlan_tag", "ether_type"]
2765 },
2766 {
2767 "type" : "hexstr",
2768 "value" : "0x8847"
2769 }
2770 ],
2771 "source_info" : {
2772 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002773 "line" : 90,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002774 "column" : 31,
2775 "source_fragment" : "0x8847; ..."
2776 }
2777 },
2778 {
2779 "op" : "assign",
2780 "parameters" : [
2781 {
2782 "type" : "field",
2783 "value" : ["mpls", "label"]
2784 },
2785 {
2786 "type" : "runtime_data",
2787 "value" : 3
2788 }
2789 ],
2790 "source_info" : {
2791 "filename" : "include/control/next.p4",
2792 "line" : 48,
2793 "column" : 8,
2794 "source_fragment" : "hdr.mpls.label = label; ..."
2795 }
2796 },
2797 {
2798 "op" : "assign",
2799 "parameters" : [
2800 {
2801 "type" : "field",
2802 "value" : ["mpls", "tc"]
2803 },
2804 {
2805 "type" : "hexstr",
2806 "value" : "0x00"
2807 }
2808 ],
2809 "source_info" : {
2810 "filename" : "include/control/next.p4",
2811 "line" : 49,
2812 "column" : 8,
2813 "source_fragment" : "hdr.mpls.tc = tc; ..."
2814 }
2815 },
2816 {
2817 "op" : "assign",
2818 "parameters" : [
2819 {
2820 "type" : "field",
2821 "value" : ["mpls", "bos"]
2822 },
2823 {
2824 "type" : "hexstr",
2825 "value" : "0x01"
2826 }
2827 ],
2828 "source_info" : {
2829 "filename" : "include/control/next.p4",
2830 "line" : 50,
2831 "column" : 8,
2832 "source_fragment" : "hdr.mpls.bos = 1w1"
2833 }
2834 },
2835 {
2836 "op" : "assign",
2837 "parameters" : [
2838 {
2839 "type" : "field",
2840 "value" : ["mpls", "ttl"]
2841 },
2842 {
2843 "type" : "hexstr",
2844 "value" : "0x40"
2845 }
2846 ],
2847 "source_info" : {
2848 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002849 "line" : 113,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002850 "column" : 32,
2851 "source_fragment" : "64; ..."
2852 }
2853 }
2854 ]
2855 },
2856 {
Charles Chancd03f072018-08-31 17:46:37 -07002857 "name" : "FabricIngress.next.mpls_routing_v6_hashed",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002858 "id" : 35,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002859 "runtime_data" : [
2860 {
Charles Chancd03f072018-08-31 17:46:37 -07002861 "name" : "port_num",
2862 "bitwidth" : 9
2863 },
2864 {
2865 "name" : "smac",
2866 "bitwidth" : 48
2867 },
2868 {
2869 "name" : "dmac",
2870 "bitwidth" : 48
2871 },
2872 {
2873 "name" : "label",
2874 "bitwidth" : 20
2875 }
2876 ],
2877 "primitives" : [
2878 {
2879 "op" : "assign",
2880 "parameters" : [
2881 {
2882 "type" : "field",
2883 "value" : ["ethernet", "src_addr"]
2884 },
2885 {
2886 "type" : "runtime_data",
2887 "value" : 1
2888 }
2889 ],
2890 "source_info" : {
2891 "filename" : "include/control/next.p4",
2892 "line" : 37,
2893 "column" : 8,
2894 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2895 }
2896 },
2897 {
2898 "op" : "assign",
2899 "parameters" : [
2900 {
2901 "type" : "field",
2902 "value" : ["ethernet", "dst_addr"]
2903 },
2904 {
2905 "type" : "runtime_data",
2906 "value" : 2
2907 }
2908 ],
2909 "source_info" : {
2910 "filename" : "include/control/next.p4",
2911 "line" : 41,
2912 "column" : 8,
2913 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2914 }
2915 },
2916 {
2917 "op" : "assign",
2918 "parameters" : [
2919 {
2920 "type" : "field",
2921 "value" : ["standard_metadata", "egress_spec"]
2922 },
2923 {
2924 "type" : "runtime_data",
2925 "value" : 0
2926 }
2927 ],
2928 "source_info" : {
2929 "filename" : "include/control/next.p4",
2930 "line" : 149,
2931 "column" : 8,
2932 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2933 }
2934 },
2935 {
2936 "op" : "add_header",
2937 "parameters" : [
2938 {
2939 "type" : "header",
2940 "value" : "mpls"
2941 }
2942 ],
2943 "source_info" : {
2944 "filename" : "include/control/next.p4",
2945 "line" : 46,
2946 "column" : 8,
2947 "source_fragment" : "hdr.mpls.setValid()"
2948 }
2949 },
2950 {
2951 "op" : "assign",
2952 "parameters" : [
2953 {
2954 "type" : "field",
2955 "value" : ["vlan_tag", "ether_type"]
2956 },
2957 {
2958 "type" : "hexstr",
2959 "value" : "0x8847"
2960 }
2961 ],
2962 "source_info" : {
2963 "filename" : "include/control/../define.p4",
2964 "line" : 90,
2965 "column" : 31,
2966 "source_fragment" : "0x8847; ..."
2967 }
2968 },
2969 {
2970 "op" : "assign",
2971 "parameters" : [
2972 {
2973 "type" : "field",
2974 "value" : ["mpls", "label"]
2975 },
2976 {
2977 "type" : "runtime_data",
2978 "value" : 3
2979 }
2980 ],
2981 "source_info" : {
2982 "filename" : "include/control/next.p4",
2983 "line" : 48,
2984 "column" : 8,
2985 "source_fragment" : "hdr.mpls.label = label; ..."
2986 }
2987 },
2988 {
2989 "op" : "assign",
2990 "parameters" : [
2991 {
2992 "type" : "field",
2993 "value" : ["mpls", "tc"]
2994 },
2995 {
2996 "type" : "hexstr",
2997 "value" : "0x00"
2998 }
2999 ],
3000 "source_info" : {
3001 "filename" : "include/control/next.p4",
3002 "line" : 49,
3003 "column" : 8,
3004 "source_fragment" : "hdr.mpls.tc = tc; ..."
3005 }
3006 },
3007 {
3008 "op" : "assign",
3009 "parameters" : [
3010 {
3011 "type" : "field",
3012 "value" : ["mpls", "bos"]
3013 },
3014 {
3015 "type" : "hexstr",
3016 "value" : "0x01"
3017 }
3018 ],
3019 "source_info" : {
3020 "filename" : "include/control/next.p4",
3021 "line" : 50,
3022 "column" : 8,
3023 "source_fragment" : "hdr.mpls.bos = 1w1"
3024 }
3025 },
3026 {
3027 "op" : "assign",
3028 "parameters" : [
3029 {
3030 "type" : "field",
3031 "value" : ["mpls", "ttl"]
3032 },
3033 {
3034 "type" : "hexstr",
3035 "value" : "0x40"
3036 }
3037 ],
3038 "source_info" : {
3039 "filename" : "include/control/../define.p4",
3040 "line" : 113,
3041 "column" : 32,
3042 "source_fragment" : "64; ..."
3043 }
3044 }
3045 ]
3046 },
3047 {
3048 "name" : "FabricIngress.next.set_mcast_group",
3049 "id" : 36,
3050 "runtime_data" : [
3051 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00003052 "name" : "gid",
3053 "bitwidth" : 16
3054 }
3055 ],
3056 "primitives" : [
3057 {
3058 "op" : "assign",
3059 "parameters" : [
3060 {
3061 "type" : "field",
3062 "value" : ["standard_metadata", "mcast_grp"]
3063 },
3064 {
3065 "type" : "runtime_data",
3066 "value" : 0
3067 }
3068 ],
3069 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003070 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003071 "line" : 202,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003072 "column" : 8,
3073 "source_fragment" : "standard_metadata.mcast_grp = gid"
3074 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003075 },
3076 {
3077 "op" : "assign",
3078 "parameters" : [
3079 {
3080 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003081 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003082 },
3083 {
3084 "type" : "expression",
3085 "value" : {
3086 "type" : "expression",
3087 "value" : {
3088 "op" : "b2d",
3089 "left" : null,
3090 "right" : {
3091 "type" : "bool",
3092 "value" : true
3093 }
3094 }
3095 }
3096 }
3097 ],
3098 "source_info" : {
3099 "filename" : "include/control/next.p4",
3100 "line" : 203,
3101 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003102 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003103 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00003104 }
3105 ]
3106 },
3107 {
3108 "name" : "act",
Charles Chancd03f072018-08-31 17:46:37 -07003109 "id" : 37,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003110 "runtime_data" : [],
3111 "primitives" : [
3112 {
3113 "op" : "assign",
3114 "parameters" : [
3115 {
3116 "type" : "field",
3117 "value" : ["scalars", "spgw_normalizer_hasReturned_0"]
3118 },
3119 {
3120 "type" : "expression",
3121 "value" : {
3122 "type" : "expression",
3123 "value" : {
3124 "op" : "b2d",
3125 "left" : null,
3126 "right" : {
3127 "type" : "bool",
3128 "value" : true
3129 }
3130 }
3131 }
3132 }
3133 ],
3134 "source_info" : {
3135 "filename" : "include/spgw.p4",
3136 "line" : 30,
3137 "column" : 32,
3138 "source_fragment" : "return"
3139 }
3140 }
3141 ]
3142 },
3143 {
3144 "name" : "act_0",
Charles Chancd03f072018-08-31 17:46:37 -07003145 "id" : 38,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003146 "runtime_data" : [],
3147 "primitives" : [
3148 {
3149 "op" : "remove_header",
3150 "parameters" : [
3151 {
3152 "type" : "header",
3153 "value" : "gtpu_ipv4"
3154 }
3155 ],
3156 "source_info" : {
3157 "filename" : "fabric.p4",
3158 "line" : 52,
3159 "column" : 50,
3160 "source_fragment" : "hdr.gtpu_ipv4"
3161 }
3162 },
3163 {
3164 "op" : "remove_header",
3165 "parameters" : [
3166 {
3167 "type" : "header",
3168 "value" : "gtpu_udp"
3169 }
3170 ],
3171 "source_info" : {
3172 "filename" : "fabric.p4",
3173 "line" : 52,
3174 "column" : 65,
3175 "source_fragment" : "hdr.gtpu_udp"
3176 }
3177 },
3178 {
3179 "op" : "assign",
3180 "parameters" : [
3181 {
3182 "type" : "field",
3183 "value" : ["scalars", "spgw_normalizer_hasReturned_0"]
3184 },
3185 {
3186 "type" : "expression",
3187 "value" : {
3188 "type" : "expression",
3189 "value" : {
3190 "op" : "b2d",
3191 "left" : null,
3192 "right" : {
3193 "type" : "bool",
3194 "value" : false
3195 }
3196 }
3197 }
3198 }
3199 ]
3200 }
3201 ]
3202 },
3203 {
3204 "name" : "act_1",
Charles Chancd03f072018-08-31 17:46:37 -07003205 "id" : 39,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003206 "runtime_data" : [],
3207 "primitives" : [
3208 {
3209 "op" : "assign_header",
3210 "parameters" : [
3211 {
3212 "type" : "header",
3213 "value" : "udp"
3214 },
3215 {
3216 "type" : "header",
3217 "value" : "inner_udp"
3218 }
3219 ],
3220 "source_info" : {
3221 "filename" : "include/spgw.p4",
3222 "line" : 35,
3223 "column" : 16,
3224 "source_fragment" : "= inner_udp; ..."
3225 }
3226 }
3227 ]
3228 },
3229 {
3230 "name" : "act_2",
Charles Chancd03f072018-08-31 17:46:37 -07003231 "id" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003232 "runtime_data" : [],
3233 "primitives" : [
3234 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003235 "op" : "remove_header",
3236 "parameters" : [
3237 {
3238 "type" : "header",
3239 "value" : "udp"
3240 }
3241 ],
3242 "source_info" : {
3243 "filename" : "include/spgw.p4",
3244 "line" : 37,
3245 "column" : 12,
3246 "source_fragment" : "udp.setInvalid()"
3247 }
3248 }
3249 ]
3250 },
3251 {
3252 "name" : "act_3",
Charles Chancd03f072018-08-31 17:46:37 -07003253 "id" : 41,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003254 "runtime_data" : [],
3255 "primitives" : [
3256 {
3257 "op" : "assign_header",
3258 "parameters" : [
3259 {
3260 "type" : "header",
3261 "value" : "gtpu_ipv4"
3262 },
3263 {
3264 "type" : "header",
3265 "value" : "ipv4"
3266 }
3267 ],
3268 "source_info" : {
3269 "filename" : "include/spgw.p4",
3270 "line" : 31,
3271 "column" : 18,
3272 "source_fragment" : "= ipv4; ..."
3273 }
3274 },
3275 {
3276 "op" : "assign_header",
3277 "parameters" : [
3278 {
3279 "type" : "header",
3280 "value" : "ipv4"
3281 },
3282 {
3283 "type" : "header",
3284 "value" : "inner_ipv4"
3285 }
3286 ],
3287 "source_info" : {
3288 "filename" : "include/spgw.p4",
3289 "line" : 32,
3290 "column" : 13,
3291 "source_fragment" : "= inner_ipv4; ..."
3292 }
3293 },
3294 {
3295 "op" : "assign_header",
3296 "parameters" : [
3297 {
3298 "type" : "header",
3299 "value" : "gtpu_udp"
3300 },
3301 {
3302 "type" : "header",
3303 "value" : "udp"
3304 }
3305 ],
3306 "source_info" : {
3307 "filename" : "include/spgw.p4",
3308 "line" : 33,
3309 "column" : 17,
3310 "source_fragment" : "= udp; ..."
3311 }
3312 }
3313 ]
3314 },
3315 {
3316 "name" : "act_4",
Charles Chancd03f072018-08-31 17:46:37 -07003317 "id" : 42,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003318 "runtime_data" : [],
3319 "primitives" : [
3320 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003321 "op" : "assign",
3322 "parameters" : [
3323 {
3324 "type" : "field",
3325 "value" : ["standard_metadata", "egress_spec"]
3326 },
3327 {
3328 "type" : "field",
3329 "value" : ["packet_out", "egress_port"]
3330 }
3331 ],
3332 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003333 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003334 "line" : 26,
3335 "column" : 12,
3336 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
3337 }
3338 },
3339 {
3340 "op" : "remove_header",
3341 "parameters" : [
3342 {
3343 "type" : "header",
3344 "value" : "packet_out"
3345 }
3346 ],
3347 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003348 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003349 "line" : 27,
3350 "column" : 12,
3351 "source_fragment" : "hdr.packet_out.setInvalid()"
3352 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003353 },
3354 {
3355 "op" : "assign",
3356 "parameters" : [
3357 {
3358 "type" : "field",
3359 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
3360 },
3361 {
3362 "type" : "expression",
3363 "value" : {
3364 "type" : "expression",
3365 "value" : {
3366 "op" : "b2d",
3367 "left" : null,
3368 "right" : {
3369 "type" : "bool",
3370 "value" : true
3371 }
3372 }
3373 }
3374 }
3375 ],
3376 "source_info" : {
3377 "filename" : "include/control/packetio.p4",
3378 "line" : 28,
3379 "column" : 12,
3380 "source_fragment" : "fabric_metadata.is_controller_packet_out = true"
3381 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003382 }
3383 ]
3384 },
3385 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003386 "name" : "act_5",
Charles Chancd03f072018-08-31 17:46:37 -07003387 "id" : 43,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003388 "runtime_data" : [],
3389 "primitives" : [
3390 {
3391 "op" : "assign",
3392 "parameters" : [
3393 {
3394 "type" : "field",
3395 "value" : ["scalars", "spgw_ingress_tmp_1"]
3396 },
3397 {
3398 "type" : "expression",
3399 "value" : {
3400 "type" : "expression",
3401 "value" : {
3402 "op" : "b2d",
3403 "left" : null,
3404 "right" : {
3405 "type" : "bool",
3406 "value" : true
3407 }
3408 }
3409 }
3410 }
3411 ]
3412 }
3413 ]
3414 },
3415 {
3416 "name" : "act_6",
Charles Chancd03f072018-08-31 17:46:37 -07003417 "id" : 44,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003418 "runtime_data" : [],
3419 "primitives" : [
3420 {
3421 "op" : "assign",
3422 "parameters" : [
3423 {
3424 "type" : "field",
3425 "value" : ["scalars", "spgw_ingress_tmp_1"]
3426 },
3427 {
3428 "type" : "expression",
3429 "value" : {
3430 "type" : "expression",
3431 "value" : {
3432 "op" : "b2d",
3433 "left" : null,
3434 "right" : {
3435 "type" : "bool",
3436 "value" : false
3437 }
3438 }
3439 }
3440 }
3441 ]
3442 }
3443 ]
3444 },
3445 {
3446 "name" : "act_7",
Charles Chancd03f072018-08-31 17:46:37 -07003447 "id" : 45,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003448 "runtime_data" : [],
3449 "primitives" : [
3450 {
3451 "op" : "assign",
3452 "parameters" : [
3453 {
3454 "type" : "field",
3455 "value" : ["userMetadata.spgw", "direction"]
3456 },
3457 {
3458 "type" : "hexstr",
3459 "value" : "0x01"
3460 }
3461 ],
3462 "source_info" : {
3463 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003464 "line" : 119,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003465 "column" : 36,
3466 "source_fragment" : "2w1; ..."
3467 }
3468 }
3469 ]
3470 },
3471 {
3472 "name" : "act_8",
Charles Chancd03f072018-08-31 17:46:37 -07003473 "id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003474 "runtime_data" : [],
3475 "primitives" : [
3476 {
3477 "op" : "assign",
3478 "parameters" : [
3479 {
3480 "type" : "field",
3481 "value" : ["scalars", "spgw_ingress_tmp_2"]
3482 },
3483 {
3484 "type" : "expression",
3485 "value" : {
3486 "type" : "expression",
3487 "value" : {
3488 "op" : "b2d",
3489 "left" : null,
3490 "right" : {
3491 "type" : "bool",
3492 "value" : true
3493 }
3494 }
3495 }
3496 }
3497 ]
3498 }
3499 ]
3500 },
3501 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003502 "name" : "act_9",
Charles Chancd03f072018-08-31 17:46:37 -07003503 "id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003504 "runtime_data" : [],
3505 "primitives" : [
3506 {
3507 "op" : "assign",
3508 "parameters" : [
3509 {
3510 "type" : "field",
3511 "value" : ["scalars", "spgw_ingress_tmp_2"]
3512 },
3513 {
3514 "type" : "expression",
3515 "value" : {
3516 "type" : "expression",
3517 "value" : {
3518 "op" : "b2d",
3519 "left" : null,
3520 "right" : {
3521 "type" : "bool",
3522 "value" : false
3523 }
3524 }
3525 }
3526 }
3527 ]
3528 }
3529 ]
3530 },
3531 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003532 "name" : "act_10",
Charles Chancd03f072018-08-31 17:46:37 -07003533 "id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003534 "runtime_data" : [],
3535 "primitives" : [
3536 {
3537 "op" : "assign",
3538 "parameters" : [
3539 {
3540 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003541 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003542 },
3543 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003544 "type" : "hexstr",
3545 "value" : "0x02"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003546 }
3547 ],
3548 "source_info" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003549 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003550 "line" : 120,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003551 "column" : 38,
3552 "source_fragment" : "2w2; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003553 }
3554 }
3555 ]
3556 },
3557 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003558 "name" : "act_11",
Charles Chancd03f072018-08-31 17:46:37 -07003559 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003560 "runtime_data" : [],
3561 "primitives" : [
3562 {
3563 "op" : "assign",
3564 "parameters" : [
3565 {
3566 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003567 "value" : ["userMetadata.spgw", "direction"]
3568 },
3569 {
3570 "type" : "hexstr",
3571 "value" : "0x00"
3572 }
3573 ],
3574 "source_info" : {
3575 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003576 "line" : 118,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003577 "column" : 37,
3578 "source_fragment" : "2w0; ..."
3579 }
3580 },
3581 {
3582 "op" : "assign",
3583 "parameters" : [
3584 {
3585 "type" : "field",
3586 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003587 },
3588 {
3589 "type" : "expression",
3590 "value" : {
3591 "type" : "expression",
3592 "value" : {
3593 "op" : "b2d",
3594 "left" : null,
3595 "right" : {
3596 "type" : "bool",
3597 "value" : true
3598 }
3599 }
3600 }
3601 }
3602 ],
3603 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003604 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07003605 "line" : 153,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003606 "column" : 12,
3607 "source_fragment" : "return"
3608 }
3609 }
3610 ]
3611 },
3612 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003613 "name" : "act_12",
Charles Chancd03f072018-08-31 17:46:37 -07003614 "id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003615 "runtime_data" : [],
3616 "primitives" : [
3617 {
3618 "op" : "assign",
3619 "parameters" : [
3620 {
3621 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003622 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003623 },
3624 {
3625 "type" : "expression",
3626 "value" : {
3627 "type" : "expression",
3628 "value" : {
3629 "op" : "b2d",
3630 "left" : null,
3631 "right" : {
3632 "type" : "bool",
3633 "value" : false
3634 }
3635 }
3636 }
3637 }
3638 ]
3639 }
3640 ]
3641 },
3642 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003643 "name" : "act_13",
Charles Chancd03f072018-08-31 17:46:37 -07003644 "id" : 51,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003645 "runtime_data" : [],
3646 "primitives" : [
3647 {
3648 "op" : "assign",
3649 "parameters" : [
3650 {
3651 "type" : "field",
3652 "value" : ["userMetadata.spgw", "ipv4_len"]
3653 },
3654 {
3655 "type" : "field",
3656 "value" : ["ipv4", "total_len"]
3657 }
3658 ],
3659 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003660 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07003661 "line" : 170,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003662 "column" : 8,
3663 "source_fragment" : "spgw_meta.ipv4_len = ipv4.total_len"
3664 }
3665 }
3666 ]
3667 },
3668 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003669 "name" : "act_14",
Charles Chancd03f072018-08-31 17:46:37 -07003670 "id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003671 "runtime_data" : [],
3672 "primitives" : [
3673 {
3674 "op" : "assign",
3675 "parameters" : [
3676 {
3677 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003678 "value" : ["scalars", "filtering_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003679 },
3680 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003681 "type" : "expression",
3682 "value" : {
3683 "type" : "expression",
3684 "value" : {
3685 "op" : "b2d",
3686 "left" : null,
3687 "right" : {
3688 "type" : "bool",
3689 "value" : true
3690 }
3691 }
3692 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003693 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003694 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003695 }
3696 ]
3697 },
3698 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003699 "name" : "act_15",
Charles Chancd03f072018-08-31 17:46:37 -07003700 "id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003701 "runtime_data" : [],
3702 "primitives" : [
3703 {
3704 "op" : "assign",
3705 "parameters" : [
3706 {
3707 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003708 "value" : ["scalars", "filtering_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003709 },
3710 {
3711 "type" : "expression",
3712 "value" : {
3713 "type" : "expression",
3714 "value" : {
3715 "op" : "b2d",
3716 "left" : null,
3717 "right" : {
3718 "type" : "bool",
3719 "value" : false
3720 }
3721 }
3722 }
3723 }
3724 ]
3725 }
3726 ]
3727 },
3728 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003729 "name" : "act_16",
Charles Chancd03f072018-08-31 17:46:37 -07003730 "id" : 54,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003731 "runtime_data" : [],
3732 "primitives" : [
3733 {
3734 "op" : "assign",
3735 "parameters" : [
3736 {
3737 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003738 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003739 },
3740 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003741 "type" : "hexstr",
3742 "value" : "0x07"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003743 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003744 ],
3745 "source_info" : {
3746 "filename" : "include/control/../define.p4",
3747 "line" : 109,
3748 "column" : 31,
3749 "source_fragment" : "7; ..."
3750 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003751 }
3752 ]
3753 },
3754 {
3755 "name" : "act_17",
Charles Chancd03f072018-08-31 17:46:37 -07003756 "id" : 55,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003757 "runtime_data" : [],
3758 "primitives" : [
3759 {
3760 "op" : "assign",
3761 "parameters" : [
3762 {
3763 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003764 "value" : ["vlan_tag", "ether_type"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003765 },
3766 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003767 "type" : "hexstr",
3768 "value" : "0x0800"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003769 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003770 ],
3771 "source_info" : {
3772 "filename" : "include/control/../define.p4",
3773 "line" : 92,
3774 "column" : 31,
3775 "source_fragment" : "0x0800; ..."
3776 }
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003777 }
3778 ]
3779 },
3780 {
3781 "name" : "act_18",
Charles Chancd03f072018-08-31 17:46:37 -07003782 "id" : 56,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003783 "runtime_data" : [],
3784 "primitives" : [
3785 {
3786 "op" : "assign",
3787 "parameters" : [
3788 {
3789 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003790 "value" : ["scalars", "next_hasReturned_0"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003791 },
3792 {
3793 "type" : "expression",
3794 "value" : {
3795 "type" : "expression",
3796 "value" : {
3797 "op" : "b2d",
3798 "left" : null,
3799 "right" : {
3800 "type" : "bool",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003801 "value" : false
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003802 }
3803 }
3804 }
3805 }
3806 ]
3807 }
3808 ]
3809 },
3810 {
3811 "name" : "act_19",
Charles Chancd03f072018-08-31 17:46:37 -07003812 "id" : 57,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003813 "runtime_data" : [],
3814 "primitives" : [
3815 {
3816 "op" : "assign",
3817 "parameters" : [
3818 {
3819 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003820 "value" : ["scalars", "next_tmp_4"]
3821 },
3822 {
3823 "type" : "expression",
3824 "value" : {
3825 "type" : "expression",
3826 "value" : {
3827 "op" : "b2d",
3828 "left" : null,
3829 "right" : {
3830 "type" : "bool",
3831 "value" : true
3832 }
3833 }
3834 }
3835 }
3836 ]
3837 }
3838 ]
3839 },
3840 {
3841 "name" : "act_20",
Charles Chancd03f072018-08-31 17:46:37 -07003842 "id" : 58,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003843 "runtime_data" : [],
3844 "primitives" : [
3845 {
3846 "op" : "assign",
3847 "parameters" : [
3848 {
3849 "type" : "field",
3850 "value" : ["scalars", "next_tmp_4"]
3851 },
3852 {
3853 "type" : "expression",
3854 "value" : {
3855 "type" : "expression",
3856 "value" : {
3857 "op" : "b2d",
3858 "left" : null,
3859 "right" : {
3860 "type" : "bool",
3861 "value" : false
3862 }
3863 }
3864 }
3865 }
3866 ]
3867 }
3868 ]
3869 },
3870 {
3871 "name" : "act_21",
Charles Chancd03f072018-08-31 17:46:37 -07003872 "id" : 59,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003873 "runtime_data" : [],
3874 "primitives" : [
3875 {
3876 "op" : "assign",
3877 "parameters" : [
3878 {
3879 "type" : "field",
3880 "value" : ["scalars", "next_tmp_3"]
3881 },
3882 {
3883 "type" : "expression",
3884 "value" : {
3885 "type" : "expression",
3886 "value" : {
3887 "op" : "b2d",
3888 "left" : null,
3889 "right" : {
3890 "type" : "bool",
3891 "value" : true
3892 }
3893 }
3894 }
3895 }
3896 ]
3897 }
3898 ]
3899 },
3900 {
3901 "name" : "act_22",
Charles Chancd03f072018-08-31 17:46:37 -07003902 "id" : 60,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003903 "runtime_data" : [],
3904 "primitives" : [
3905 {
3906 "op" : "assign",
3907 "parameters" : [
3908 {
3909 "type" : "field",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003910 "value" : ["scalars", "next_tmp_3"]
3911 },
3912 {
3913 "type" : "expression",
3914 "value" : {
3915 "type" : "expression",
3916 "value" : {
3917 "op" : "b2d",
3918 "left" : null,
3919 "right" : {
3920 "type" : "bool",
3921 "value" : false
3922 }
3923 }
3924 }
3925 }
3926 ]
3927 }
3928 ]
3929 },
3930 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003931 "name" : "act_23",
Charles Chancd03f072018-08-31 17:46:37 -07003932 "id" : 61,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003933 "runtime_data" : [],
3934 "primitives" : [
3935 {
3936 "op" : "assign",
3937 "parameters" : [
3938 {
3939 "type" : "field",
3940 "value" : ["scalars", "next_tmp_2"]
3941 },
3942 {
3943 "type" : "expression",
3944 "value" : {
3945 "type" : "expression",
3946 "value" : {
3947 "op" : "b2d",
3948 "left" : null,
3949 "right" : {
3950 "type" : "bool",
3951 "value" : true
3952 }
3953 }
3954 }
3955 }
3956 ]
3957 }
3958 ]
3959 },
3960 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003961 "name" : "act_24",
Charles Chancd03f072018-08-31 17:46:37 -07003962 "id" : 62,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003963 "runtime_data" : [],
3964 "primitives" : [
3965 {
3966 "op" : "assign",
3967 "parameters" : [
3968 {
3969 "type" : "field",
3970 "value" : ["scalars", "next_tmp_2"]
3971 },
3972 {
3973 "type" : "expression",
3974 "value" : {
3975 "type" : "expression",
3976 "value" : {
3977 "op" : "b2d",
3978 "left" : null,
3979 "right" : {
3980 "type" : "bool",
3981 "value" : false
3982 }
3983 }
3984 }
3985 }
3986 ]
3987 }
3988 ]
3989 },
3990 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003991 "name" : "act_25",
Charles Chancd03f072018-08-31 17:46:37 -07003992 "id" : 63,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003993 "runtime_data" : [],
3994 "primitives" : [
3995 {
3996 "op" : "assign",
3997 "parameters" : [
3998 {
3999 "type" : "field",
4000 "value" : ["scalars", "next_hasReturned_0"]
4001 },
4002 {
4003 "type" : "expression",
4004 "value" : {
4005 "type" : "expression",
4006 "value" : {
4007 "op" : "b2d",
4008 "left" : null,
4009 "right" : {
4010 "type" : "bool",
4011 "value" : true
4012 }
4013 }
4014 }
4015 }
4016 ],
4017 "source_info" : {
4018 "filename" : "include/control/next.p4",
4019 "line" : 223,
4020 "column" : 20,
4021 "source_fragment" : "return"
4022 }
4023 }
4024 ]
4025 },
4026 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004027 "name" : "act_26",
Charles Chancd03f072018-08-31 17:46:37 -07004028 "id" : 64,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004029 "runtime_data" : [],
4030 "primitives" : [
4031 {
4032 "op" : "assign",
4033 "parameters" : [
4034 {
4035 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004036 "value" : ["ipv4", "ttl"]
4037 },
4038 {
4039 "type" : "expression",
4040 "value" : {
4041 "type" : "expression",
4042 "value" : {
4043 "op" : "&",
4044 "left" : {
4045 "type" : "expression",
4046 "value" : {
4047 "op" : "+",
4048 "left" : {
4049 "type" : "field",
4050 "value" : ["ipv4", "ttl"]
4051 },
4052 "right" : {
4053 "type" : "hexstr",
4054 "value" : "0xff"
4055 }
4056 }
4057 },
4058 "right" : {
4059 "type" : "hexstr",
4060 "value" : "0xff"
4061 }
4062 }
4063 }
4064 }
4065 ],
4066 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004067 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004068 "line" : 230,
4069 "column" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004070 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
4071 }
4072 }
4073 ]
4074 },
4075 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004076 "name" : "act_27",
Charles Chancd03f072018-08-31 17:46:37 -07004077 "id" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004078 "runtime_data" : [],
4079 "primitives" : [
4080 {
4081 "op" : "assign",
4082 "parameters" : [
4083 {
4084 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004085 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004086 },
4087 {
4088 "type" : "expression",
4089 "value" : {
4090 "type" : "expression",
4091 "value" : {
4092 "op" : "&",
4093 "left" : {
4094 "type" : "field",
4095 "value" : ["standard_metadata", "egress_spec"]
4096 },
4097 "right" : {
4098 "type" : "hexstr",
4099 "value" : "0xffffffff"
4100 }
4101 }
4102 }
4103 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004104 ],
4105 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004106 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004107 "line" : 28,
4108 "column" : 38,
4109 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
4110 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004111 },
4112 {
4113 "op" : "count",
4114 "parameters" : [
4115 {
4116 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004117 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004118 },
4119 {
4120 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004121 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004122 }
4123 ],
4124 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004125 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004126 "line" : 28,
4127 "column" : 12,
4128 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
4129 }
4130 }
4131 ]
4132 },
4133 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004134 "name" : "act_28",
Charles Chancd03f072018-08-31 17:46:37 -07004135 "id" : 66,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004136 "runtime_data" : [],
4137 "primitives" : [
4138 {
4139 "op" : "assign",
4140 "parameters" : [
4141 {
4142 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004143 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004144 },
4145 {
4146 "type" : "expression",
4147 "value" : {
4148 "type" : "expression",
4149 "value" : {
4150 "op" : "&",
4151 "left" : {
4152 "type" : "field",
4153 "value" : ["standard_metadata", "ingress_port"]
4154 },
4155 "right" : {
4156 "type" : "hexstr",
4157 "value" : "0xffffffff"
4158 }
4159 }
4160 }
4161 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004162 ],
4163 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004164 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004165 "line" : 31,
4166 "column" : 39,
4167 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
4168 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004169 },
4170 {
4171 "op" : "count",
4172 "parameters" : [
4173 {
4174 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004175 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004176 },
4177 {
4178 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004179 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004180 }
4181 ],
4182 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004183 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004184 "line" : 31,
4185 "column" : 12,
4186 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
4187 }
4188 }
4189 ]
4190 },
4191 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004192 "name" : "nop",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004193 "id" : 67,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004194 "runtime_data" : [],
Charles Chancd03f072018-08-31 17:46:37 -07004195 "primitives" : []
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004196 },
4197 {
4198 "name" : "drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004199 "id" : 68,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004200 "runtime_data" : [],
4201 "primitives" : [
4202 {
4203 "op" : "drop",
4204 "parameters" : [],
4205 "source_info" : {
4206 "filename" : "include/control/../action.p4",
4207 "line" : 24,
4208 "column" : 4,
4209 "source_fragment" : "mark_to_drop()"
4210 }
4211 },
4212 {
4213 "op" : "exit",
4214 "parameters" : [],
4215 "source_info" : {
4216 "filename" : "include/control/../action.p4",
4217 "line" : 25,
4218 "column" : 4,
4219 "source_fragment" : "exit"
4220 }
4221 }
4222 ]
4223 },
4224 {
Charles Chancd03f072018-08-31 17:46:37 -07004225 "name" : "drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004226 "id" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004227 "runtime_data" : [],
4228 "primitives" : [
4229 {
Charles Chancd03f072018-08-31 17:46:37 -07004230 "op" : "drop",
4231 "parameters" : [],
4232 "source_info" : {
4233 "filename" : "include/control/../action.p4",
4234 "line" : 24,
4235 "column" : 4,
4236 "source_fragment" : "mark_to_drop()"
4237 }
4238 },
4239 {
4240 "op" : "exit",
4241 "parameters" : [],
4242 "source_info" : {
4243 "filename" : "include/control/../action.p4",
4244 "line" : 25,
4245 "column" : 4,
4246 "source_fragment" : "exit"
4247 }
4248 }
4249 ]
4250 },
4251 {
4252 "name" : "FabricEgress.spgw_egress.gtpu_encap",
4253 "id" : 70,
4254 "runtime_data" : [],
4255 "primitives" : [
4256 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004257 "op" : "add_header",
4258 "parameters" : [
4259 {
4260 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004261 "value" : "gtpu_ipv4"
4262 }
4263 ],
4264 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004265 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004266 "line" : 185,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004267 "column" : 8,
4268 "source_fragment" : "gtpu_ipv4.setValid()"
4269 }
4270 },
4271 {
4272 "op" : "assign",
4273 "parameters" : [
4274 {
4275 "type" : "field",
4276 "value" : ["gtpu_ipv4", "version"]
4277 },
4278 {
4279 "type" : "hexstr",
4280 "value" : "0x04"
4281 }
4282 ],
4283 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004284 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004285 "line" : 186,
Yi Tseng3d3956d2018-01-31 17:28:05 -08004286 "column" : 8,
4287 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004288 }
4289 },
4290 {
4291 "op" : "assign",
4292 "parameters" : [
4293 {
4294 "type" : "field",
4295 "value" : ["gtpu_ipv4", "ihl"]
4296 },
4297 {
4298 "type" : "hexstr",
4299 "value" : "0x05"
4300 }
4301 ],
4302 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004303 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004304 "line" : 101,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004305 "column" : 28,
4306 "source_fragment" : "5; ..."
4307 }
4308 },
4309 {
4310 "op" : "assign",
4311 "parameters" : [
4312 {
4313 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004314 "value" : ["gtpu_ipv4", "dscp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004315 },
4316 {
4317 "type" : "hexstr",
4318 "value" : "0x00"
4319 }
4320 ],
4321 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004322 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004323 "line" : 188,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004324 "column" : 8,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004325 "source_fragment" : "gtpu_ipv4.dscp = 0"
4326 }
4327 },
4328 {
4329 "op" : "assign",
4330 "parameters" : [
4331 {
4332 "type" : "field",
4333 "value" : ["gtpu_ipv4", "ecn"]
4334 },
4335 {
4336 "type" : "hexstr",
4337 "value" : "0x00"
4338 }
4339 ],
4340 "source_info" : {
4341 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004342 "line" : 189,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004343 "column" : 8,
4344 "source_fragment" : "gtpu_ipv4.ecn = 0"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004345 }
4346 },
4347 {
4348 "op" : "assign",
4349 "parameters" : [
4350 {
4351 "type" : "field",
4352 "value" : ["gtpu_ipv4", "total_len"]
4353 },
4354 {
4355 "type" : "expression",
4356 "value" : {
4357 "type" : "expression",
4358 "value" : {
4359 "op" : "&",
4360 "left" : {
4361 "type" : "expression",
4362 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004363 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004364 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004365 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004366 "value" : ["ipv4", "total_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004367 },
4368 "right" : {
4369 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004370 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004371 }
4372 }
4373 },
4374 "right" : {
4375 "type" : "hexstr",
4376 "value" : "0xffff"
4377 }
4378 }
4379 }
4380 }
4381 ],
4382 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004383 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004384 "line" : 190,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004385 "column" : 8,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004386 "source_fragment" : "gtpu_ipv4.total_len = ipv4.total_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08004387 }
4388 },
4389 {
4390 "op" : "assign",
4391 "parameters" : [
4392 {
4393 "type" : "field",
4394 "value" : ["gtpu_ipv4", "identification"]
4395 },
4396 {
4397 "type" : "hexstr",
4398 "value" : "0x1513"
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" : 192,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004404 "column" : 8,
4405 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
4406 }
4407 },
4408 {
4409 "op" : "assign",
4410 "parameters" : [
4411 {
4412 "type" : "field",
4413 "value" : ["gtpu_ipv4", "flags"]
4414 },
4415 {
4416 "type" : "hexstr",
4417 "value" : "0x00"
4418 }
4419 ],
4420 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004421 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004422 "line" : 193,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004423 "column" : 8,
4424 "source_fragment" : "gtpu_ipv4.flags = 0"
4425 }
4426 },
4427 {
4428 "op" : "assign",
4429 "parameters" : [
4430 {
4431 "type" : "field",
4432 "value" : ["gtpu_ipv4", "frag_offset"]
4433 },
4434 {
4435 "type" : "hexstr",
4436 "value" : "0x0000"
4437 }
4438 ],
4439 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004440 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004441 "line" : 194,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004442 "column" : 8,
4443 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
4444 }
4445 },
4446 {
4447 "op" : "assign",
4448 "parameters" : [
4449 {
4450 "type" : "field",
4451 "value" : ["gtpu_ipv4", "ttl"]
4452 },
4453 {
4454 "type" : "hexstr",
4455 "value" : "0x40"
4456 }
4457 ],
4458 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004459 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004460 "line" : 114,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004461 "column" : 32,
4462 "source_fragment" : "64; ..."
4463 }
4464 },
4465 {
4466 "op" : "assign",
4467 "parameters" : [
4468 {
4469 "type" : "field",
4470 "value" : ["gtpu_ipv4", "protocol"]
4471 },
4472 {
4473 "type" : "hexstr",
4474 "value" : "0x11"
4475 }
4476 ],
4477 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004478 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004479 "line" : 98,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004480 "column" : 25,
4481 "source_fragment" : "17; ..."
4482 }
4483 },
4484 {
4485 "op" : "assign",
4486 "parameters" : [
4487 {
4488 "type" : "field",
4489 "value" : ["gtpu_ipv4", "dst_addr"]
4490 },
4491 {
4492 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004493 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004494 }
4495 ],
4496 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004497 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004498 "line" : 197,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004499 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004500 "source_fragment" : "gtpu_ipv4.dst_addr = spgw_meta.s1u_enb_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004501 }
4502 },
4503 {
4504 "op" : "assign",
4505 "parameters" : [
4506 {
4507 "type" : "field",
4508 "value" : ["gtpu_ipv4", "src_addr"]
4509 },
4510 {
4511 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004512 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004513 }
4514 ],
4515 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004516 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004517 "line" : 198,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004518 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004519 "source_fragment" : "gtpu_ipv4.src_addr = spgw_meta.s1u_sgw_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004520 }
4521 },
4522 {
4523 "op" : "assign",
4524 "parameters" : [
4525 {
4526 "type" : "field",
4527 "value" : ["gtpu_ipv4", "hdr_checksum"]
4528 },
4529 {
4530 "type" : "hexstr",
4531 "value" : "0x0000"
4532 }
4533 ],
4534 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004535 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004536 "line" : 199,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004537 "column" : 8,
4538 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
4539 }
4540 },
4541 {
4542 "op" : "add_header",
4543 "parameters" : [
4544 {
4545 "type" : "header",
4546 "value" : "gtpu_udp"
4547 }
4548 ],
4549 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004550 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004551 "line" : 201,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004552 "column" : 8,
4553 "source_fragment" : "gtpu_udp.setValid()"
4554 }
4555 },
4556 {
4557 "op" : "assign",
4558 "parameters" : [
4559 {
4560 "type" : "field",
4561 "value" : ["gtpu_udp", "src_port"]
4562 },
4563 {
4564 "type" : "hexstr",
4565 "value" : "0x0868"
4566 }
4567 ],
4568 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004569 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004570 "line" : 202,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004571 "column" : 8,
4572 "source_fragment" : "gtpu_udp.src_port = 2152"
4573 }
4574 },
4575 {
4576 "op" : "assign",
4577 "parameters" : [
4578 {
4579 "type" : "field",
4580 "value" : ["gtpu_udp", "dst_port"]
4581 },
4582 {
4583 "type" : "hexstr",
4584 "value" : "0x0868"
4585 }
4586 ],
4587 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004588 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004589 "line" : 203,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004590 "column" : 8,
4591 "source_fragment" : "gtpu_udp.dst_port = 2152"
4592 }
4593 },
4594 {
4595 "op" : "assign",
4596 "parameters" : [
4597 {
4598 "type" : "field",
4599 "value" : ["gtpu_udp", "len"]
4600 },
4601 {
4602 "type" : "expression",
4603 "value" : {
4604 "type" : "expression",
4605 "value" : {
4606 "op" : "&",
4607 "left" : {
4608 "type" : "expression",
4609 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004610 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004611 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004612 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004613 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004614 },
4615 "right" : {
4616 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004617 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004618 }
4619 }
4620 },
4621 "right" : {
4622 "type" : "hexstr",
4623 "value" : "0xffff"
4624 }
4625 }
4626 }
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" : 204,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004632 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004633 "source_fragment" : "gtpu_udp.len = spgw_meta.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004634 }
4635 },
4636 {
4637 "op" : "assign",
4638 "parameters" : [
4639 {
4640 "type" : "field",
4641 "value" : ["gtpu_udp", "checksum"]
4642 },
4643 {
4644 "type" : "hexstr",
4645 "value" : "0x0000"
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" : 206,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004651 "column" : 8,
4652 "source_fragment" : "gtpu_udp.checksum = 0"
4653 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08004654 },
4655 {
4656 "op" : "add_header",
4657 "parameters" : [
4658 {
4659 "type" : "header",
4660 "value" : "gtpu"
4661 }
4662 ],
4663 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004664 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004665 "line" : 208,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004666 "column" : 8,
4667 "source_fragment" : "gtpu.setValid()"
4668 }
4669 },
4670 {
4671 "op" : "assign",
4672 "parameters" : [
4673 {
4674 "type" : "field",
4675 "value" : ["gtpu", "version"]
4676 },
4677 {
4678 "type" : "hexstr",
4679 "value" : "0x01"
4680 }
4681 ],
4682 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004683 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004684 "line" : 209,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004685 "column" : 8,
4686 "source_fragment" : "gtpu.version = 0x01"
4687 }
4688 },
4689 {
4690 "op" : "assign",
4691 "parameters" : [
4692 {
4693 "type" : "field",
4694 "value" : ["gtpu", "pt"]
4695 },
4696 {
4697 "type" : "hexstr",
4698 "value" : "0x01"
4699 }
4700 ],
4701 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004702 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004703 "line" : 210,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004704 "column" : 8,
4705 "source_fragment" : "gtpu.pt = 0x01"
4706 }
4707 },
4708 {
4709 "op" : "assign",
4710 "parameters" : [
4711 {
4712 "type" : "field",
4713 "value" : ["gtpu", "spare"]
4714 },
4715 {
4716 "type" : "hexstr",
4717 "value" : "0x00"
4718 }
4719 ],
4720 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004721 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004722 "line" : 211,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004723 "column" : 8,
4724 "source_fragment" : "gtpu.spare = 0"
4725 }
4726 },
4727 {
4728 "op" : "assign",
4729 "parameters" : [
4730 {
4731 "type" : "field",
4732 "value" : ["gtpu", "ex_flag"]
4733 },
4734 {
4735 "type" : "hexstr",
4736 "value" : "0x00"
4737 }
4738 ],
4739 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004740 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004741 "line" : 212,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004742 "column" : 8,
4743 "source_fragment" : "gtpu.ex_flag = 0"
4744 }
4745 },
4746 {
4747 "op" : "assign",
4748 "parameters" : [
4749 {
4750 "type" : "field",
4751 "value" : ["gtpu", "seq_flag"]
4752 },
4753 {
4754 "type" : "hexstr",
4755 "value" : "0x00"
4756 }
4757 ],
4758 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004759 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004760 "line" : 213,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004761 "column" : 8,
4762 "source_fragment" : "gtpu.seq_flag = 0"
4763 }
4764 },
4765 {
4766 "op" : "assign",
4767 "parameters" : [
4768 {
4769 "type" : "field",
4770 "value" : ["gtpu", "npdu_flag"]
4771 },
4772 {
4773 "type" : "hexstr",
4774 "value" : "0x00"
4775 }
4776 ],
4777 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004778 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004779 "line" : 214,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004780 "column" : 8,
4781 "source_fragment" : "gtpu.npdu_flag = 0"
4782 }
4783 },
4784 {
4785 "op" : "assign",
4786 "parameters" : [
4787 {
4788 "type" : "field",
4789 "value" : ["gtpu", "msgtype"]
4790 },
4791 {
4792 "type" : "hexstr",
4793 "value" : "0xff"
4794 }
4795 ],
4796 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004797 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004798 "line" : 215,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004799 "column" : 8,
4800 "source_fragment" : "gtpu.msgtype = 0xff"
4801 }
4802 },
4803 {
4804 "op" : "assign",
4805 "parameters" : [
4806 {
4807 "type" : "field",
4808 "value" : ["gtpu", "msglen"]
4809 },
4810 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004811 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004812 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004813 }
4814 ],
4815 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004816 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004817 "line" : 216,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004818 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004819 "source_fragment" : "gtpu.msglen = spgw_meta.ipv4_len"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004820 }
4821 },
4822 {
4823 "op" : "assign",
4824 "parameters" : [
4825 {
4826 "type" : "field",
4827 "value" : ["gtpu", "teid"]
4828 },
4829 {
4830 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004831 "value" : ["userMetadata.spgw", "teid"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004832 }
4833 ],
4834 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004835 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004836 "line" : 217,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004837 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004838 "source_fragment" : "gtpu.teid = spgw_meta.teid"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004839 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004840 }
4841 ]
4842 },
4843 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004844 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
Charles Chancd03f072018-08-31 17:46:37 -07004845 "id" : 71,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004846 "runtime_data" : [],
4847 "primitives" : [
4848 {
4849 "op" : "assign",
4850 "parameters" : [
4851 {
4852 "type" : "field",
4853 "value" : ["ethernet", "ether_type"]
4854 },
4855 {
4856 "type" : "field",
4857 "value" : ["vlan_tag", "ether_type"]
4858 }
4859 ],
4860 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004861 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004862 "line" : 39,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004863 "column" : 8,
4864 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4865 }
4866 },
4867 {
4868 "op" : "remove_header",
4869 "parameters" : [
4870 {
4871 "type" : "header",
4872 "value" : "vlan_tag"
4873 }
4874 ],
4875 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004876 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004877 "line" : 40,
Yi Tseng47eac892018-07-11 02:17:04 +08004878 "column" : 8,
4879 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4880 }
4881 }
4882 ]
4883 },
4884 {
4885 "name" : "FabricEgress.egress_next.pop_vlan",
Charles Chancd03f072018-08-31 17:46:37 -07004886 "id" : 72,
Yi Tseng47eac892018-07-11 02:17:04 +08004887 "runtime_data" : [],
4888 "primitives" : [
4889 {
4890 "op" : "assign",
4891 "parameters" : [
4892 {
4893 "type" : "field",
4894 "value" : ["ethernet", "ether_type"]
4895 },
4896 {
4897 "type" : "field",
4898 "value" : ["vlan_tag", "ether_type"]
4899 }
4900 ],
4901 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004902 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004903 "line" : 253,
Yi Tseng47eac892018-07-11 02:17:04 +08004904 "column" : 8,
4905 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4906 }
4907 },
4908 {
4909 "op" : "remove_header",
4910 "parameters" : [
4911 {
4912 "type" : "header",
4913 "value" : "vlan_tag"
4914 }
4915 ],
4916 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004917 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004918 "line" : 254,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004919 "column" : 8,
4920 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4921 }
4922 }
4923 ]
4924 },
4925 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004926 "name" : "act_29",
Charles Chancd03f072018-08-31 17:46:37 -07004927 "id" : 73,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004928 "runtime_data" : [],
4929 "primitives" : [
4930 {
4931 "op" : "add_header",
4932 "parameters" : [
4933 {
4934 "type" : "header",
4935 "value" : "packet_in"
4936 }
4937 ],
4938 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004939 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004940 "line" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004941 "column" : 12,
4942 "source_fragment" : "hdr.packet_in.setValid()"
4943 }
4944 },
4945 {
4946 "op" : "assign",
4947 "parameters" : [
4948 {
4949 "type" : "field",
4950 "value" : ["packet_in", "ingress_port"]
4951 },
4952 {
4953 "type" : "field",
4954 "value" : ["standard_metadata", "ingress_port"]
4955 }
4956 ],
4957 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004958 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004959 "line" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004960 "column" : 12,
4961 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4962 }
4963 }
4964 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004965 }
4966 ],
4967 "pipelines" : [
4968 {
4969 "name" : "ingress",
4970 "id" : 0,
4971 "source_info" : {
4972 "filename" : "fabric.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004973 "line" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004974 "column" : 8,
4975 "source_fragment" : "FabricIngress"
4976 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004977 "init_table" : "tbl_act",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004978 "tables" : [
4979 {
4980 "name" : "tbl_act",
4981 "id" : 0,
4982 "key" : [],
4983 "match_type" : "exact",
4984 "type" : "simple",
4985 "max_size" : 1024,
4986 "with_counters" : false,
4987 "support_timeout" : false,
4988 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004989 "action_ids" : [38],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004990 "actions" : ["act_0"],
4991 "base_default_next" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004992 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004993 "act_0" : "node_3"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004994 },
4995 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004996 "action_id" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004997 "action_const" : true,
4998 "action_data" : [],
4999 "action_entry_const" : true
5000 }
5001 },
5002 {
5003 "name" : "tbl_act_0",
5004 "id" : 1,
5005 "key" : [],
5006 "match_type" : "exact",
5007 "type" : "simple",
5008 "max_size" : 1024,
5009 "with_counters" : false,
5010 "support_timeout" : false,
5011 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005012 "action_ids" : [37],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005013 "actions" : ["act"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005014 "base_default_next" : "node_5",
5015 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005016 "act" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005017 },
5018 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005019 "action_id" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005020 "action_const" : true,
5021 "action_data" : [],
5022 "action_entry_const" : true
5023 }
5024 },
5025 {
5026 "name" : "tbl_act_1",
5027 "id" : 2,
5028 "key" : [],
5029 "match_type" : "exact",
5030 "type" : "simple",
5031 "max_size" : 1024,
5032 "with_counters" : false,
5033 "support_timeout" : false,
5034 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005035 "action_ids" : [41],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005036 "actions" : ["act_3"],
5037 "base_default_next" : "node_7",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005038 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005039 "act_3" : "node_7"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005040 },
5041 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005042 "action_id" : 41,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005043 "action_const" : true,
5044 "action_data" : [],
5045 "action_entry_const" : true
5046 }
5047 },
5048 {
5049 "name" : "tbl_act_2",
5050 "id" : 3,
5051 "key" : [],
5052 "match_type" : "exact",
5053 "type" : "simple",
5054 "max_size" : 1024,
5055 "with_counters" : false,
5056 "support_timeout" : false,
5057 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005058 "action_ids" : [39],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005059 "actions" : ["act_1"],
5060 "base_default_next" : "node_10",
5061 "next_tables" : {
5062 "act_1" : "node_10"
5063 },
5064 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005065 "action_id" : 39,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005066 "action_const" : true,
5067 "action_data" : [],
5068 "action_entry_const" : true
5069 }
5070 },
5071 {
5072 "name" : "tbl_act_3",
5073 "id" : 4,
5074 "key" : [],
5075 "match_type" : "exact",
5076 "type" : "simple",
5077 "max_size" : 1024,
5078 "with_counters" : false,
5079 "support_timeout" : false,
5080 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005081 "action_ids" : [40],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005082 "actions" : ["act_2"],
5083 "base_default_next" : "node_10",
5084 "next_tables" : {
5085 "act_2" : "node_10"
5086 },
5087 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005088 "action_id" : 40,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005089 "action_const" : true,
5090 "action_data" : [],
5091 "action_entry_const" : true
5092 }
5093 },
5094 {
5095 "name" : "tbl_act_4",
5096 "id" : 5,
5097 "key" : [],
5098 "match_type" : "exact",
5099 "type" : "simple",
5100 "max_size" : 1024,
5101 "with_counters" : false,
5102 "support_timeout" : false,
5103 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005104 "action_ids" : [42],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005105 "actions" : ["act_4"],
5106 "base_default_next" : null,
5107 "next_tables" : {
5108 "act_4" : null
5109 },
5110 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005111 "action_id" : 42,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005112 "action_const" : true,
5113 "action_data" : [],
5114 "action_entry_const" : true
5115 }
5116 },
5117 {
5118 "name" : "tbl_act_5",
5119 "id" : 6,
5120 "key" : [],
5121 "match_type" : "exact",
5122 "type" : "simple",
5123 "max_size" : 1024,
5124 "with_counters" : false,
5125 "support_timeout" : false,
5126 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005127 "action_ids" : [50],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005128 "actions" : ["act_12"],
5129 "base_default_next" : "node_13",
5130 "next_tables" : {
5131 "act_12" : "node_13"
5132 },
5133 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005134 "action_id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005135 "action_const" : true,
5136 "action_data" : [],
5137 "action_entry_const" : true
5138 }
5139 },
5140 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005141 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005142 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005143 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005144 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005145 "line" : 79,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005146 "column" : 10,
5147 "source_fragment" : "s1u_filter_table"
5148 },
5149 "key" : [
5150 {
5151 "match_type" : "exact",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005152 "name" : "gtpu_ipv4.dst_addr",
5153 "target" : ["gtpu_ipv4", "dst_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005154 "mask" : null
5155 }
5156 ],
5157 "match_type" : "exact",
5158 "type" : "simple",
5159 "max_size" : 1024,
5160 "with_counters" : false,
5161 "support_timeout" : false,
5162 "direct_meters" : null,
5163 "action_ids" : [1],
5164 "actions" : ["NoAction"],
5165 "base_default_next" : null,
5166 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005167 "__HIT__" : "tbl_act_6",
5168 "__MISS__" : "tbl_act_7"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005169 },
5170 "default_entry" : {
5171 "action_id" : 1,
5172 "action_const" : false,
5173 "action_data" : [],
5174 "action_entry_const" : false
5175 }
5176 },
5177 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005178 "name" : "tbl_act_6",
5179 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005180 "key" : [],
5181 "match_type" : "exact",
5182 "type" : "simple",
5183 "max_size" : 1024,
5184 "with_counters" : false,
5185 "support_timeout" : false,
5186 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005187 "action_ids" : [43],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005188 "actions" : ["act_5"],
5189 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005190 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005191 "act_5" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005192 },
5193 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005194 "action_id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005195 "action_const" : true,
5196 "action_data" : [],
5197 "action_entry_const" : true
5198 }
5199 },
5200 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005201 "name" : "tbl_act_7",
5202 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005203 "key" : [],
5204 "match_type" : "exact",
5205 "type" : "simple",
5206 "max_size" : 1024,
5207 "with_counters" : false,
5208 "support_timeout" : false,
5209 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005210 "action_ids" : [44],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005211 "actions" : ["act_6"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005212 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005213 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005214 "act_6" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005215 },
5216 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005217 "action_id" : 44,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005218 "action_const" : true,
5219 "action_data" : [],
5220 "action_entry_const" : true
5221 }
5222 },
5223 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005224 "name" : "tbl_drop_now",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005225 "id" : 10,
5226 "key" : [],
5227 "match_type" : "exact",
5228 "type" : "simple",
5229 "max_size" : 1024,
5230 "with_counters" : false,
5231 "support_timeout" : false,
5232 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005233 "action_ids" : [9],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005234 "actions" : ["drop_now"],
5235 "base_default_next" : "tbl_act_8",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005236 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005237 "drop_now" : "tbl_act_8"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005238 },
5239 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005240 "action_id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005241 "action_const" : true,
5242 "action_data" : [],
5243 "action_entry_const" : true
5244 }
5245 },
5246 {
5247 "name" : "tbl_act_8",
5248 "id" : 11,
5249 "key" : [],
5250 "match_type" : "exact",
5251 "type" : "simple",
5252 "max_size" : 1024,
5253 "with_counters" : false,
5254 "support_timeout" : false,
5255 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005256 "action_ids" : [45],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005257 "actions" : ["act_7"],
5258 "base_default_next" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005259 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005260 "act_7" : "tbl_spgw_ingress_gtpu_decap"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005261 },
5262 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005263 "action_id" : 45,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005264 "action_const" : true,
5265 "action_data" : [],
5266 "action_entry_const" : true
5267 }
5268 },
5269 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005270 "name" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005271 "id" : 12,
5272 "key" : [],
5273 "match_type" : "exact",
5274 "type" : "simple",
5275 "max_size" : 1024,
5276 "with_counters" : false,
5277 "support_timeout" : false,
5278 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005279 "action_ids" : [10],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005280 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005281 "base_default_next" : "node_27",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005282 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005283 "FabricIngress.spgw_ingress.gtpu_decap" : "node_27"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005284 },
5285 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005286 "action_id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005287 "action_const" : true,
5288 "action_data" : [],
5289 "action_entry_const" : true
5290 }
5291 },
5292 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005293 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005294 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005295 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005296 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005297 "line" : 68,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005298 "column" : 10,
5299 "source_fragment" : "dl_sess_lookup"
5300 },
5301 "key" : [
5302 {
5303 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005304 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005305 "target" : ["ipv4", "dst_addr"],
5306 "mask" : null
5307 }
5308 ],
5309 "match_type" : "exact",
5310 "type" : "simple",
5311 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005312 "with_counters" : true,
5313 "support_timeout" : false,
5314 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005315 "action_ids" : [11, 0],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005316 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "NoAction"],
5317 "base_default_next" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005318 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005319 "__HIT__" : "tbl_act_9",
5320 "__MISS__" : "tbl_act_10"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005321 },
5322 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005323 "action_id" : 0,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005324 "action_const" : false,
5325 "action_data" : [],
5326 "action_entry_const" : false
5327 }
5328 },
5329 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005330 "name" : "tbl_act_9",
5331 "id" : 14,
5332 "key" : [],
5333 "match_type" : "exact",
5334 "type" : "simple",
5335 "max_size" : 1024,
5336 "with_counters" : false,
5337 "support_timeout" : false,
5338 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005339 "action_ids" : [46],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005340 "actions" : ["act_8"],
5341 "base_default_next" : "node_24",
5342 "next_tables" : {
5343 "act_8" : "node_24"
5344 },
5345 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005346 "action_id" : 46,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005347 "action_const" : true,
5348 "action_data" : [],
5349 "action_entry_const" : true
5350 }
5351 },
5352 {
5353 "name" : "tbl_act_10",
5354 "id" : 15,
5355 "key" : [],
5356 "match_type" : "exact",
5357 "type" : "simple",
5358 "max_size" : 1024,
5359 "with_counters" : false,
5360 "support_timeout" : false,
5361 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005362 "action_ids" : [47],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005363 "actions" : ["act_9"],
5364 "base_default_next" : "node_24",
5365 "next_tables" : {
5366 "act_9" : "node_24"
5367 },
5368 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005369 "action_id" : 47,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005370 "action_const" : true,
5371 "action_data" : [],
5372 "action_entry_const" : true
5373 }
5374 },
5375 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005376 "name" : "tbl_act_11",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005377 "id" : 16,
5378 "key" : [],
5379 "match_type" : "exact",
5380 "type" : "simple",
5381 "max_size" : 1024,
5382 "with_counters" : false,
5383 "support_timeout" : false,
5384 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005385 "action_ids" : [48],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005386 "actions" : ["act_10"],
5387 "base_default_next" : "node_27",
5388 "next_tables" : {
5389 "act_10" : "node_27"
5390 },
5391 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005392 "action_id" : 48,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005393 "action_const" : true,
5394 "action_data" : [],
5395 "action_entry_const" : true
5396 }
5397 },
5398 {
5399 "name" : "tbl_act_12",
5400 "id" : 17,
5401 "key" : [],
5402 "match_type" : "exact",
5403 "type" : "simple",
5404 "max_size" : 1024,
5405 "with_counters" : false,
5406 "support_timeout" : false,
5407 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005408 "action_ids" : [49],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005409 "actions" : ["act_11"],
5410 "base_default_next" : "node_27",
5411 "next_tables" : {
5412 "act_11" : "node_27"
5413 },
5414 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005415 "action_id" : 49,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005416 "action_const" : true,
5417 "action_data" : [],
5418 "action_entry_const" : true
5419 }
5420 },
5421 {
5422 "name" : "tbl_act_13",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005423 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005424 "key" : [],
5425 "match_type" : "exact",
5426 "type" : "simple",
5427 "max_size" : 1024,
5428 "with_counters" : false,
5429 "support_timeout" : false,
5430 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005431 "action_ids" : [51],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005432 "actions" : ["act_13"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005433 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
5434 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005435 "act_13" : "FabricIngress.filtering.ingress_port_vlan"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005436 },
5437 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005438 "action_id" : 51,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005439 "action_const" : true,
5440 "action_data" : [],
5441 "action_entry_const" : true
5442 }
5443 },
5444 {
5445 "name" : "FabricIngress.filtering.ingress_port_vlan",
5446 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005447 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005448 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005449 "line" : 66,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005450 "column" : 10,
5451 "source_fragment" : "ingress_port_vlan"
5452 },
5453 "key" : [
5454 {
5455 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005456 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005457 "target" : ["standard_metadata", "ingress_port"],
5458 "mask" : null
5459 },
5460 {
5461 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005462 "name" : "hdr.vlan_tag.is_valid",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005463 "target" : ["vlan_tag", "$valid$"],
5464 "mask" : null
5465 },
5466 {
5467 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005468 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005469 "target" : ["vlan_tag", "vlan_id"],
5470 "mask" : null
5471 }
5472 ],
5473 "match_type" : "ternary",
5474 "type" : "simple",
5475 "max_size" : 1024,
5476 "with_counters" : true,
5477 "support_timeout" : false,
5478 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005479 "action_ids" : [14, 13, 12, 15],
5480 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "FabricIngress.filtering.drop", "FabricIngress.filtering.nop_ingress_port_vlan"],
5481 "base_default_next" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005482 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005483 "__HIT__" : "tbl_act_14",
5484 "__MISS__" : "tbl_act_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005485 },
5486 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005487 "action_id" : 14,
5488 "action_const" : true,
5489 "action_data" : ["0xffe"],
5490 "action_entry_const" : true
5491 }
5492 },
5493 {
5494 "name" : "tbl_act_14",
5495 "id" : 20,
5496 "key" : [],
5497 "match_type" : "exact",
5498 "type" : "simple",
5499 "max_size" : 1024,
5500 "with_counters" : false,
5501 "support_timeout" : false,
5502 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005503 "action_ids" : [52],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005504 "actions" : ["act_14"],
5505 "base_default_next" : "node_32",
5506 "next_tables" : {
5507 "act_14" : "node_32"
5508 },
5509 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005510 "action_id" : 52,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005511 "action_const" : true,
5512 "action_data" : [],
5513 "action_entry_const" : true
5514 }
5515 },
5516 {
5517 "name" : "tbl_act_15",
5518 "id" : 21,
5519 "key" : [],
5520 "match_type" : "exact",
5521 "type" : "simple",
5522 "max_size" : 1024,
5523 "with_counters" : false,
5524 "support_timeout" : false,
5525 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005526 "action_ids" : [53],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005527 "actions" : ["act_15"],
5528 "base_default_next" : "node_32",
5529 "next_tables" : {
5530 "act_15" : "node_32"
5531 },
5532 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005533 "action_id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005534 "action_const" : true,
5535 "action_data" : [],
5536 "action_entry_const" : true
5537 }
5538 },
5539 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005540 "name" : "FabricIngress.filtering.fwd_classifier",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005541 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005542 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005543 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005544 "line" : 103,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005545 "column" : 10,
5546 "source_fragment" : "fwd_classifier"
5547 },
5548 "key" : [
5549 {
5550 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005551 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005552 "target" : ["standard_metadata", "ingress_port"],
5553 "mask" : null
5554 },
5555 {
Charles Chan384aea22018-08-23 22:08:02 -07005556 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005557 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005558 "target" : ["ethernet", "dst_addr"],
5559 "mask" : null
5560 },
5561 {
5562 "match_type" : "exact",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005563 "name" : "hdr.vlan_tag.ether_type",
5564 "target" : ["vlan_tag", "ether_type"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005565 "mask" : null
5566 }
5567 ],
Charles Chan384aea22018-08-23 22:08:02 -07005568 "match_type" : "ternary",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005569 "type" : "simple",
5570 "max_size" : 1024,
5571 "with_counters" : true,
5572 "support_timeout" : false,
5573 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005574 "action_ids" : [16],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005575 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005576 "base_default_next" : "node_35",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005577 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005578 "FabricIngress.filtering.set_forwarding_type" : "node_35"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005579 },
5580 "default_entry" : {
Charles Chancf696e52018-08-16 16:25:13 -07005581 "action_id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005582 "action_const" : true,
5583 "action_data" : ["0x0"],
5584 "action_entry_const" : true
5585 }
5586 },
5587 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005588 "name" : "tbl_act_16",
5589 "id" : 23,
5590 "key" : [],
5591 "match_type" : "exact",
5592 "type" : "simple",
5593 "max_size" : 1024,
5594 "with_counters" : false,
5595 "support_timeout" : false,
5596 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005597 "action_ids" : [54],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005598 "actions" : ["act_16"],
5599 "base_default_next" : "node_35",
5600 "next_tables" : {
5601 "act_16" : "node_35"
5602 },
5603 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005604 "action_id" : 54,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005605 "action_const" : true,
5606 "action_data" : [],
5607 "action_entry_const" : true
5608 }
5609 },
5610 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005611 "name" : "FabricIngress.forwarding.bridging",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005612 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005613 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005614 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005615 "line" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005616 "column" : 10,
5617 "source_fragment" : "bridging"
5618 },
5619 "key" : [
5620 {
5621 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005622 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005623 "target" : ["vlan_tag", "vlan_id"],
5624 "mask" : null
5625 },
5626 {
5627 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005628 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005629 "target" : ["ethernet", "dst_addr"],
5630 "mask" : null
5631 }
5632 ],
5633 "match_type" : "ternary",
5634 "type" : "simple",
5635 "max_size" : 1024,
5636 "with_counters" : true,
5637 "support_timeout" : false,
5638 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005639 "action_ids" : [17, 2],
Yi Tseng47eac892018-07-11 02:17:04 +08005640 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005641 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005642 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005643 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005644 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005645 },
5646 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005647 "action_id" : 2,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005648 "action_const" : false,
5649 "action_data" : [],
5650 "action_entry_const" : false
5651 }
5652 },
5653 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005654 "name" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005655 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005656 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005657 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005658 "line" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005659 "column" : 10,
5660 "source_fragment" : "mpls"
5661 },
5662 "key" : [
5663 {
5664 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005665 "name" : "hdr.mpls.label",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005666 "target" : ["mpls", "label"],
5667 "mask" : null
5668 }
5669 ],
5670 "match_type" : "exact",
5671 "type" : "simple",
5672 "max_size" : 1024,
5673 "with_counters" : true,
5674 "support_timeout" : false,
5675 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005676 "action_ids" : [18, 3],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005677 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005678 "base_default_next" : "tbl_act_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005679 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005680 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_17",
5681 "NoAction" : "tbl_act_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005682 },
5683 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005684 "action_id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005685 "action_const" : false,
5686 "action_data" : [],
5687 "action_entry_const" : false
5688 }
5689 },
5690 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005691 "name" : "tbl_act_17",
5692 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005693 "key" : [],
5694 "match_type" : "exact",
5695 "type" : "simple",
5696 "max_size" : 1024,
5697 "with_counters" : false,
5698 "support_timeout" : false,
5699 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005700 "action_ids" : [55],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005701 "actions" : ["act_17"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005702 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005703 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005704 "act_17" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005705 },
5706 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005707 "action_id" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005708 "action_const" : true,
5709 "action_data" : [],
5710 "action_entry_const" : true
5711 }
5712 },
5713 {
Charles Chan384aea22018-08-23 22:08:02 -07005714 "name" : "FabricIngress.forwarding.routing_v4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005715 "id" : 27,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005716 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005717 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07005718 "line" : 91,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005719 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07005720 "source_fragment" : "routing_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005721 },
5722 "key" : [
5723 {
5724 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005725 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005726 "target" : ["ipv4", "dst_addr"],
5727 "mask" : null
5728 }
5729 ],
5730 "match_type" : "lpm",
5731 "type" : "simple",
5732 "max_size" : 1024,
5733 "with_counters" : true,
5734 "support_timeout" : false,
5735 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005736 "action_ids" : [19, 20, 4],
5737 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005738 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005739 "next_tables" : {
Charles Chan384aea22018-08-23 22:08:02 -07005740 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.forwarding.acl",
Charles Chancd03f072018-08-31 17:46:37 -07005741 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005742 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005743 },
5744 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005745 "action_id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005746 "action_const" : false,
5747 "action_data" : [],
5748 "action_entry_const" : false
5749 }
5750 },
5751 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005752 "name" : "FabricIngress.forwarding.acl",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005753 "id" : 28,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005754 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005755 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07005756 "line" : 136,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005757 "column" : 10,
5758 "source_fragment" : "acl"
5759 },
5760 "key" : [
5761 {
5762 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005763 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005764 "target" : ["standard_metadata", "ingress_port"],
5765 "mask" : null
5766 },
5767 {
5768 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005769 "name" : "fabric_metadata.ip_proto",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005770 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
5771 "mask" : null
5772 },
5773 {
5774 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005775 "name" : "fabric_metadata.l4_src_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005776 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
5777 "mask" : null
5778 },
5779 {
5780 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005781 "name" : "fabric_metadata.l4_dst_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005782 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
5783 "mask" : null
5784 },
5785 {
5786 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005787 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005788 "target" : ["ethernet", "dst_addr"],
5789 "mask" : null
5790 },
5791 {
5792 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005793 "name" : "hdr.ethernet.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005794 "target" : ["ethernet", "src_addr"],
5795 "mask" : null
5796 },
5797 {
5798 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005799 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005800 "target" : ["vlan_tag", "vlan_id"],
5801 "mask" : null
5802 },
5803 {
5804 "match_type" : "ternary",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005805 "name" : "hdr.vlan_tag.ether_type",
5806 "target" : ["vlan_tag", "ether_type"],
5807 "mask" : null
5808 },
5809 {
5810 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005811 "name" : "hdr.ipv4.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005812 "target" : ["ipv4", "src_addr"],
5813 "mask" : null
5814 },
5815 {
5816 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005817 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005818 "target" : ["ipv4", "dst_addr"],
5819 "mask" : null
5820 },
5821 {
5822 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005823 "name" : "hdr.icmp.icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005824 "target" : ["icmp", "icmp_type"],
5825 "mask" : null
5826 },
5827 {
5828 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005829 "name" : "hdr.icmp.icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005830 "target" : ["icmp", "icmp_code"],
5831 "mask" : null
5832 }
5833 ],
5834 "match_type" : "ternary",
5835 "type" : "simple",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005836 "max_size" : 128,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005837 "with_counters" : true,
5838 "support_timeout" : false,
5839 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005840 "action_ids" : [21, 22, 23, 24, 25],
Charles Chancf696e52018-08-16 16:25:13 -07005841 "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 -07005842 "base_default_next" : "tbl_act_18",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005843 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005844 "FabricIngress.forwarding.set_next_id_acl" : "tbl_act_18",
5845 "FabricIngress.forwarding.punt_to_cpu" : "tbl_act_18",
5846 "FabricIngress.forwarding.clone_to_cpu" : "tbl_act_18",
5847 "FabricIngress.forwarding.drop" : "tbl_act_18",
5848 "FabricIngress.forwarding.nop_acl" : "tbl_act_18"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005849 },
5850 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005851 "action_id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005852 "action_const" : true,
5853 "action_data" : [],
5854 "action_entry_const" : true
5855 }
5856 },
5857 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005858 "name" : "tbl_act_18",
5859 "id" : 29,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005860 "key" : [],
5861 "match_type" : "exact",
5862 "type" : "simple",
5863 "max_size" : 1024,
5864 "with_counters" : false,
5865 "support_timeout" : false,
5866 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005867 "action_ids" : [56],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005868 "actions" : ["act_18"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005869 "base_default_next" : "FabricIngress.next.vlan_meta",
5870 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005871 "act_18" : "FabricIngress.next.vlan_meta"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005872 },
5873 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005874 "action_id" : 56,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005875 "action_const" : true,
5876 "action_data" : [],
5877 "action_entry_const" : true
5878 }
5879 },
5880 {
5881 "name" : "FabricIngress.next.vlan_meta",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005882 "id" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005883 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005884 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005885 "line" : 65,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005886 "column" : 10,
5887 "source_fragment" : "vlan_meta"
5888 },
5889 "key" : [
5890 {
5891 "match_type" : "exact",
5892 "name" : "fabric_metadata.next_id",
5893 "target" : ["scalars", "fabric_metadata_t.next_id"],
5894 "mask" : null
5895 }
5896 ],
5897 "match_type" : "exact",
5898 "type" : "simple",
5899 "max_size" : 1024,
5900 "with_counters" : true,
5901 "support_timeout" : false,
5902 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005903 "action_ids" : [26, 8],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005904 "actions" : ["FabricIngress.next.set_vlan", "nop"],
5905 "base_default_next" : "FabricIngress.next.simple",
5906 "next_tables" : {
5907 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
5908 "nop" : "FabricIngress.next.simple"
5909 },
5910 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005911 "action_id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005912 "action_const" : false,
5913 "action_data" : [],
5914 "action_entry_const" : false
5915 }
5916 },
5917 {
5918 "name" : "FabricIngress.next.simple",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005919 "id" : 31,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005920 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005921 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005922 "line" : 122,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005923 "column" : 10,
5924 "source_fragment" : "simple"
5925 },
5926 "key" : [
5927 {
5928 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005929 "name" : "fabric_metadata.next_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005930 "target" : ["scalars", "fabric_metadata_t.next_id"],
5931 "mask" : null
5932 }
5933 ],
5934 "match_type" : "exact",
5935 "type" : "simple",
5936 "max_size" : 1024,
5937 "with_counters" : true,
5938 "support_timeout" : false,
5939 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005940 "action_ids" : [27, 28, 29, 30, 31, 32, 5],
Yi Tseng47eac892018-07-11 02:17:04 +08005941 "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 -08005942 "base_default_next" : null,
5943 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005944 "__HIT__" : "tbl_act_19",
5945 "__MISS__" : "tbl_act_20"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005946 },
5947 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005948 "action_id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005949 "action_const" : false,
5950 "action_data" : [],
5951 "action_entry_const" : false
5952 }
5953 },
5954 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005955 "name" : "tbl_act_19",
5956 "id" : 32,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005957 "key" : [],
5958 "match_type" : "exact",
5959 "type" : "simple",
5960 "max_size" : 1024,
5961 "with_counters" : false,
5962 "support_timeout" : false,
5963 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005964 "action_ids" : [57],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005965 "actions" : ["act_19"],
5966 "base_default_next" : "node_48",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005967 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005968 "act_19" : "node_48"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005969 },
5970 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005971 "action_id" : 57,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005972 "action_const" : true,
5973 "action_data" : [],
5974 "action_entry_const" : true
5975 }
5976 },
5977 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005978 "name" : "tbl_act_20",
5979 "id" : 33,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005980 "key" : [],
5981 "match_type" : "exact",
5982 "type" : "simple",
5983 "max_size" : 1024,
5984 "with_counters" : false,
5985 "support_timeout" : false,
5986 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07005987 "action_ids" : [58],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005988 "actions" : ["act_20"],
5989 "base_default_next" : "node_48",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005990 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005991 "act_20" : "node_48"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005992 },
5993 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07005994 "action_id" : 58,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005995 "action_const" : true,
5996 "action_data" : [],
5997 "action_entry_const" : true
5998 }
5999 },
6000 {
6001 "name" : "FabricIngress.next.hashed",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006002 "id" : 34,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006003 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006004 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08006005 "line" : 175,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006006 "column" : 10,
6007 "source_fragment" : "hashed"
6008 },
6009 "key" : [
6010 {
6011 "match_type" : "exact",
6012 "name" : "fabric_metadata.next_id",
6013 "target" : ["scalars", "fabric_metadata_t.next_id"],
6014 "mask" : null
6015 }
6016 ],
6017 "match_type" : "exact",
6018 "type" : "indirect_ws",
6019 "action_profile" : "FabricIngress.next.ecmp_selector",
6020 "max_size" : 1024,
6021 "with_counters" : true,
6022 "support_timeout" : false,
6023 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006024 "action_ids" : [33, 34, 35, 6],
Yi Tseng47eac892018-07-11 02:17:04 +08006025 "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 +02006026 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006027 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006028 "__HIT__" : "tbl_act_21",
6029 "__MISS__" : "tbl_act_22"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006030 }
6031 },
6032 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006033 "name" : "tbl_act_21",
6034 "id" : 35,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006035 "key" : [],
6036 "match_type" : "exact",
6037 "type" : "simple",
6038 "max_size" : 1024,
6039 "with_counters" : false,
6040 "support_timeout" : false,
6041 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006042 "action_ids" : [59],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006043 "actions" : ["act_21"],
6044 "base_default_next" : "node_52",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006045 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006046 "act_21" : "node_52"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006047 },
6048 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006049 "action_id" : 59,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006050 "action_const" : true,
6051 "action_data" : [],
6052 "action_entry_const" : true
6053 }
6054 },
6055 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006056 "name" : "tbl_act_22",
6057 "id" : 36,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006058 "key" : [],
6059 "match_type" : "exact",
6060 "type" : "simple",
6061 "max_size" : 1024,
6062 "with_counters" : false,
6063 "support_timeout" : false,
6064 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006065 "action_ids" : [60],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006066 "actions" : ["act_22"],
6067 "base_default_next" : "node_52",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006068 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006069 "act_22" : "node_52"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006070 },
6071 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006072 "action_id" : 60,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006073 "action_const" : true,
6074 "action_data" : [],
6075 "action_entry_const" : true
Esin Karaman971fb7f2017-12-28 13:44:52 +00006076 }
6077 },
6078 {
6079 "name" : "FabricIngress.next.multicast",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006080 "id" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006081 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006082 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006083 "line" : 207,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006084 "column" : 10,
6085 "source_fragment" : "multicast"
6086 },
6087 "key" : [
6088 {
6089 "match_type" : "exact",
6090 "name" : "fabric_metadata.next_id",
6091 "target" : ["scalars", "fabric_metadata_t.next_id"],
6092 "mask" : null
6093 }
6094 ],
6095 "match_type" : "exact",
6096 "type" : "simple",
6097 "max_size" : 1024,
6098 "with_counters" : true,
6099 "support_timeout" : false,
6100 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006101 "action_ids" : [36, 7],
Esin Karaman971fb7f2017-12-28 13:44:52 +00006102 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006103 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006104 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006105 "__HIT__" : "tbl_act_23",
6106 "__MISS__" : "tbl_act_24"
Esin Karaman971fb7f2017-12-28 13:44:52 +00006107 },
6108 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006109 "action_id" : 7,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006110 "action_const" : false,
6111 "action_data" : [],
6112 "action_entry_const" : false
Yi Tseng27b9bc02018-04-12 14:52:40 +08006113 }
6114 },
6115 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006116 "name" : "tbl_act_23",
6117 "id" : 38,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006118 "key" : [],
6119 "match_type" : "exact",
6120 "type" : "simple",
6121 "max_size" : 1024,
6122 "with_counters" : false,
6123 "support_timeout" : false,
6124 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006125 "action_ids" : [61],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006126 "actions" : ["act_23"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006127 "base_default_next" : "node_56",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006128 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006129 "act_23" : "node_56"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006130 },
6131 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006132 "action_id" : 61,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006133 "action_const" : true,
6134 "action_data" : [],
6135 "action_entry_const" : true
6136 }
6137 },
6138 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006139 "name" : "tbl_act_24",
6140 "id" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006141 "key" : [],
6142 "match_type" : "exact",
6143 "type" : "simple",
6144 "max_size" : 1024,
6145 "with_counters" : false,
6146 "support_timeout" : false,
6147 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006148 "action_ids" : [62],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006149 "actions" : ["act_24"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006150 "base_default_next" : "node_56",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006151 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006152 "act_24" : "node_56"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006153 },
6154 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006155 "action_id" : 62,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006156 "action_const" : true,
6157 "action_data" : [],
6158 "action_entry_const" : true
6159 }
6160 },
6161 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006162 "name" : "tbl_act_25",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006163 "id" : 40,
6164 "key" : [],
6165 "match_type" : "exact",
6166 "type" : "simple",
6167 "max_size" : 1024,
6168 "with_counters" : false,
6169 "support_timeout" : false,
6170 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006171 "action_ids" : [63],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006172 "actions" : ["act_25"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006173 "base_default_next" : "node_58",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006174 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006175 "act_25" : "node_58"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006176 },
6177 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006178 "action_id" : 63,
Carmelo Cascone14cde402018-01-25 01:57:18 -08006179 "action_const" : true,
6180 "action_data" : [],
6181 "action_entry_const" : true
6182 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006183 },
6184 {
6185 "name" : "tbl_act_26",
6186 "id" : 41,
6187 "key" : [],
6188 "match_type" : "exact",
6189 "type" : "simple",
6190 "max_size" : 1024,
6191 "with_counters" : false,
6192 "support_timeout" : false,
6193 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006194 "action_ids" : [64],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006195 "actions" : ["act_26"],
6196 "base_default_next" : "node_62",
6197 "next_tables" : {
6198 "act_26" : "node_62"
6199 },
6200 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006201 "action_id" : 64,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006202 "action_const" : true,
6203 "action_data" : [],
6204 "action_entry_const" : true
6205 }
6206 },
6207 {
6208 "name" : "tbl_act_27",
6209 "id" : 42,
6210 "key" : [],
6211 "match_type" : "exact",
6212 "type" : "simple",
6213 "max_size" : 1024,
6214 "with_counters" : false,
6215 "support_timeout" : false,
6216 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006217 "action_ids" : [65],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006218 "actions" : ["act_27"],
6219 "base_default_next" : "node_64",
6220 "next_tables" : {
6221 "act_27" : "node_64"
6222 },
6223 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006224 "action_id" : 65,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006225 "action_const" : true,
6226 "action_data" : [],
6227 "action_entry_const" : true
6228 }
6229 },
6230 {
6231 "name" : "tbl_act_28",
6232 "id" : 43,
6233 "key" : [],
6234 "match_type" : "exact",
6235 "type" : "simple",
6236 "max_size" : 1024,
6237 "with_counters" : false,
6238 "support_timeout" : false,
6239 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006240 "action_ids" : [66],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006241 "actions" : ["act_28"],
6242 "base_default_next" : null,
6243 "next_tables" : {
6244 "act_28" : null
6245 },
6246 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006247 "action_id" : 66,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006248 "action_const" : true,
6249 "action_data" : [],
6250 "action_entry_const" : true
6251 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006252 }
6253 ],
6254 "action_profiles" : [
6255 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006256 "name" : "FabricIngress.next.ecmp_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006257 "id" : 0,
6258 "max_size" : 64,
6259 "selector" : {
6260 "algo" : "crc16",
6261 "input" : [
6262 {
6263 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08006264 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006265 },
6266 {
6267 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08006268 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006269 },
6270 {
6271 "type" : "field",
6272 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
6273 },
6274 {
6275 "type" : "field",
6276 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
6277 },
6278 {
6279 "type" : "field",
6280 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
6281 }
6282 ]
6283 }
6284 }
6285 ],
6286 "conditionals" : [
6287 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006288 "name" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006289 "id" : 0,
6290 "source_info" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006291 "filename" : "include/spgw.p4",
6292 "line" : 30,
6293 "column" : 12,
6294 "source_fragment" : "! is_gtpu_encapped"
6295 },
6296 "expression" : {
6297 "type" : "expression",
6298 "value" : {
6299 "op" : "not",
6300 "left" : null,
6301 "right" : {
6302 "type" : "expression",
6303 "value" : {
6304 "op" : "d2b",
6305 "left" : null,
6306 "right" : {
6307 "type" : "field",
6308 "value" : ["gtpu", "$valid$"]
6309 }
6310 }
6311 }
6312 }
6313 },
6314 "true_next" : "tbl_act_0",
6315 "false_next" : "node_5"
6316 },
6317 {
6318 "name" : "node_5",
6319 "id" : 1,
6320 "expression" : {
6321 "type" : "expression",
6322 "value" : {
6323 "op" : "not",
6324 "left" : null,
6325 "right" : {
6326 "type" : "expression",
6327 "value" : {
6328 "op" : "d2b",
6329 "left" : null,
6330 "right" : {
6331 "type" : "field",
6332 "value" : ["scalars", "spgw_normalizer_hasReturned_0"]
6333 }
6334 }
6335 }
6336 }
6337 },
6338 "true_next" : "tbl_act_1",
6339 "false_next" : "node_10"
6340 },
6341 {
6342 "name" : "node_7",
6343 "id" : 2,
6344 "source_info" : {
6345 "filename" : "include/spgw.p4",
6346 "line" : 34,
6347 "column" : 12,
6348 "source_fragment" : "inner_udp.isValid()"
6349 },
6350 "expression" : {
6351 "type" : "expression",
6352 "value" : {
6353 "op" : "d2b",
6354 "left" : null,
6355 "right" : {
6356 "type" : "field",
6357 "value" : ["inner_udp", "$valid$"]
6358 }
6359 }
6360 },
6361 "true_next" : "tbl_act_2",
6362 "false_next" : "tbl_act_3"
6363 },
6364 {
6365 "name" : "node_10",
6366 "id" : 3,
6367 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006368 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006369 "line" : 25,
6370 "column" : 12,
6371 "source_fragment" : "hdr.packet_out.isValid()"
6372 },
6373 "expression" : {
6374 "type" : "expression",
6375 "value" : {
6376 "op" : "d2b",
6377 "left" : null,
6378 "right" : {
6379 "type" : "field",
6380 "value" : ["packet_out", "$valid$"]
6381 }
6382 }
6383 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006384 "true_next" : "tbl_act_4",
6385 "false_next" : "tbl_act_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006386 },
6387 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006388 "name" : "node_13",
6389 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006390 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006391 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006392 "line" : 139,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006393 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006394 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006395 },
6396 "expression" : {
6397 "type" : "expression",
6398 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006399 "op" : "d2b",
6400 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006401 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006402 "type" : "field",
6403 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006404 }
6405 }
6406 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006407 "true_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
6408 "false_next" : "FabricIngress.spgw_ingress.dl_sess_lookup"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006409 },
6410 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006411 "name" : "node_17",
6412 "id" : 5,
6413 "source_info" : {
6414 "filename" : "include/spgw.p4",
6415 "line" : 143,
6416 "column" : 16,
6417 "source_fragment" : "!s1u_filter_table.apply().hit"
6418 },
6419 "expression" : {
6420 "type" : "expression",
6421 "value" : {
6422 "op" : "not",
6423 "left" : null,
6424 "right" : {
6425 "type" : "expression",
6426 "value" : {
6427 "op" : "d2b",
6428 "left" : null,
6429 "right" : {
6430 "type" : "field",
6431 "value" : ["scalars", "spgw_ingress_tmp_1"]
6432 }
6433 }
6434 }
6435 }
6436 },
6437 "true_next" : "tbl_drop_now",
6438 "false_next" : "tbl_act_8"
6439 },
6440 {
6441 "name" : "node_24",
6442 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006443 "expression" : {
6444 "type" : "expression",
6445 "value" : {
6446 "op" : "d2b",
6447 "left" : null,
6448 "right" : {
6449 "type" : "field",
6450 "value" : ["scalars", "spgw_ingress_tmp_2"]
6451 }
6452 }
6453 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006454 "true_next" : "tbl_act_11",
6455 "false_next" : "tbl_act_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006456 },
6457 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006458 "name" : "node_27",
6459 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006460 "expression" : {
6461 "type" : "expression",
6462 "value" : {
6463 "op" : "not",
6464 "left" : null,
6465 "right" : {
6466 "type" : "expression",
6467 "value" : {
6468 "op" : "d2b",
6469 "left" : null,
6470 "right" : {
6471 "type" : "field",
6472 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
6473 }
6474 }
6475 }
6476 }
6477 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006478 "true_next" : "tbl_act_13",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006479 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006480 },
6481 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006482 "name" : "node_32",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006483 "id" : 8,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006484 "expression" : {
6485 "type" : "expression",
6486 "value" : {
6487 "op" : "d2b",
6488 "left" : null,
6489 "right" : {
6490 "type" : "field",
6491 "value" : ["scalars", "filtering_tmp_0"]
6492 }
6493 }
6494 },
6495 "true_next" : "FabricIngress.filtering.fwd_classifier",
6496 "false_next" : "tbl_act_16"
6497 },
6498 {
6499 "name" : "node_35",
6500 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006501 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006502 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07006503 "line" : 191,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006504 "column" : 11,
6505 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
6506 },
6507 "expression" : {
6508 "type" : "expression",
6509 "value" : {
6510 "op" : "==",
6511 "left" : {
6512 "type" : "field",
6513 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6514 },
6515 "right" : {
6516 "type" : "hexstr",
6517 "value" : "0x00"
6518 }
6519 }
6520 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006521 "true_next" : "FabricIngress.forwarding.bridging",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006522 "false_next" : "node_37"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006523 },
6524 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006525 "name" : "node_37",
6526 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006527 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006528 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07006529 "line" : 192,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006530 "column" : 17,
6531 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
6532 },
6533 "expression" : {
6534 "type" : "expression",
6535 "value" : {
6536 "op" : "==",
6537 "left" : {
6538 "type" : "field",
6539 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6540 },
6541 "right" : {
6542 "type" : "hexstr",
6543 "value" : "0x01"
6544 }
6545 }
6546 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006547 "true_next" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006548 "false_next" : "node_40"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006549 },
6550 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006551 "name" : "node_40",
6552 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006553 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006554 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07006555 "line" : 198,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006556 "column" : 17,
6557 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
6558 },
6559 "expression" : {
6560 "type" : "expression",
6561 "value" : {
6562 "op" : "==",
6563 "left" : {
6564 "type" : "field",
6565 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6566 },
6567 "right" : {
6568 "type" : "hexstr",
6569 "value" : "0x02"
6570 }
6571 }
6572 },
Charles Chan384aea22018-08-23 22:08:02 -07006573 "true_next" : "FabricIngress.forwarding.routing_v4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006574 "false_next" : "FabricIngress.forwarding.acl"
6575 },
6576 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006577 "name" : "node_48",
6578 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006579 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006580 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08006581 "line" : 219,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006582 "column" : 12,
6583 "source_fragment" : "!simple.apply().hit"
6584 },
6585 "expression" : {
6586 "type" : "expression",
6587 "value" : {
6588 "op" : "not",
6589 "left" : null,
6590 "right" : {
6591 "type" : "expression",
6592 "value" : {
6593 "op" : "d2b",
6594 "left" : null,
6595 "right" : {
6596 "type" : "field",
6597 "value" : ["scalars", "next_tmp_4"]
6598 }
6599 }
6600 }
6601 }
6602 },
6603 "true_next" : "FabricIngress.next.hashed",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006604 "false_next" : "node_58"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006605 },
6606 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006607 "name" : "node_52",
6608 "id" : 13,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006609 "source_info" : {
6610 "filename" : "include/control/next.p4",
6611 "line" : 220,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006612 "column" : 16,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006613 "source_fragment" : "!hashed.apply().hit"
6614 },
6615 "expression" : {
6616 "type" : "expression",
6617 "value" : {
6618 "op" : "not",
6619 "left" : null,
6620 "right" : {
6621 "type" : "expression",
6622 "value" : {
6623 "op" : "d2b",
6624 "left" : null,
6625 "right" : {
6626 "type" : "field",
6627 "value" : ["scalars", "next_tmp_3"]
6628 }
6629 }
6630 }
6631 }
6632 },
6633 "true_next" : "FabricIngress.next.multicast",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006634 "false_next" : "node_58"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006635 },
6636 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006637 "name" : "node_56",
6638 "id" : 14,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006639 "source_info" : {
6640 "filename" : "include/control/next.p4",
6641 "line" : 221,
6642 "column" : 20,
6643 "source_fragment" : "!multicast.apply().hit"
6644 },
6645 "expression" : {
6646 "type" : "expression",
6647 "value" : {
6648 "op" : "not",
6649 "left" : null,
6650 "right" : {
6651 "type" : "expression",
6652 "value" : {
6653 "op" : "d2b",
6654 "left" : null,
6655 "right" : {
6656 "type" : "field",
6657 "value" : ["scalars", "next_tmp_2"]
6658 }
6659 }
6660 }
6661 }
6662 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006663 "true_next" : "tbl_act_25",
6664 "false_next" : "node_58"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006665 },
6666 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006667 "name" : "node_58",
6668 "id" : 15,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006669 "expression" : {
6670 "type" : "expression",
6671 "value" : {
6672 "op" : "not",
6673 "left" : null,
6674 "right" : {
6675 "type" : "expression",
6676 "value" : {
6677 "op" : "d2b",
6678 "left" : null,
6679 "right" : {
6680 "type" : "field",
6681 "value" : ["scalars", "next_hasReturned_0"]
6682 }
6683 }
6684 }
6685 }
6686 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006687 "true_next" : "node_59",
6688 "false_next" : "node_62"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006689 },
6690 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006691 "name" : "node_59",
6692 "id" : 16,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006693 "source_info" : {
6694 "filename" : "include/control/next.p4",
6695 "line" : 228,
6696 "column" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006697 "source_fragment" : "!hdr.mpls.isValid()"
6698 },
6699 "expression" : {
6700 "type" : "expression",
6701 "value" : {
6702 "op" : "not",
6703 "left" : null,
6704 "right" : {
6705 "type" : "expression",
6706 "value" : {
6707 "op" : "d2b",
6708 "left" : null,
6709 "right" : {
6710 "type" : "field",
6711 "value" : ["mpls", "$valid$"]
6712 }
6713 }
6714 }
6715 }
6716 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006717 "true_next" : "node_60",
6718 "false_next" : "node_62"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006719 },
6720 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006721 "name" : "node_60",
6722 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006723 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006724 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006725 "line" : 229,
6726 "column" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006727 "source_fragment" : "hdr.ipv4.isValid()"
6728 },
6729 "expression" : {
6730 "type" : "expression",
6731 "value" : {
6732 "op" : "d2b",
6733 "left" : null,
6734 "right" : {
6735 "type" : "field",
6736 "value" : ["ipv4", "$valid$"]
6737 }
6738 }
6739 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006740 "true_next" : "tbl_act_26",
6741 "false_next" : "node_62"
Yi Tseng27b9bc02018-04-12 14:52:40 +08006742 },
6743 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006744 "name" : "node_62",
6745 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006746 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006747 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006748 "line" : 27,
6749 "column" : 12,
6750 "source_fragment" : "standard_metadata.egress_spec < 511"
6751 },
6752 "expression" : {
6753 "type" : "expression",
6754 "value" : {
6755 "op" : "<",
6756 "left" : {
6757 "type" : "field",
6758 "value" : ["standard_metadata", "egress_spec"]
6759 },
6760 "right" : {
6761 "type" : "hexstr",
6762 "value" : "0x01ff"
6763 }
6764 }
6765 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006766 "true_next" : "tbl_act_27",
6767 "false_next" : "node_64"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006768 },
6769 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006770 "name" : "node_64",
6771 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006772 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006773 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006774 "line" : 30,
6775 "column" : 12,
6776 "source_fragment" : "standard_metadata.ingress_port < 511"
6777 },
6778 "expression" : {
6779 "type" : "expression",
6780 "value" : {
6781 "op" : "<",
6782 "left" : {
6783 "type" : "field",
6784 "value" : ["standard_metadata", "ingress_port"]
6785 },
6786 "right" : {
6787 "type" : "hexstr",
6788 "value" : "0x01ff"
6789 }
6790 }
6791 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006792 "false_next" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006793 "true_next" : "tbl_act_28"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006794 }
6795 ]
6796 },
6797 {
6798 "name" : "egress",
6799 "id" : 1,
6800 "source_info" : {
6801 "filename" : "fabric.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006802 "line" : 80,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006803 "column" : 8,
6804 "source_fragment" : "FabricEgress"
6805 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006806 "init_table" : "node_68",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006807 "tables" : [
6808 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006809 "name" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006810 "id" : 44,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006811 "key" : [],
6812 "match_type" : "exact",
6813 "type" : "simple",
6814 "max_size" : 1024,
6815 "with_counters" : false,
6816 "support_timeout" : false,
6817 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006818 "action_ids" : [71],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006819 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
6820 "base_default_next" : "node_72",
6821 "next_tables" : {
6822 "FabricEgress.pkt_io_egress.pop_vlan" : "node_72"
6823 },
6824 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006825 "action_id" : 71,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006826 "action_const" : true,
6827 "action_data" : [],
6828 "action_entry_const" : true
6829 }
6830 },
6831 {
6832 "name" : "tbl_drop_now_0",
6833 "id" : 45,
6834 "key" : [],
6835 "match_type" : "exact",
6836 "type" : "simple",
6837 "max_size" : 1024,
6838 "with_counters" : false,
6839 "support_timeout" : false,
6840 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006841 "action_ids" : [68],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006842 "actions" : ["drop_now"],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006843 "base_default_next" : "tbl_act_29",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006844 "next_tables" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006845 "drop_now" : "tbl_act_29"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006846 },
6847 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006848 "action_id" : 68,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006849 "action_const" : true,
6850 "action_data" : [],
6851 "action_entry_const" : true
6852 }
6853 },
6854 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006855 "name" : "tbl_act_29",
6856 "id" : 46,
6857 "key" : [],
6858 "match_type" : "exact",
6859 "type" : "simple",
6860 "max_size" : 1024,
6861 "with_counters" : false,
6862 "support_timeout" : false,
6863 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006864 "action_ids" : [73],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006865 "actions" : ["act_29"],
6866 "base_default_next" : null,
6867 "next_tables" : {
6868 "act_29" : null
6869 },
6870 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006871 "action_id" : 73,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006872 "action_const" : true,
6873 "action_data" : [],
6874 "action_entry_const" : true
6875 }
6876 },
6877 {
6878 "name" : "tbl_drop_now_1",
6879 "id" : 47,
6880 "key" : [],
6881 "match_type" : "exact",
6882 "type" : "simple",
6883 "max_size" : 1024,
6884 "with_counters" : false,
6885 "support_timeout" : false,
6886 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006887 "action_ids" : [69],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006888 "actions" : ["drop_now"],
6889 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6890 "next_tables" : {
6891 "drop_now" : "FabricEgress.egress_next.egress_vlan"
6892 },
6893 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006894 "action_id" : 69,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006895 "action_const" : true,
6896 "action_data" : [],
6897 "action_entry_const" : true
6898 }
6899 },
6900 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006901 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006902 "id" : 48,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006903 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006904 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006905 "line" : 258,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006906 "column" : 10,
6907 "source_fragment" : "egress_vlan"
6908 },
6909 "key" : [
6910 {
6911 "match_type" : "exact",
6912 "name" : "hdr.vlan_tag.vlan_id",
6913 "target" : ["vlan_tag", "vlan_id"],
6914 "mask" : null
6915 },
6916 {
6917 "match_type" : "exact",
6918 "name" : "standard_metadata.egress_port",
6919 "target" : ["standard_metadata", "egress_port"],
6920 "mask" : null
6921 }
6922 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006923 "match_type" : "exact",
6924 "type" : "simple",
6925 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08006926 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006927 "support_timeout" : false,
6928 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006929 "action_ids" : [72, 67],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006930 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006931 "base_default_next" : "node_78",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006932 "next_tables" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006933 "FabricEgress.egress_next.pop_vlan" : "node_78",
6934 "nop" : "node_78"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006935 },
6936 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006937 "action_id" : 67,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006938 "action_const" : false,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006939 "action_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006940 "action_entry_const" : false
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006941 }
6942 },
6943 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006944 "name" : "tbl_spgw_egress_gtpu_encap",
6945 "id" : 49,
6946 "key" : [],
6947 "match_type" : "exact",
6948 "type" : "simple",
6949 "max_size" : 1024,
6950 "with_counters" : false,
6951 "support_timeout" : false,
6952 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07006953 "action_ids" : [70],
Yi Tseng27b9bc02018-04-12 14:52:40 +08006954 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006955 "base_default_next" : null,
6956 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006957 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006958 },
6959 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07006960 "action_id" : 70,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006961 "action_const" : true,
6962 "action_data" : [],
6963 "action_entry_const" : true
6964 }
6965 }
6966 ],
6967 "action_profiles" : [],
6968 "conditionals" : [
6969 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006970 "name" : "node_68",
6971 "id" : 20,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006972 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006973 "filename" : "include/control/packetio.p4",
6974 "line" : 43,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006975 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006976 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006977 },
6978 "expression" : {
6979 "type" : "expression",
6980 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006981 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006982 "left" : {
6983 "type" : "expression",
6984 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006985 "op" : "d2b",
6986 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006987 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006988 "type" : "field",
6989 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02006990 }
6991 }
6992 },
6993 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006994 "type" : "bool",
6995 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02006996 }
6997 }
6998 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006999 "true_next" : null,
7000 "false_next" : "node_69"
Carmelo Casconea5400af2018-07-17 22:11:54 +02007001 },
7002 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007003 "name" : "node_69",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007004 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007005 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007006 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007007 "line" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007008 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08007009 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007010 },
7011 "expression" : {
7012 "type" : "expression",
7013 "value" : {
7014 "op" : "==",
7015 "left" : {
7016 "type" : "field",
7017 "value" : ["standard_metadata", "egress_port"]
7018 },
7019 "right" : {
7020 "type" : "hexstr",
7021 "value" : "0x00ff"
7022 }
7023 }
7024 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007025 "true_next" : "node_70",
7026 "false_next" : "node_75"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007027 },
7028 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007029 "name" : "node_70",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007030 "id" : 22,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007031 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007032 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007033 "line" : 48,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007034 "column" : 16,
Carmelo Cascone228092b2018-06-15 20:41:10 +02007035 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in == true"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007036 },
7037 "expression" : {
7038 "type" : "expression",
7039 "value" : {
7040 "op" : "and",
7041 "left" : {
7042 "type" : "expression",
7043 "value" : {
7044 "op" : "d2b",
7045 "left" : null,
7046 "right" : {
7047 "type" : "field",
7048 "value" : ["vlan_tag", "$valid$"]
7049 }
7050 }
7051 },
7052 "right" : {
7053 "type" : "expression",
7054 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02007055 "op" : "==",
7056 "left" : {
7057 "type" : "expression",
7058 "value" : {
7059 "op" : "d2b",
7060 "left" : null,
7061 "right" : {
7062 "type" : "field",
7063 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
7064 }
7065 }
7066 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007067 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02007068 "type" : "bool",
7069 "value" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007070 }
7071 }
7072 }
7073 }
7074 },
7075 "true_next" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007076 "false_next" : "node_72"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02007077 },
7078 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007079 "name" : "node_72",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007080 "id" : 23,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02007081 "source_info" : {
7082 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007083 "line" : 51,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02007084 "column" : 16,
7085 "source_fragment" : "fabric_metadata.is_multicast == true && ..."
7086 },
7087 "expression" : {
7088 "type" : "expression",
7089 "value" : {
7090 "op" : "and",
7091 "left" : {
7092 "type" : "expression",
7093 "value" : {
7094 "op" : "==",
7095 "left" : {
7096 "type" : "expression",
7097 "value" : {
7098 "op" : "d2b",
7099 "left" : null,
7100 "right" : {
7101 "type" : "field",
7102 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
7103 }
7104 }
7105 },
7106 "right" : {
7107 "type" : "bool",
7108 "value" : true
7109 }
7110 }
7111 },
7112 "right" : {
7113 "type" : "expression",
7114 "value" : {
7115 "op" : "==",
7116 "left" : {
7117 "type" : "expression",
7118 "value" : {
7119 "op" : "d2b",
7120 "left" : null,
7121 "right" : {
7122 "type" : "field",
7123 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
7124 }
7125 }
7126 },
7127 "right" : {
7128 "type" : "bool",
7129 "value" : false
7130 }
7131 }
7132 }
7133 }
7134 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007135 "true_next" : "tbl_drop_now_0",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007136 "false_next" : "tbl_act_29"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007137 },
7138 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007139 "name" : "node_75",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007140 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007141 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007142 "filename" : "include/control/next.p4",
7143 "line" : 272,
7144 "column" : 12,
7145 "source_fragment" : "fabric_metadata.is_multicast == true ..."
7146 },
7147 "expression" : {
7148 "type" : "expression",
7149 "value" : {
7150 "op" : "and",
7151 "left" : {
7152 "type" : "expression",
7153 "value" : {
7154 "op" : "==",
7155 "left" : {
7156 "type" : "expression",
7157 "value" : {
7158 "op" : "d2b",
7159 "left" : null,
7160 "right" : {
7161 "type" : "field",
7162 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
7163 }
7164 }
7165 },
7166 "right" : {
7167 "type" : "bool",
7168 "value" : true
7169 }
7170 }
7171 },
7172 "right" : {
7173 "type" : "expression",
7174 "value" : {
7175 "op" : "==",
7176 "left" : {
7177 "type" : "field",
7178 "value" : ["standard_metadata", "ingress_port"]
7179 },
7180 "right" : {
7181 "type" : "field",
7182 "value" : ["standard_metadata", "egress_port"]
7183 }
7184 }
7185 }
7186 }
7187 },
7188 "true_next" : "tbl_drop_now_1",
7189 "false_next" : "FabricEgress.egress_next.egress_vlan"
7190 },
7191 {
7192 "name" : "node_78",
7193 "id" : 25,
7194 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007195 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07007196 "line" : 221,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007197 "column" : 12,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007198 "source_fragment" : "spgw_meta.direction == SPGW_DIR_DOWNLINK"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007199 },
7200 "expression" : {
7201 "type" : "expression",
7202 "value" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007203 "op" : "==",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007204 "left" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007205 "type" : "field",
7206 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007207 },
7208 "right" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007209 "type" : "hexstr",
7210 "value" : "0x02"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007211 }
7212 }
7213 },
7214 "false_next" : null,
7215 "true_next" : "tbl_spgw_egress_gtpu_encap"
7216 }
7217 ]
7218 }
7219 ],
7220 "checksums" : [
7221 {
7222 "name" : "cksum",
7223 "id" : 0,
7224 "target" : ["ipv4", "hdr_checksum"],
7225 "type" : "generic",
7226 "calculation" : "calc",
7227 "if_cond" : {
7228 "type" : "expression",
7229 "value" : {
7230 "op" : "d2b",
7231 "left" : null,
7232 "right" : {
7233 "type" : "field",
7234 "value" : ["ipv4", "$valid$"]
7235 }
7236 }
7237 }
7238 },
7239 {
7240 "name" : "cksum_0",
7241 "id" : 1,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007242 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007243 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007244 "calculation" : "calc_0",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007245 "if_cond" : {
7246 "type" : "expression",
7247 "value" : {
7248 "op" : "d2b",
7249 "left" : null,
7250 "right" : {
7251 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007252 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007253 }
7254 }
7255 }
7256 },
7257 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007258 "name" : "cksum_1",
7259 "id" : 2,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007260 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007261 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007262 "calculation" : "calc_1",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007263 "if_cond" : {
7264 "type" : "expression",
7265 "value" : {
7266 "op" : "d2b",
7267 "left" : null,
7268 "right" : {
7269 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007270 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007271 }
7272 }
7273 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007274 }
7275 ],
7276 "force_arith" : [],
7277 "extern_instances" : [],
7278 "field_aliases" : [
7279 [
7280 "queueing_metadata.enq_timestamp",
7281 ["standard_metadata", "enq_timestamp"]
7282 ],
7283 [
7284 "queueing_metadata.enq_qdepth",
7285 ["standard_metadata", "enq_qdepth"]
7286 ],
7287 [
7288 "queueing_metadata.deq_timedelta",
7289 ["standard_metadata", "deq_timedelta"]
7290 ],
7291 [
7292 "queueing_metadata.deq_qdepth",
7293 ["standard_metadata", "deq_qdepth"]
7294 ],
7295 [
7296 "intrinsic_metadata.ingress_global_timestamp",
7297 ["standard_metadata", "ingress_global_timestamp"]
7298 ],
7299 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08007300 "intrinsic_metadata.egress_global_timestamp",
7301 ["standard_metadata", "egress_global_timestamp"]
7302 ],
7303 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007304 "intrinsic_metadata.lf_field_list",
7305 ["standard_metadata", "lf_field_list"]
7306 ],
7307 [
7308 "intrinsic_metadata.mcast_grp",
7309 ["standard_metadata", "mcast_grp"]
7310 ],
7311 [
7312 "intrinsic_metadata.resubmit_flag",
7313 ["standard_metadata", "resubmit_flag"]
7314 ],
7315 [
7316 "intrinsic_metadata.egress_rid",
7317 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08007318 ],
7319 [
7320 "intrinsic_metadata.recirculate_flag",
7321 ["standard_metadata", "recirculate_flag"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007322 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007323 ],
7324 "program" : "fabric.p4",
7325 "__meta__" : {
7326 "version" : [2, 18],
7327 "compiler" : "https://github.com/p4lang/p4c"
7328 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007329}