blob: 2f3beb2fb7dd9076eb34c92a3c504c883e390732 [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 {
Yi Tseng47eac892018-07-11 02:17:04 +08001782 "name" : "FabricIngress.forwarding.set_next_id_acl",
Charles Chancf696e52018-08-16 16:25:13 -07001783 "id" : 20,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001784 "runtime_data" : [
1785 {
1786 "name" : "next_id",
1787 "bitwidth" : 32
1788 }
1789 ],
1790 "primitives" : [
1791 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001792 "op" : "assign",
1793 "parameters" : [
1794 {
1795 "type" : "field",
1796 "value" : ["scalars", "fabric_metadata_t.next_id"]
1797 },
1798 {
1799 "type" : "runtime_data",
1800 "value" : 0
1801 }
1802 ],
1803 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001804 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001805 "line" : 105,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001806 "column" : 8,
1807 "source_fragment" : "fabric_metadata.next_id = next_id"
1808 }
1809 }
1810 ]
1811 },
1812 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001813 "name" : "FabricIngress.forwarding.punt_to_cpu",
Charles Chancf696e52018-08-16 16:25:13 -07001814 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001815 "runtime_data" : [],
1816 "primitives" : [
1817 {
1818 "op" : "assign",
1819 "parameters" : [
1820 {
1821 "type" : "field",
1822 "value" : ["standard_metadata", "egress_spec"]
1823 },
1824 {
1825 "type" : "hexstr",
1826 "value" : "0x00ff"
1827 }
1828 ],
1829 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001830 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001831 "line" : 111,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001832 "column" : 8,
1833 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001834 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001835 },
1836 {
1837 "op" : "exit",
1838 "parameters" : [],
1839 "source_info" : {
1840 "filename" : "include/control/forwarding.p4",
1841 "line" : 113,
1842 "column" : 8,
1843 "source_fragment" : "exit"
1844 }
1845 }
1846 ]
1847 },
1848 {
1849 "name" : "FabricIngress.forwarding.clone_to_cpu",
Charles Chancf696e52018-08-16 16:25:13 -07001850 "id" : 22,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001851 "runtime_data" : [],
1852 "primitives" : [
1853 {
1854 "op" : "assign",
1855 "parameters" : [
1856 {
1857 "type" : "field",
1858 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
1859 },
1860 {
1861 "type" : "expression",
1862 "value" : {
1863 "type" : "expression",
1864 "value" : {
1865 "op" : "b2d",
1866 "left" : null,
1867 "right" : {
1868 "type" : "bool",
1869 "value" : true
1870 }
1871 }
1872 }
1873 }
1874 ],
1875 "source_info" : {
1876 "filename" : "include/control/forwarding.p4",
1877 "line" : 118,
1878 "column" : 8,
1879 "source_fragment" : "fabric_metadata.clone_to_cpu = true"
1880 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001881 }
1882 ]
1883 },
1884 {
Yi Tseng47eac892018-07-11 02:17:04 +08001885 "name" : "FabricIngress.forwarding.drop",
Charles Chancf696e52018-08-16 16:25:13 -07001886 "id" : 23,
Yi Tseng47eac892018-07-11 02:17:04 +08001887 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001888 "primitives" : [
1889 {
Yi Tseng47eac892018-07-11 02:17:04 +08001890 "op" : "drop",
1891 "parameters" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001892 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001893 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001894 "line" : 123,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001895 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001896 "source_fragment" : "mark_to_drop()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001897 }
1898 }
1899 ]
1900 },
1901 {
Charles Chancf696e52018-08-16 16:25:13 -07001902 "name" : "FabricIngress.forwarding.nop_acl",
1903 "id" : 24,
1904 "runtime_data" : [],
1905 "primitives" : []
1906 },
1907 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001908 "name" : "FabricIngress.next.set_vlan",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001909 "id" : 25,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001910 "runtime_data" : [
1911 {
1912 "name" : "new_vlan_id",
1913 "bitwidth" : 12
1914 }
1915 ],
1916 "primitives" : [
1917 {
1918 "op" : "assign",
1919 "parameters" : [
1920 {
1921 "type" : "field",
1922 "value" : ["vlan_tag", "vlan_id"]
1923 },
1924 {
1925 "type" : "runtime_data",
1926 "value" : 0
1927 }
1928 ],
1929 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001930 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001931 "line" : 61,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001932 "column" : 8,
1933 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1934 }
1935 }
1936 ]
1937 },
1938 {
Yi Tseng47eac892018-07-11 02:17:04 +08001939 "name" : "FabricIngress.next.output_simple",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001940 "id" : 26,
Yi Tseng47eac892018-07-11 02:17:04 +08001941 "runtime_data" : [
1942 {
1943 "name" : "port_num",
1944 "bitwidth" : 9
1945 }
1946 ],
1947 "primitives" : [
1948 {
1949 "op" : "assign",
1950 "parameters" : [
1951 {
1952 "type" : "field",
1953 "value" : ["standard_metadata", "egress_spec"]
1954 },
1955 {
1956 "type" : "runtime_data",
1957 "value" : 0
1958 }
1959 ],
1960 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001961 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001962 "line" : 85,
1963 "column" : 8,
1964 "source_fragment" : "standard_metadata.egress_spec = port_num"
1965 }
1966 }
1967 ]
1968 },
1969 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001970 "name" : "FabricIngress.next.set_vlan_output",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001971 "id" : 27,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001972 "runtime_data" : [
1973 {
1974 "name" : "new_vlan_id",
1975 "bitwidth" : 12
1976 },
1977 {
1978 "name" : "port_num",
1979 "bitwidth" : 9
1980 }
1981 ],
1982 "primitives" : [
1983 {
1984 "op" : "assign",
1985 "parameters" : [
1986 {
1987 "type" : "field",
1988 "value" : ["vlan_tag", "vlan_id"]
1989 },
1990 {
1991 "type" : "runtime_data",
1992 "value" : 0
1993 }
1994 ],
1995 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001996 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001997 "line" : 90,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001998 "column" : 8,
1999 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
2000 }
2001 },
2002 {
2003 "op" : "assign",
2004 "parameters" : [
2005 {
2006 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002007 "value" : ["standard_metadata", "egress_spec"]
2008 },
2009 {
2010 "type" : "runtime_data",
2011 "value" : 1
2012 }
2013 ],
2014 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002015 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002016 "line" : 85,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002017 "column" : 8,
2018 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2019 }
2020 }
2021 ]
2022 },
2023 {
Yi Tseng47eac892018-07-11 02:17:04 +08002024 "name" : "FabricIngress.next.l3_routing_simple",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002025 "id" : 28,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002026 "runtime_data" : [
2027 {
2028 "name" : "port_num",
2029 "bitwidth" : 9
2030 },
2031 {
2032 "name" : "smac",
2033 "bitwidth" : 48
2034 },
2035 {
2036 "name" : "dmac",
2037 "bitwidth" : 48
2038 }
2039 ],
2040 "primitives" : [
2041 {
2042 "op" : "assign",
2043 "parameters" : [
2044 {
2045 "type" : "field",
2046 "value" : ["ethernet", "src_addr"]
2047 },
2048 {
2049 "type" : "runtime_data",
2050 "value" : 1
2051 }
2052 ],
2053 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002054 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002055 "line" : 37,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002056 "column" : 8,
2057 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2058 }
2059 },
2060 {
2061 "op" : "assign",
2062 "parameters" : [
2063 {
2064 "type" : "field",
2065 "value" : ["ethernet", "dst_addr"]
2066 },
2067 {
2068 "type" : "runtime_data",
2069 "value" : 2
2070 }
2071 ],
2072 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002073 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002074 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002075 "column" : 8,
2076 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2077 }
2078 },
2079 {
2080 "op" : "assign",
2081 "parameters" : [
2082 {
2083 "type" : "field",
2084 "value" : ["standard_metadata", "egress_spec"]
2085 },
2086 {
2087 "type" : "runtime_data",
2088 "value" : 0
2089 }
2090 ],
2091 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002092 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002093 "line" : 85,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002094 "column" : 8,
2095 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2096 }
2097 }
2098 ]
2099 },
2100 {
Yi Tseng47eac892018-07-11 02:17:04 +08002101 "name" : "FabricIngress.next.mpls_routing_v4_simple",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002102 "id" : 29,
Yi Tseng47eac892018-07-11 02:17:04 +08002103 "runtime_data" : [
2104 {
2105 "name" : "port_num",
2106 "bitwidth" : 9
2107 },
2108 {
2109 "name" : "smac",
2110 "bitwidth" : 48
2111 },
2112 {
2113 "name" : "dmac",
2114 "bitwidth" : 48
2115 },
2116 {
2117 "name" : "label",
2118 "bitwidth" : 20
2119 }
2120 ],
2121 "primitives" : [
2122 {
2123 "op" : "assign",
2124 "parameters" : [
2125 {
2126 "type" : "field",
2127 "value" : ["ethernet", "src_addr"]
2128 },
2129 {
2130 "type" : "runtime_data",
2131 "value" : 1
2132 }
2133 ],
2134 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002135 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002136 "line" : 37,
2137 "column" : 8,
2138 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2139 }
2140 },
2141 {
2142 "op" : "assign",
2143 "parameters" : [
2144 {
2145 "type" : "field",
2146 "value" : ["ethernet", "dst_addr"]
2147 },
2148 {
2149 "type" : "runtime_data",
2150 "value" : 2
2151 }
2152 ],
2153 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002154 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002155 "line" : 41,
2156 "column" : 8,
2157 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2158 }
2159 },
2160 {
2161 "op" : "assign",
2162 "parameters" : [
2163 {
2164 "type" : "field",
2165 "value" : ["standard_metadata", "egress_spec"]
2166 },
2167 {
2168 "type" : "runtime_data",
2169 "value" : 0
2170 }
2171 ],
2172 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002173 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002174 "line" : 85,
2175 "column" : 8,
2176 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2177 }
2178 },
2179 {
2180 "op" : "add_header",
2181 "parameters" : [
2182 {
2183 "type" : "header",
2184 "value" : "mpls"
2185 }
2186 ],
2187 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002188 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002189 "line" : 46,
2190 "column" : 8,
2191 "source_fragment" : "hdr.mpls.setValid()"
2192 }
2193 },
2194 {
2195 "op" : "assign",
2196 "parameters" : [
2197 {
2198 "type" : "field",
2199 "value" : ["vlan_tag", "ether_type"]
2200 },
2201 {
2202 "type" : "hexstr",
2203 "value" : "0x8847"
2204 }
2205 ],
2206 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002207 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002208 "line" : 90,
Yi Tseng47eac892018-07-11 02:17:04 +08002209 "column" : 31,
2210 "source_fragment" : "0x8847; ..."
2211 }
2212 },
2213 {
2214 "op" : "assign",
2215 "parameters" : [
2216 {
2217 "type" : "field",
2218 "value" : ["mpls", "label"]
2219 },
2220 {
2221 "type" : "runtime_data",
2222 "value" : 3
2223 }
2224 ],
2225 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002226 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002227 "line" : 48,
2228 "column" : 8,
2229 "source_fragment" : "hdr.mpls.label = label; ..."
2230 }
2231 },
2232 {
2233 "op" : "assign",
2234 "parameters" : [
2235 {
2236 "type" : "field",
2237 "value" : ["mpls", "tc"]
2238 },
2239 {
2240 "type" : "hexstr",
2241 "value" : "0x00"
2242 }
2243 ],
2244 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002245 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002246 "line" : 49,
2247 "column" : 8,
2248 "source_fragment" : "hdr.mpls.tc = tc; ..."
2249 }
2250 },
2251 {
2252 "op" : "assign",
2253 "parameters" : [
2254 {
2255 "type" : "field",
2256 "value" : ["mpls", "bos"]
2257 },
2258 {
2259 "type" : "hexstr",
2260 "value" : "0x01"
2261 }
2262 ],
2263 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002264 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002265 "line" : 50,
2266 "column" : 8,
2267 "source_fragment" : "hdr.mpls.bos = 1w1"
2268 }
2269 },
2270 {
2271 "op" : "assign",
2272 "parameters" : [
2273 {
2274 "type" : "field",
2275 "value" : ["mpls", "ttl"]
2276 },
2277 {
2278 "type" : "hexstr",
2279 "value" : "0x40"
2280 }
2281 ],
2282 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002283 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002284 "line" : 113,
Yi Tseng47eac892018-07-11 02:17:04 +08002285 "column" : 32,
2286 "source_fragment" : "64; ..."
2287 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002288 }
2289 ]
2290 },
2291 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002292 "name" : "FabricIngress.next.mpls_routing_v6_simple",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002293 "id" : 30,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002294 "runtime_data" : [
2295 {
2296 "name" : "port_num",
2297 "bitwidth" : 9
2298 },
2299 {
2300 "name" : "smac",
2301 "bitwidth" : 48
2302 },
2303 {
2304 "name" : "dmac",
2305 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002306 },
2307 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002308 "name" : "label",
2309 "bitwidth" : 20
2310 }
2311 ],
2312 "primitives" : [
2313 {
2314 "op" : "assign",
2315 "parameters" : [
2316 {
2317 "type" : "field",
2318 "value" : ["ethernet", "src_addr"]
2319 },
2320 {
2321 "type" : "runtime_data",
2322 "value" : 1
2323 }
2324 ],
2325 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002326 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002327 "line" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002328 "column" : 8,
2329 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2330 }
2331 },
2332 {
2333 "op" : "assign",
2334 "parameters" : [
2335 {
2336 "type" : "field",
2337 "value" : ["ethernet", "dst_addr"]
2338 },
2339 {
2340 "type" : "runtime_data",
2341 "value" : 2
2342 }
2343 ],
2344 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002345 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002346 "line" : 41,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002347 "column" : 8,
2348 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2349 }
2350 },
2351 {
2352 "op" : "assign",
2353 "parameters" : [
2354 {
2355 "type" : "field",
2356 "value" : ["standard_metadata", "egress_spec"]
2357 },
2358 {
2359 "type" : "runtime_data",
2360 "value" : 0
2361 }
2362 ],
2363 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002364 "filename" : "include/control/next.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002365 "line" : 85,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002366 "column" : 8,
2367 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2368 }
2369 },
2370 {
2371 "op" : "add_header",
2372 "parameters" : [
2373 {
2374 "type" : "header",
2375 "value" : "mpls"
2376 }
2377 ],
2378 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002379 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002380 "line" : 46,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002381 "column" : 8,
2382 "source_fragment" : "hdr.mpls.setValid()"
2383 }
2384 },
2385 {
2386 "op" : "assign",
2387 "parameters" : [
2388 {
2389 "type" : "field",
2390 "value" : ["vlan_tag", "ether_type"]
2391 },
2392 {
2393 "type" : "hexstr",
2394 "value" : "0x8847"
2395 }
2396 ],
2397 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002398 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002399 "line" : 90,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002400 "column" : 31,
2401 "source_fragment" : "0x8847; ..."
2402 }
2403 },
2404 {
2405 "op" : "assign",
2406 "parameters" : [
2407 {
2408 "type" : "field",
2409 "value" : ["mpls", "label"]
2410 },
2411 {
2412 "type" : "runtime_data",
2413 "value" : 3
2414 }
2415 ],
2416 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002417 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002418 "line" : 48,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002419 "column" : 8,
2420 "source_fragment" : "hdr.mpls.label = label; ..."
2421 }
2422 },
2423 {
2424 "op" : "assign",
2425 "parameters" : [
2426 {
2427 "type" : "field",
2428 "value" : ["mpls", "tc"]
2429 },
2430 {
2431 "type" : "hexstr",
2432 "value" : "0x00"
2433 }
2434 ],
2435 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002436 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002437 "line" : 49,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002438 "column" : 8,
2439 "source_fragment" : "hdr.mpls.tc = tc; ..."
2440 }
2441 },
2442 {
2443 "op" : "assign",
2444 "parameters" : [
2445 {
2446 "type" : "field",
2447 "value" : ["mpls", "bos"]
2448 },
2449 {
2450 "type" : "hexstr",
2451 "value" : "0x01"
2452 }
2453 ],
2454 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002455 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002456 "line" : 50,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002457 "column" : 8,
2458 "source_fragment" : "hdr.mpls.bos = 1w1"
2459 }
2460 },
2461 {
2462 "op" : "assign",
2463 "parameters" : [
2464 {
2465 "type" : "field",
2466 "value" : ["mpls", "ttl"]
2467 },
2468 {
2469 "type" : "hexstr",
2470 "value" : "0x40"
2471 }
2472 ],
2473 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002474 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002475 "line" : 113,
Yi Tseng47eac892018-07-11 02:17:04 +08002476 "column" : 32,
2477 "source_fragment" : "64; ..."
2478 }
2479 }
2480 ]
2481 },
2482 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002483 "name" : "FabricIngress.next.l3_routing_vlan",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002484 "id" : 31,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002485 "runtime_data" : [
2486 {
2487 "name" : "port_num",
2488 "bitwidth" : 9
2489 },
2490 {
2491 "name" : "smac",
2492 "bitwidth" : 48
2493 },
2494 {
2495 "name" : "dmac",
2496 "bitwidth" : 48
2497 },
2498 {
2499 "name" : "new_vlan_id",
2500 "bitwidth" : 12
2501 }
2502 ],
2503 "primitives" : [
2504 {
2505 "op" : "assign",
2506 "parameters" : [
2507 {
2508 "type" : "field",
2509 "value" : ["ethernet", "src_addr"]
2510 },
2511 {
2512 "type" : "runtime_data",
2513 "value" : 1
2514 }
2515 ],
2516 "source_info" : {
2517 "filename" : "include/control/next.p4",
2518 "line" : 37,
2519 "column" : 8,
2520 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2521 }
2522 },
2523 {
2524 "op" : "assign",
2525 "parameters" : [
2526 {
2527 "type" : "field",
2528 "value" : ["ethernet", "dst_addr"]
2529 },
2530 {
2531 "type" : "runtime_data",
2532 "value" : 2
2533 }
2534 ],
2535 "source_info" : {
2536 "filename" : "include/control/next.p4",
2537 "line" : 41,
2538 "column" : 8,
2539 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2540 }
2541 },
2542 {
2543 "op" : "assign",
2544 "parameters" : [
2545 {
2546 "type" : "field",
2547 "value" : ["vlan_tag", "vlan_id"]
2548 },
2549 {
2550 "type" : "runtime_data",
2551 "value" : 3
2552 }
2553 ],
2554 "source_info" : {
2555 "filename" : "include/control/next.p4",
2556 "line" : 90,
2557 "column" : 8,
2558 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
2559 }
2560 },
2561 {
2562 "op" : "assign",
2563 "parameters" : [
2564 {
2565 "type" : "field",
2566 "value" : ["standard_metadata", "egress_spec"]
2567 },
2568 {
2569 "type" : "runtime_data",
2570 "value" : 0
2571 }
2572 ],
2573 "source_info" : {
2574 "filename" : "include/control/next.p4",
2575 "line" : 85,
2576 "column" : 8,
2577 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2578 }
2579 }
2580 ]
2581 },
2582 {
2583 "name" : "FabricIngress.next.l3_routing_hashed",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002584 "id" : 32,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002585 "runtime_data" : [
2586 {
2587 "name" : "port_num",
2588 "bitwidth" : 9
2589 },
2590 {
2591 "name" : "smac",
2592 "bitwidth" : 48
2593 },
2594 {
2595 "name" : "dmac",
2596 "bitwidth" : 48
2597 }
2598 ],
2599 "primitives" : [
2600 {
2601 "op" : "assign",
2602 "parameters" : [
2603 {
2604 "type" : "field",
2605 "value" : ["ethernet", "src_addr"]
2606 },
2607 {
2608 "type" : "runtime_data",
2609 "value" : 1
2610 }
2611 ],
2612 "source_info" : {
2613 "filename" : "include/control/next.p4",
2614 "line" : 37,
2615 "column" : 8,
2616 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2617 }
2618 },
2619 {
2620 "op" : "assign",
2621 "parameters" : [
2622 {
2623 "type" : "field",
2624 "value" : ["ethernet", "dst_addr"]
2625 },
2626 {
2627 "type" : "runtime_data",
2628 "value" : 2
2629 }
2630 ],
2631 "source_info" : {
2632 "filename" : "include/control/next.p4",
2633 "line" : 41,
2634 "column" : 8,
2635 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2636 }
2637 },
2638 {
2639 "op" : "assign",
2640 "parameters" : [
2641 {
2642 "type" : "field",
2643 "value" : ["standard_metadata", "egress_spec"]
2644 },
2645 {
2646 "type" : "runtime_data",
2647 "value" : 0
2648 }
2649 ],
2650 "source_info" : {
2651 "filename" : "include/control/next.p4",
2652 "line" : 149,
2653 "column" : 8,
2654 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2655 }
2656 }
2657 ]
2658 },
2659 {
2660 "name" : "FabricIngress.next.mpls_routing_v4_hashed",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002661 "id" : 33,
Yi Tseng47eac892018-07-11 02:17:04 +08002662 "runtime_data" : [
2663 {
2664 "name" : "port_num",
2665 "bitwidth" : 9
2666 },
2667 {
2668 "name" : "smac",
2669 "bitwidth" : 48
2670 },
2671 {
2672 "name" : "dmac",
2673 "bitwidth" : 48
2674 },
2675 {
2676 "name" : "label",
2677 "bitwidth" : 20
2678 }
2679 ],
2680 "primitives" : [
2681 {
2682 "op" : "assign",
2683 "parameters" : [
2684 {
2685 "type" : "field",
2686 "value" : ["ethernet", "src_addr"]
2687 },
2688 {
2689 "type" : "runtime_data",
2690 "value" : 1
2691 }
2692 ],
2693 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002694 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002695 "line" : 37,
2696 "column" : 8,
2697 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2698 }
2699 },
2700 {
2701 "op" : "assign",
2702 "parameters" : [
2703 {
2704 "type" : "field",
2705 "value" : ["ethernet", "dst_addr"]
2706 },
2707 {
2708 "type" : "runtime_data",
2709 "value" : 2
2710 }
2711 ],
2712 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002713 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002714 "line" : 41,
2715 "column" : 8,
2716 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2717 }
2718 },
2719 {
2720 "op" : "assign",
2721 "parameters" : [
2722 {
2723 "type" : "field",
2724 "value" : ["standard_metadata", "egress_spec"]
2725 },
2726 {
2727 "type" : "runtime_data",
2728 "value" : 0
2729 }
2730 ],
2731 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002732 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002733 "line" : 149,
2734 "column" : 8,
2735 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2736 }
2737 },
2738 {
2739 "op" : "add_header",
2740 "parameters" : [
2741 {
2742 "type" : "header",
2743 "value" : "mpls"
2744 }
2745 ],
2746 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002747 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002748 "line" : 46,
2749 "column" : 8,
2750 "source_fragment" : "hdr.mpls.setValid()"
2751 }
2752 },
2753 {
2754 "op" : "assign",
2755 "parameters" : [
2756 {
2757 "type" : "field",
2758 "value" : ["vlan_tag", "ether_type"]
2759 },
2760 {
2761 "type" : "hexstr",
2762 "value" : "0x8847"
2763 }
2764 ],
2765 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002766 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002767 "line" : 90,
Yi Tseng47eac892018-07-11 02:17:04 +08002768 "column" : 31,
2769 "source_fragment" : "0x8847; ..."
2770 }
2771 },
2772 {
2773 "op" : "assign",
2774 "parameters" : [
2775 {
2776 "type" : "field",
2777 "value" : ["mpls", "label"]
2778 },
2779 {
2780 "type" : "runtime_data",
2781 "value" : 3
2782 }
2783 ],
2784 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002785 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002786 "line" : 48,
2787 "column" : 8,
2788 "source_fragment" : "hdr.mpls.label = label; ..."
2789 }
2790 },
2791 {
2792 "op" : "assign",
2793 "parameters" : [
2794 {
2795 "type" : "field",
2796 "value" : ["mpls", "tc"]
2797 },
2798 {
2799 "type" : "hexstr",
2800 "value" : "0x00"
2801 }
2802 ],
2803 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002804 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002805 "line" : 49,
2806 "column" : 8,
2807 "source_fragment" : "hdr.mpls.tc = tc; ..."
2808 }
2809 },
2810 {
2811 "op" : "assign",
2812 "parameters" : [
2813 {
2814 "type" : "field",
2815 "value" : ["mpls", "bos"]
2816 },
2817 {
2818 "type" : "hexstr",
2819 "value" : "0x01"
2820 }
2821 ],
2822 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002823 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002824 "line" : 50,
2825 "column" : 8,
2826 "source_fragment" : "hdr.mpls.bos = 1w1"
2827 }
2828 },
2829 {
2830 "op" : "assign",
2831 "parameters" : [
2832 {
2833 "type" : "field",
2834 "value" : ["mpls", "ttl"]
2835 },
2836 {
2837 "type" : "hexstr",
2838 "value" : "0x40"
2839 }
2840 ],
2841 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002842 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002843 "line" : 113,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002844 "column" : 32,
2845 "source_fragment" : "64; ..."
2846 }
2847 }
2848 ]
2849 },
2850 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002851 "name" : "FabricIngress.next.mpls_routing_v6_hashed",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002852 "id" : 34,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002853 "runtime_data" : [
2854 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002855 "name" : "port_num",
2856 "bitwidth" : 9
2857 },
2858 {
2859 "name" : "smac",
2860 "bitwidth" : 48
2861 },
2862 {
2863 "name" : "dmac",
2864 "bitwidth" : 48
2865 },
2866 {
2867 "name" : "label",
2868 "bitwidth" : 20
2869 }
2870 ],
2871 "primitives" : [
2872 {
2873 "op" : "assign",
2874 "parameters" : [
2875 {
2876 "type" : "field",
2877 "value" : ["ethernet", "src_addr"]
2878 },
2879 {
2880 "type" : "runtime_data",
2881 "value" : 1
2882 }
2883 ],
2884 "source_info" : {
2885 "filename" : "include/control/next.p4",
2886 "line" : 37,
2887 "column" : 8,
2888 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2889 }
2890 },
2891 {
2892 "op" : "assign",
2893 "parameters" : [
2894 {
2895 "type" : "field",
2896 "value" : ["ethernet", "dst_addr"]
2897 },
2898 {
2899 "type" : "runtime_data",
2900 "value" : 2
2901 }
2902 ],
2903 "source_info" : {
2904 "filename" : "include/control/next.p4",
2905 "line" : 41,
2906 "column" : 8,
2907 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2908 }
2909 },
2910 {
2911 "op" : "assign",
2912 "parameters" : [
2913 {
2914 "type" : "field",
2915 "value" : ["standard_metadata", "egress_spec"]
2916 },
2917 {
2918 "type" : "runtime_data",
2919 "value" : 0
2920 }
2921 ],
2922 "source_info" : {
2923 "filename" : "include/control/next.p4",
2924 "line" : 149,
2925 "column" : 8,
2926 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2927 }
2928 },
2929 {
2930 "op" : "add_header",
2931 "parameters" : [
2932 {
2933 "type" : "header",
2934 "value" : "mpls"
2935 }
2936 ],
2937 "source_info" : {
2938 "filename" : "include/control/next.p4",
2939 "line" : 46,
2940 "column" : 8,
2941 "source_fragment" : "hdr.mpls.setValid()"
2942 }
2943 },
2944 {
2945 "op" : "assign",
2946 "parameters" : [
2947 {
2948 "type" : "field",
2949 "value" : ["vlan_tag", "ether_type"]
2950 },
2951 {
2952 "type" : "hexstr",
2953 "value" : "0x8847"
2954 }
2955 ],
2956 "source_info" : {
2957 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002958 "line" : 90,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002959 "column" : 31,
2960 "source_fragment" : "0x8847; ..."
2961 }
2962 },
2963 {
2964 "op" : "assign",
2965 "parameters" : [
2966 {
2967 "type" : "field",
2968 "value" : ["mpls", "label"]
2969 },
2970 {
2971 "type" : "runtime_data",
2972 "value" : 3
2973 }
2974 ],
2975 "source_info" : {
2976 "filename" : "include/control/next.p4",
2977 "line" : 48,
2978 "column" : 8,
2979 "source_fragment" : "hdr.mpls.label = label; ..."
2980 }
2981 },
2982 {
2983 "op" : "assign",
2984 "parameters" : [
2985 {
2986 "type" : "field",
2987 "value" : ["mpls", "tc"]
2988 },
2989 {
2990 "type" : "hexstr",
2991 "value" : "0x00"
2992 }
2993 ],
2994 "source_info" : {
2995 "filename" : "include/control/next.p4",
2996 "line" : 49,
2997 "column" : 8,
2998 "source_fragment" : "hdr.mpls.tc = tc; ..."
2999 }
3000 },
3001 {
3002 "op" : "assign",
3003 "parameters" : [
3004 {
3005 "type" : "field",
3006 "value" : ["mpls", "bos"]
3007 },
3008 {
3009 "type" : "hexstr",
3010 "value" : "0x01"
3011 }
3012 ],
3013 "source_info" : {
3014 "filename" : "include/control/next.p4",
3015 "line" : 50,
3016 "column" : 8,
3017 "source_fragment" : "hdr.mpls.bos = 1w1"
3018 }
3019 },
3020 {
3021 "op" : "assign",
3022 "parameters" : [
3023 {
3024 "type" : "field",
3025 "value" : ["mpls", "ttl"]
3026 },
3027 {
3028 "type" : "hexstr",
3029 "value" : "0x40"
3030 }
3031 ],
3032 "source_info" : {
3033 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003034 "line" : 113,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003035 "column" : 32,
3036 "source_fragment" : "64; ..."
3037 }
3038 }
3039 ]
3040 },
3041 {
3042 "name" : "FabricIngress.next.set_mcast_group",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003043 "id" : 35,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003044 "runtime_data" : [
3045 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00003046 "name" : "gid",
3047 "bitwidth" : 16
3048 }
3049 ],
3050 "primitives" : [
3051 {
3052 "op" : "assign",
3053 "parameters" : [
3054 {
3055 "type" : "field",
3056 "value" : ["standard_metadata", "mcast_grp"]
3057 },
3058 {
3059 "type" : "runtime_data",
3060 "value" : 0
3061 }
3062 ],
3063 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003064 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003065 "line" : 202,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003066 "column" : 8,
3067 "source_fragment" : "standard_metadata.mcast_grp = gid"
3068 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003069 },
3070 {
3071 "op" : "assign",
3072 "parameters" : [
3073 {
3074 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003075 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003076 },
3077 {
3078 "type" : "expression",
3079 "value" : {
3080 "type" : "expression",
3081 "value" : {
3082 "op" : "b2d",
3083 "left" : null,
3084 "right" : {
3085 "type" : "bool",
3086 "value" : true
3087 }
3088 }
3089 }
3090 }
3091 ],
3092 "source_info" : {
3093 "filename" : "include/control/next.p4",
3094 "line" : 203,
3095 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003096 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003097 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00003098 }
3099 ]
3100 },
3101 {
3102 "name" : "act",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003103 "id" : 36,
3104 "runtime_data" : [],
3105 "primitives" : [
3106 {
3107 "op" : "assign",
3108 "parameters" : [
3109 {
3110 "type" : "field",
3111 "value" : ["scalars", "spgw_normalizer_hasReturned_0"]
3112 },
3113 {
3114 "type" : "expression",
3115 "value" : {
3116 "type" : "expression",
3117 "value" : {
3118 "op" : "b2d",
3119 "left" : null,
3120 "right" : {
3121 "type" : "bool",
3122 "value" : true
3123 }
3124 }
3125 }
3126 }
3127 ],
3128 "source_info" : {
3129 "filename" : "include/spgw.p4",
3130 "line" : 30,
3131 "column" : 32,
3132 "source_fragment" : "return"
3133 }
3134 }
3135 ]
3136 },
3137 {
3138 "name" : "act_0",
3139 "id" : 37,
3140 "runtime_data" : [],
3141 "primitives" : [
3142 {
3143 "op" : "remove_header",
3144 "parameters" : [
3145 {
3146 "type" : "header",
3147 "value" : "gtpu_ipv4"
3148 }
3149 ],
3150 "source_info" : {
3151 "filename" : "fabric.p4",
3152 "line" : 52,
3153 "column" : 50,
3154 "source_fragment" : "hdr.gtpu_ipv4"
3155 }
3156 },
3157 {
3158 "op" : "remove_header",
3159 "parameters" : [
3160 {
3161 "type" : "header",
3162 "value" : "gtpu_udp"
3163 }
3164 ],
3165 "source_info" : {
3166 "filename" : "fabric.p4",
3167 "line" : 52,
3168 "column" : 65,
3169 "source_fragment" : "hdr.gtpu_udp"
3170 }
3171 },
3172 {
3173 "op" : "assign",
3174 "parameters" : [
3175 {
3176 "type" : "field",
3177 "value" : ["scalars", "spgw_normalizer_hasReturned_0"]
3178 },
3179 {
3180 "type" : "expression",
3181 "value" : {
3182 "type" : "expression",
3183 "value" : {
3184 "op" : "b2d",
3185 "left" : null,
3186 "right" : {
3187 "type" : "bool",
3188 "value" : false
3189 }
3190 }
3191 }
3192 }
3193 ]
3194 }
3195 ]
3196 },
3197 {
3198 "name" : "act_1",
3199 "id" : 38,
3200 "runtime_data" : [],
3201 "primitives" : [
3202 {
3203 "op" : "assign_header",
3204 "parameters" : [
3205 {
3206 "type" : "header",
3207 "value" : "udp"
3208 },
3209 {
3210 "type" : "header",
3211 "value" : "inner_udp"
3212 }
3213 ],
3214 "source_info" : {
3215 "filename" : "include/spgw.p4",
3216 "line" : 35,
3217 "column" : 16,
3218 "source_fragment" : "= inner_udp; ..."
3219 }
3220 }
3221 ]
3222 },
3223 {
3224 "name" : "act_2",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003225 "id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003226 "runtime_data" : [],
3227 "primitives" : [
3228 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003229 "op" : "remove_header",
3230 "parameters" : [
3231 {
3232 "type" : "header",
3233 "value" : "udp"
3234 }
3235 ],
3236 "source_info" : {
3237 "filename" : "include/spgw.p4",
3238 "line" : 37,
3239 "column" : 12,
3240 "source_fragment" : "udp.setInvalid()"
3241 }
3242 }
3243 ]
3244 },
3245 {
3246 "name" : "act_3",
3247 "id" : 40,
3248 "runtime_data" : [],
3249 "primitives" : [
3250 {
3251 "op" : "assign_header",
3252 "parameters" : [
3253 {
3254 "type" : "header",
3255 "value" : "gtpu_ipv4"
3256 },
3257 {
3258 "type" : "header",
3259 "value" : "ipv4"
3260 }
3261 ],
3262 "source_info" : {
3263 "filename" : "include/spgw.p4",
3264 "line" : 31,
3265 "column" : 18,
3266 "source_fragment" : "= ipv4; ..."
3267 }
3268 },
3269 {
3270 "op" : "assign_header",
3271 "parameters" : [
3272 {
3273 "type" : "header",
3274 "value" : "ipv4"
3275 },
3276 {
3277 "type" : "header",
3278 "value" : "inner_ipv4"
3279 }
3280 ],
3281 "source_info" : {
3282 "filename" : "include/spgw.p4",
3283 "line" : 32,
3284 "column" : 13,
3285 "source_fragment" : "= inner_ipv4; ..."
3286 }
3287 },
3288 {
3289 "op" : "assign_header",
3290 "parameters" : [
3291 {
3292 "type" : "header",
3293 "value" : "gtpu_udp"
3294 },
3295 {
3296 "type" : "header",
3297 "value" : "udp"
3298 }
3299 ],
3300 "source_info" : {
3301 "filename" : "include/spgw.p4",
3302 "line" : 33,
3303 "column" : 17,
3304 "source_fragment" : "= udp; ..."
3305 }
3306 }
3307 ]
3308 },
3309 {
3310 "name" : "act_4",
3311 "id" : 41,
3312 "runtime_data" : [],
3313 "primitives" : [
3314 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003315 "op" : "assign",
3316 "parameters" : [
3317 {
3318 "type" : "field",
3319 "value" : ["standard_metadata", "egress_spec"]
3320 },
3321 {
3322 "type" : "field",
3323 "value" : ["packet_out", "egress_port"]
3324 }
3325 ],
3326 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003327 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003328 "line" : 26,
3329 "column" : 12,
3330 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
3331 }
3332 },
3333 {
3334 "op" : "remove_header",
3335 "parameters" : [
3336 {
3337 "type" : "header",
3338 "value" : "packet_out"
3339 }
3340 ],
3341 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003342 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003343 "line" : 27,
3344 "column" : 12,
3345 "source_fragment" : "hdr.packet_out.setInvalid()"
3346 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003347 },
3348 {
3349 "op" : "assign",
3350 "parameters" : [
3351 {
3352 "type" : "field",
3353 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
3354 },
3355 {
3356 "type" : "expression",
3357 "value" : {
3358 "type" : "expression",
3359 "value" : {
3360 "op" : "b2d",
3361 "left" : null,
3362 "right" : {
3363 "type" : "bool",
3364 "value" : true
3365 }
3366 }
3367 }
3368 }
3369 ],
3370 "source_info" : {
3371 "filename" : "include/control/packetio.p4",
3372 "line" : 28,
3373 "column" : 12,
3374 "source_fragment" : "fabric_metadata.is_controller_packet_out = true"
3375 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003376 }
3377 ]
3378 },
3379 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003380 "name" : "act_5",
3381 "id" : 42,
3382 "runtime_data" : [],
3383 "primitives" : [
3384 {
3385 "op" : "assign",
3386 "parameters" : [
3387 {
3388 "type" : "field",
3389 "value" : ["scalars", "spgw_ingress_tmp_1"]
3390 },
3391 {
3392 "type" : "expression",
3393 "value" : {
3394 "type" : "expression",
3395 "value" : {
3396 "op" : "b2d",
3397 "left" : null,
3398 "right" : {
3399 "type" : "bool",
3400 "value" : true
3401 }
3402 }
3403 }
3404 }
3405 ]
3406 }
3407 ]
3408 },
3409 {
3410 "name" : "act_6",
3411 "id" : 43,
3412 "runtime_data" : [],
3413 "primitives" : [
3414 {
3415 "op" : "assign",
3416 "parameters" : [
3417 {
3418 "type" : "field",
3419 "value" : ["scalars", "spgw_ingress_tmp_1"]
3420 },
3421 {
3422 "type" : "expression",
3423 "value" : {
3424 "type" : "expression",
3425 "value" : {
3426 "op" : "b2d",
3427 "left" : null,
3428 "right" : {
3429 "type" : "bool",
3430 "value" : false
3431 }
3432 }
3433 }
3434 }
3435 ]
3436 }
3437 ]
3438 },
3439 {
3440 "name" : "act_7",
3441 "id" : 44,
3442 "runtime_data" : [],
3443 "primitives" : [
3444 {
3445 "op" : "assign",
3446 "parameters" : [
3447 {
3448 "type" : "field",
3449 "value" : ["userMetadata.spgw", "direction"]
3450 },
3451 {
3452 "type" : "hexstr",
3453 "value" : "0x01"
3454 }
3455 ],
3456 "source_info" : {
3457 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003458 "line" : 119,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003459 "column" : 36,
3460 "source_fragment" : "2w1; ..."
3461 }
3462 }
3463 ]
3464 },
3465 {
3466 "name" : "act_8",
3467 "id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003468 "runtime_data" : [],
3469 "primitives" : [
3470 {
3471 "op" : "assign",
3472 "parameters" : [
3473 {
3474 "type" : "field",
3475 "value" : ["scalars", "spgw_ingress_tmp_2"]
3476 },
3477 {
3478 "type" : "expression",
3479 "value" : {
3480 "type" : "expression",
3481 "value" : {
3482 "op" : "b2d",
3483 "left" : null,
3484 "right" : {
3485 "type" : "bool",
3486 "value" : true
3487 }
3488 }
3489 }
3490 }
3491 ]
3492 }
3493 ]
3494 },
3495 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003496 "name" : "act_9",
3497 "id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003498 "runtime_data" : [],
3499 "primitives" : [
3500 {
3501 "op" : "assign",
3502 "parameters" : [
3503 {
3504 "type" : "field",
3505 "value" : ["scalars", "spgw_ingress_tmp_2"]
3506 },
3507 {
3508 "type" : "expression",
3509 "value" : {
3510 "type" : "expression",
3511 "value" : {
3512 "op" : "b2d",
3513 "left" : null,
3514 "right" : {
3515 "type" : "bool",
3516 "value" : false
3517 }
3518 }
3519 }
3520 }
3521 ]
3522 }
3523 ]
3524 },
3525 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003526 "name" : "act_10",
3527 "id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003528 "runtime_data" : [],
3529 "primitives" : [
3530 {
3531 "op" : "assign",
3532 "parameters" : [
3533 {
3534 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003535 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003536 },
3537 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003538 "type" : "hexstr",
3539 "value" : "0x02"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003540 }
3541 ],
3542 "source_info" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003543 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003544 "line" : 120,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003545 "column" : 38,
3546 "source_fragment" : "2w2; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003547 }
3548 }
3549 ]
3550 },
3551 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003552 "name" : "act_11",
3553 "id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003554 "runtime_data" : [],
3555 "primitives" : [
3556 {
3557 "op" : "assign",
3558 "parameters" : [
3559 {
3560 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003561 "value" : ["userMetadata.spgw", "direction"]
3562 },
3563 {
3564 "type" : "hexstr",
3565 "value" : "0x00"
3566 }
3567 ],
3568 "source_info" : {
3569 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003570 "line" : 118,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003571 "column" : 37,
3572 "source_fragment" : "2w0; ..."
3573 }
3574 },
3575 {
3576 "op" : "assign",
3577 "parameters" : [
3578 {
3579 "type" : "field",
3580 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003581 },
3582 {
3583 "type" : "expression",
3584 "value" : {
3585 "type" : "expression",
3586 "value" : {
3587 "op" : "b2d",
3588 "left" : null,
3589 "right" : {
3590 "type" : "bool",
3591 "value" : true
3592 }
3593 }
3594 }
3595 }
3596 ],
3597 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003598 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07003599 "line" : 153,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003600 "column" : 12,
3601 "source_fragment" : "return"
3602 }
3603 }
3604 ]
3605 },
3606 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003607 "name" : "act_12",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003608 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003609 "runtime_data" : [],
3610 "primitives" : [
3611 {
3612 "op" : "assign",
3613 "parameters" : [
3614 {
3615 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003616 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003617 },
3618 {
3619 "type" : "expression",
3620 "value" : {
3621 "type" : "expression",
3622 "value" : {
3623 "op" : "b2d",
3624 "left" : null,
3625 "right" : {
3626 "type" : "bool",
3627 "value" : false
3628 }
3629 }
3630 }
3631 }
3632 ]
3633 }
3634 ]
3635 },
3636 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003637 "name" : "act_13",
3638 "id" : 50,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003639 "runtime_data" : [],
3640 "primitives" : [
3641 {
3642 "op" : "assign",
3643 "parameters" : [
3644 {
3645 "type" : "field",
3646 "value" : ["userMetadata.spgw", "ipv4_len"]
3647 },
3648 {
3649 "type" : "field",
3650 "value" : ["ipv4", "total_len"]
3651 }
3652 ],
3653 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003654 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07003655 "line" : 170,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003656 "column" : 8,
3657 "source_fragment" : "spgw_meta.ipv4_len = ipv4.total_len"
3658 }
3659 }
3660 ]
3661 },
3662 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003663 "name" : "act_14",
3664 "id" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003665 "runtime_data" : [],
3666 "primitives" : [
3667 {
3668 "op" : "assign",
3669 "parameters" : [
3670 {
3671 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003672 "value" : ["scalars", "filtering_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003673 },
3674 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003675 "type" : "expression",
3676 "value" : {
3677 "type" : "expression",
3678 "value" : {
3679 "op" : "b2d",
3680 "left" : null,
3681 "right" : {
3682 "type" : "bool",
3683 "value" : true
3684 }
3685 }
3686 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003687 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003688 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003689 }
3690 ]
3691 },
3692 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003693 "name" : "act_15",
3694 "id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003695 "runtime_data" : [],
3696 "primitives" : [
3697 {
3698 "op" : "assign",
3699 "parameters" : [
3700 {
3701 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003702 "value" : ["scalars", "filtering_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003703 },
3704 {
3705 "type" : "expression",
3706 "value" : {
3707 "type" : "expression",
3708 "value" : {
3709 "op" : "b2d",
3710 "left" : null,
3711 "right" : {
3712 "type" : "bool",
3713 "value" : false
3714 }
3715 }
3716 }
3717 }
3718 ]
3719 }
3720 ]
3721 },
3722 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003723 "name" : "act_16",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003724 "id" : 53,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003725 "runtime_data" : [],
3726 "primitives" : [
3727 {
3728 "op" : "assign",
3729 "parameters" : [
3730 {
3731 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003732 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003733 },
3734 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003735 "type" : "hexstr",
3736 "value" : "0x07"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003737 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003738 ],
3739 "source_info" : {
3740 "filename" : "include/control/../define.p4",
3741 "line" : 109,
3742 "column" : 31,
3743 "source_fragment" : "7; ..."
3744 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003745 }
3746 ]
3747 },
3748 {
3749 "name" : "act_17",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003750 "id" : 54,
3751 "runtime_data" : [],
3752 "primitives" : [
3753 {
3754 "op" : "assign",
3755 "parameters" : [
3756 {
3757 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003758 "value" : ["vlan_tag", "ether_type"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003759 },
3760 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003761 "type" : "hexstr",
3762 "value" : "0x0800"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003763 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003764 ],
3765 "source_info" : {
3766 "filename" : "include/control/../define.p4",
3767 "line" : 92,
3768 "column" : 31,
3769 "source_fragment" : "0x0800; ..."
3770 }
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003771 }
3772 ]
3773 },
3774 {
3775 "name" : "act_18",
3776 "id" : 55,
3777 "runtime_data" : [],
3778 "primitives" : [
3779 {
3780 "op" : "assign",
3781 "parameters" : [
3782 {
3783 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003784 "value" : ["scalars", "next_hasReturned_0"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003785 },
3786 {
3787 "type" : "expression",
3788 "value" : {
3789 "type" : "expression",
3790 "value" : {
3791 "op" : "b2d",
3792 "left" : null,
3793 "right" : {
3794 "type" : "bool",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003795 "value" : false
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003796 }
3797 }
3798 }
3799 }
3800 ]
3801 }
3802 ]
3803 },
3804 {
3805 "name" : "act_19",
3806 "id" : 56,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003807 "runtime_data" : [],
3808 "primitives" : [
3809 {
3810 "op" : "assign",
3811 "parameters" : [
3812 {
3813 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003814 "value" : ["scalars", "next_tmp_4"]
3815 },
3816 {
3817 "type" : "expression",
3818 "value" : {
3819 "type" : "expression",
3820 "value" : {
3821 "op" : "b2d",
3822 "left" : null,
3823 "right" : {
3824 "type" : "bool",
3825 "value" : true
3826 }
3827 }
3828 }
3829 }
3830 ]
3831 }
3832 ]
3833 },
3834 {
3835 "name" : "act_20",
3836 "id" : 57,
3837 "runtime_data" : [],
3838 "primitives" : [
3839 {
3840 "op" : "assign",
3841 "parameters" : [
3842 {
3843 "type" : "field",
3844 "value" : ["scalars", "next_tmp_4"]
3845 },
3846 {
3847 "type" : "expression",
3848 "value" : {
3849 "type" : "expression",
3850 "value" : {
3851 "op" : "b2d",
3852 "left" : null,
3853 "right" : {
3854 "type" : "bool",
3855 "value" : false
3856 }
3857 }
3858 }
3859 }
3860 ]
3861 }
3862 ]
3863 },
3864 {
3865 "name" : "act_21",
3866 "id" : 58,
3867 "runtime_data" : [],
3868 "primitives" : [
3869 {
3870 "op" : "assign",
3871 "parameters" : [
3872 {
3873 "type" : "field",
3874 "value" : ["scalars", "next_tmp_3"]
3875 },
3876 {
3877 "type" : "expression",
3878 "value" : {
3879 "type" : "expression",
3880 "value" : {
3881 "op" : "b2d",
3882 "left" : null,
3883 "right" : {
3884 "type" : "bool",
3885 "value" : true
3886 }
3887 }
3888 }
3889 }
3890 ]
3891 }
3892 ]
3893 },
3894 {
3895 "name" : "act_22",
3896 "id" : 59,
3897 "runtime_data" : [],
3898 "primitives" : [
3899 {
3900 "op" : "assign",
3901 "parameters" : [
3902 {
3903 "type" : "field",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003904 "value" : ["scalars", "next_tmp_3"]
3905 },
3906 {
3907 "type" : "expression",
3908 "value" : {
3909 "type" : "expression",
3910 "value" : {
3911 "op" : "b2d",
3912 "left" : null,
3913 "right" : {
3914 "type" : "bool",
3915 "value" : false
3916 }
3917 }
3918 }
3919 }
3920 ]
3921 }
3922 ]
3923 },
3924 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003925 "name" : "act_23",
3926 "id" : 60,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003927 "runtime_data" : [],
3928 "primitives" : [
3929 {
3930 "op" : "assign",
3931 "parameters" : [
3932 {
3933 "type" : "field",
3934 "value" : ["scalars", "next_tmp_2"]
3935 },
3936 {
3937 "type" : "expression",
3938 "value" : {
3939 "type" : "expression",
3940 "value" : {
3941 "op" : "b2d",
3942 "left" : null,
3943 "right" : {
3944 "type" : "bool",
3945 "value" : true
3946 }
3947 }
3948 }
3949 }
3950 ]
3951 }
3952 ]
3953 },
3954 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003955 "name" : "act_24",
3956 "id" : 61,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003957 "runtime_data" : [],
3958 "primitives" : [
3959 {
3960 "op" : "assign",
3961 "parameters" : [
3962 {
3963 "type" : "field",
3964 "value" : ["scalars", "next_tmp_2"]
3965 },
3966 {
3967 "type" : "expression",
3968 "value" : {
3969 "type" : "expression",
3970 "value" : {
3971 "op" : "b2d",
3972 "left" : null,
3973 "right" : {
3974 "type" : "bool",
3975 "value" : false
3976 }
3977 }
3978 }
3979 }
3980 ]
3981 }
3982 ]
3983 },
3984 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003985 "name" : "act_25",
3986 "id" : 62,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003987 "runtime_data" : [],
3988 "primitives" : [
3989 {
3990 "op" : "assign",
3991 "parameters" : [
3992 {
3993 "type" : "field",
3994 "value" : ["scalars", "next_hasReturned_0"]
3995 },
3996 {
3997 "type" : "expression",
3998 "value" : {
3999 "type" : "expression",
4000 "value" : {
4001 "op" : "b2d",
4002 "left" : null,
4003 "right" : {
4004 "type" : "bool",
4005 "value" : true
4006 }
4007 }
4008 }
4009 }
4010 ],
4011 "source_info" : {
4012 "filename" : "include/control/next.p4",
4013 "line" : 223,
4014 "column" : 20,
4015 "source_fragment" : "return"
4016 }
4017 }
4018 ]
4019 },
4020 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004021 "name" : "act_26",
4022 "id" : 63,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004023 "runtime_data" : [],
4024 "primitives" : [
4025 {
4026 "op" : "assign",
4027 "parameters" : [
4028 {
4029 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004030 "value" : ["ipv4", "ttl"]
4031 },
4032 {
4033 "type" : "expression",
4034 "value" : {
4035 "type" : "expression",
4036 "value" : {
4037 "op" : "&",
4038 "left" : {
4039 "type" : "expression",
4040 "value" : {
4041 "op" : "+",
4042 "left" : {
4043 "type" : "field",
4044 "value" : ["ipv4", "ttl"]
4045 },
4046 "right" : {
4047 "type" : "hexstr",
4048 "value" : "0xff"
4049 }
4050 }
4051 },
4052 "right" : {
4053 "type" : "hexstr",
4054 "value" : "0xff"
4055 }
4056 }
4057 }
4058 }
4059 ],
4060 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004061 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004062 "line" : 230,
4063 "column" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004064 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
4065 }
4066 }
4067 ]
4068 },
4069 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004070 "name" : "act_27",
4071 "id" : 64,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004072 "runtime_data" : [],
4073 "primitives" : [
4074 {
4075 "op" : "assign",
4076 "parameters" : [
4077 {
4078 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004079 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004080 },
4081 {
4082 "type" : "expression",
4083 "value" : {
4084 "type" : "expression",
4085 "value" : {
4086 "op" : "&",
4087 "left" : {
4088 "type" : "field",
4089 "value" : ["standard_metadata", "egress_spec"]
4090 },
4091 "right" : {
4092 "type" : "hexstr",
4093 "value" : "0xffffffff"
4094 }
4095 }
4096 }
4097 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004098 ],
4099 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004100 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004101 "line" : 28,
4102 "column" : 38,
4103 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
4104 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004105 },
4106 {
4107 "op" : "count",
4108 "parameters" : [
4109 {
4110 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004111 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004112 },
4113 {
4114 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004115 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004116 }
4117 ],
4118 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004119 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004120 "line" : 28,
4121 "column" : 12,
4122 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
4123 }
4124 }
4125 ]
4126 },
4127 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004128 "name" : "act_28",
4129 "id" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004130 "runtime_data" : [],
4131 "primitives" : [
4132 {
4133 "op" : "assign",
4134 "parameters" : [
4135 {
4136 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004137 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004138 },
4139 {
4140 "type" : "expression",
4141 "value" : {
4142 "type" : "expression",
4143 "value" : {
4144 "op" : "&",
4145 "left" : {
4146 "type" : "field",
4147 "value" : ["standard_metadata", "ingress_port"]
4148 },
4149 "right" : {
4150 "type" : "hexstr",
4151 "value" : "0xffffffff"
4152 }
4153 }
4154 }
4155 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004156 ],
4157 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004158 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004159 "line" : 31,
4160 "column" : 39,
4161 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
4162 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004163 },
4164 {
4165 "op" : "count",
4166 "parameters" : [
4167 {
4168 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004169 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004170 },
4171 {
4172 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004173 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004174 }
4175 ],
4176 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004177 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004178 "line" : 31,
4179 "column" : 12,
4180 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
4181 }
4182 }
4183 ]
4184 },
4185 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004186 "name" : "nop",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004187 "id" : 66,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004188 "runtime_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004189 "primitives" : []
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004190 },
4191 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004192 "name" : "drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004193 "id" : 67,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004194 "runtime_data" : [],
4195 "primitives" : [
4196 {
4197 "op" : "drop",
4198 "parameters" : [],
4199 "source_info" : {
4200 "filename" : "include/control/../action.p4",
4201 "line" : 24,
4202 "column" : 4,
4203 "source_fragment" : "mark_to_drop()"
4204 }
4205 },
4206 {
4207 "op" : "exit",
4208 "parameters" : [],
4209 "source_info" : {
4210 "filename" : "include/control/../action.p4",
4211 "line" : 25,
4212 "column" : 4,
4213 "source_fragment" : "exit"
4214 }
4215 }
4216 ]
4217 },
4218 {
4219 "name" : "drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004220 "id" : 68,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004221 "runtime_data" : [],
4222 "primitives" : [
4223 {
4224 "op" : "drop",
4225 "parameters" : [],
4226 "source_info" : {
4227 "filename" : "include/control/../action.p4",
4228 "line" : 24,
4229 "column" : 4,
4230 "source_fragment" : "mark_to_drop()"
4231 }
4232 },
4233 {
4234 "op" : "exit",
4235 "parameters" : [],
4236 "source_info" : {
4237 "filename" : "include/control/../action.p4",
4238 "line" : 25,
4239 "column" : 4,
4240 "source_fragment" : "exit"
4241 }
4242 }
4243 ]
4244 },
4245 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004246 "name" : "FabricEgress.spgw_egress.gtpu_encap",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004247 "id" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004248 "runtime_data" : [],
4249 "primitives" : [
4250 {
4251 "op" : "add_header",
4252 "parameters" : [
4253 {
4254 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004255 "value" : "gtpu_ipv4"
4256 }
4257 ],
4258 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004259 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004260 "line" : 185,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004261 "column" : 8,
4262 "source_fragment" : "gtpu_ipv4.setValid()"
4263 }
4264 },
4265 {
4266 "op" : "assign",
4267 "parameters" : [
4268 {
4269 "type" : "field",
4270 "value" : ["gtpu_ipv4", "version"]
4271 },
4272 {
4273 "type" : "hexstr",
4274 "value" : "0x04"
4275 }
4276 ],
4277 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004278 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004279 "line" : 186,
Yi Tseng3d3956d2018-01-31 17:28:05 -08004280 "column" : 8,
4281 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004282 }
4283 },
4284 {
4285 "op" : "assign",
4286 "parameters" : [
4287 {
4288 "type" : "field",
4289 "value" : ["gtpu_ipv4", "ihl"]
4290 },
4291 {
4292 "type" : "hexstr",
4293 "value" : "0x05"
4294 }
4295 ],
4296 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004297 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004298 "line" : 101,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004299 "column" : 28,
4300 "source_fragment" : "5; ..."
4301 }
4302 },
4303 {
4304 "op" : "assign",
4305 "parameters" : [
4306 {
4307 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004308 "value" : ["gtpu_ipv4", "dscp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004309 },
4310 {
4311 "type" : "hexstr",
4312 "value" : "0x00"
4313 }
4314 ],
4315 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004316 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004317 "line" : 188,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004318 "column" : 8,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004319 "source_fragment" : "gtpu_ipv4.dscp = 0"
4320 }
4321 },
4322 {
4323 "op" : "assign",
4324 "parameters" : [
4325 {
4326 "type" : "field",
4327 "value" : ["gtpu_ipv4", "ecn"]
4328 },
4329 {
4330 "type" : "hexstr",
4331 "value" : "0x00"
4332 }
4333 ],
4334 "source_info" : {
4335 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004336 "line" : 189,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004337 "column" : 8,
4338 "source_fragment" : "gtpu_ipv4.ecn = 0"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004339 }
4340 },
4341 {
4342 "op" : "assign",
4343 "parameters" : [
4344 {
4345 "type" : "field",
4346 "value" : ["gtpu_ipv4", "total_len"]
4347 },
4348 {
4349 "type" : "expression",
4350 "value" : {
4351 "type" : "expression",
4352 "value" : {
4353 "op" : "&",
4354 "left" : {
4355 "type" : "expression",
4356 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004357 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004358 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004359 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004360 "value" : ["ipv4", "total_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004361 },
4362 "right" : {
4363 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004364 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004365 }
4366 }
4367 },
4368 "right" : {
4369 "type" : "hexstr",
4370 "value" : "0xffff"
4371 }
4372 }
4373 }
4374 }
4375 ],
4376 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004377 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004378 "line" : 190,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004379 "column" : 8,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004380 "source_fragment" : "gtpu_ipv4.total_len = ipv4.total_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08004381 }
4382 },
4383 {
4384 "op" : "assign",
4385 "parameters" : [
4386 {
4387 "type" : "field",
4388 "value" : ["gtpu_ipv4", "identification"]
4389 },
4390 {
4391 "type" : "hexstr",
4392 "value" : "0x1513"
4393 }
4394 ],
4395 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004396 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004397 "line" : 192,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004398 "column" : 8,
4399 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
4400 }
4401 },
4402 {
4403 "op" : "assign",
4404 "parameters" : [
4405 {
4406 "type" : "field",
4407 "value" : ["gtpu_ipv4", "flags"]
4408 },
4409 {
4410 "type" : "hexstr",
4411 "value" : "0x00"
4412 }
4413 ],
4414 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004415 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004416 "line" : 193,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004417 "column" : 8,
4418 "source_fragment" : "gtpu_ipv4.flags = 0"
4419 }
4420 },
4421 {
4422 "op" : "assign",
4423 "parameters" : [
4424 {
4425 "type" : "field",
4426 "value" : ["gtpu_ipv4", "frag_offset"]
4427 },
4428 {
4429 "type" : "hexstr",
4430 "value" : "0x0000"
4431 }
4432 ],
4433 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004434 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004435 "line" : 194,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004436 "column" : 8,
4437 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
4438 }
4439 },
4440 {
4441 "op" : "assign",
4442 "parameters" : [
4443 {
4444 "type" : "field",
4445 "value" : ["gtpu_ipv4", "ttl"]
4446 },
4447 {
4448 "type" : "hexstr",
4449 "value" : "0x40"
4450 }
4451 ],
4452 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004453 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004454 "line" : 114,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004455 "column" : 32,
4456 "source_fragment" : "64; ..."
4457 }
4458 },
4459 {
4460 "op" : "assign",
4461 "parameters" : [
4462 {
4463 "type" : "field",
4464 "value" : ["gtpu_ipv4", "protocol"]
4465 },
4466 {
4467 "type" : "hexstr",
4468 "value" : "0x11"
4469 }
4470 ],
4471 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004472 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004473 "line" : 98,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004474 "column" : 25,
4475 "source_fragment" : "17; ..."
4476 }
4477 },
4478 {
4479 "op" : "assign",
4480 "parameters" : [
4481 {
4482 "type" : "field",
4483 "value" : ["gtpu_ipv4", "dst_addr"]
4484 },
4485 {
4486 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004487 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004488 }
4489 ],
4490 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004491 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004492 "line" : 197,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004493 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004494 "source_fragment" : "gtpu_ipv4.dst_addr = spgw_meta.s1u_enb_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004495 }
4496 },
4497 {
4498 "op" : "assign",
4499 "parameters" : [
4500 {
4501 "type" : "field",
4502 "value" : ["gtpu_ipv4", "src_addr"]
4503 },
4504 {
4505 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004506 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004507 }
4508 ],
4509 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004510 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004511 "line" : 198,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004512 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004513 "source_fragment" : "gtpu_ipv4.src_addr = spgw_meta.s1u_sgw_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004514 }
4515 },
4516 {
4517 "op" : "assign",
4518 "parameters" : [
4519 {
4520 "type" : "field",
4521 "value" : ["gtpu_ipv4", "hdr_checksum"]
4522 },
4523 {
4524 "type" : "hexstr",
4525 "value" : "0x0000"
4526 }
4527 ],
4528 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004529 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004530 "line" : 199,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004531 "column" : 8,
4532 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
4533 }
4534 },
4535 {
4536 "op" : "add_header",
4537 "parameters" : [
4538 {
4539 "type" : "header",
4540 "value" : "gtpu_udp"
4541 }
4542 ],
4543 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004544 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004545 "line" : 201,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004546 "column" : 8,
4547 "source_fragment" : "gtpu_udp.setValid()"
4548 }
4549 },
4550 {
4551 "op" : "assign",
4552 "parameters" : [
4553 {
4554 "type" : "field",
4555 "value" : ["gtpu_udp", "src_port"]
4556 },
4557 {
4558 "type" : "hexstr",
4559 "value" : "0x0868"
4560 }
4561 ],
4562 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004563 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004564 "line" : 202,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004565 "column" : 8,
4566 "source_fragment" : "gtpu_udp.src_port = 2152"
4567 }
4568 },
4569 {
4570 "op" : "assign",
4571 "parameters" : [
4572 {
4573 "type" : "field",
4574 "value" : ["gtpu_udp", "dst_port"]
4575 },
4576 {
4577 "type" : "hexstr",
4578 "value" : "0x0868"
4579 }
4580 ],
4581 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004582 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004583 "line" : 203,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004584 "column" : 8,
4585 "source_fragment" : "gtpu_udp.dst_port = 2152"
4586 }
4587 },
4588 {
4589 "op" : "assign",
4590 "parameters" : [
4591 {
4592 "type" : "field",
4593 "value" : ["gtpu_udp", "len"]
4594 },
4595 {
4596 "type" : "expression",
4597 "value" : {
4598 "type" : "expression",
4599 "value" : {
4600 "op" : "&",
4601 "left" : {
4602 "type" : "expression",
4603 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004604 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004605 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004606 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004607 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004608 },
4609 "right" : {
4610 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004611 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004612 }
4613 }
4614 },
4615 "right" : {
4616 "type" : "hexstr",
4617 "value" : "0xffff"
4618 }
4619 }
4620 }
4621 }
4622 ],
4623 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004624 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004625 "line" : 204,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004626 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004627 "source_fragment" : "gtpu_udp.len = spgw_meta.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004628 }
4629 },
4630 {
4631 "op" : "assign",
4632 "parameters" : [
4633 {
4634 "type" : "field",
4635 "value" : ["gtpu_udp", "checksum"]
4636 },
4637 {
4638 "type" : "hexstr",
4639 "value" : "0x0000"
4640 }
4641 ],
4642 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004643 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004644 "line" : 206,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004645 "column" : 8,
4646 "source_fragment" : "gtpu_udp.checksum = 0"
4647 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08004648 },
4649 {
4650 "op" : "add_header",
4651 "parameters" : [
4652 {
4653 "type" : "header",
4654 "value" : "gtpu"
4655 }
4656 ],
4657 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004658 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004659 "line" : 208,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004660 "column" : 8,
4661 "source_fragment" : "gtpu.setValid()"
4662 }
4663 },
4664 {
4665 "op" : "assign",
4666 "parameters" : [
4667 {
4668 "type" : "field",
4669 "value" : ["gtpu", "version"]
4670 },
4671 {
4672 "type" : "hexstr",
4673 "value" : "0x01"
4674 }
4675 ],
4676 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004677 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004678 "line" : 209,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004679 "column" : 8,
4680 "source_fragment" : "gtpu.version = 0x01"
4681 }
4682 },
4683 {
4684 "op" : "assign",
4685 "parameters" : [
4686 {
4687 "type" : "field",
4688 "value" : ["gtpu", "pt"]
4689 },
4690 {
4691 "type" : "hexstr",
4692 "value" : "0x01"
4693 }
4694 ],
4695 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004696 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004697 "line" : 210,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004698 "column" : 8,
4699 "source_fragment" : "gtpu.pt = 0x01"
4700 }
4701 },
4702 {
4703 "op" : "assign",
4704 "parameters" : [
4705 {
4706 "type" : "field",
4707 "value" : ["gtpu", "spare"]
4708 },
4709 {
4710 "type" : "hexstr",
4711 "value" : "0x00"
4712 }
4713 ],
4714 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004715 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004716 "line" : 211,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004717 "column" : 8,
4718 "source_fragment" : "gtpu.spare = 0"
4719 }
4720 },
4721 {
4722 "op" : "assign",
4723 "parameters" : [
4724 {
4725 "type" : "field",
4726 "value" : ["gtpu", "ex_flag"]
4727 },
4728 {
4729 "type" : "hexstr",
4730 "value" : "0x00"
4731 }
4732 ],
4733 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004734 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004735 "line" : 212,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004736 "column" : 8,
4737 "source_fragment" : "gtpu.ex_flag = 0"
4738 }
4739 },
4740 {
4741 "op" : "assign",
4742 "parameters" : [
4743 {
4744 "type" : "field",
4745 "value" : ["gtpu", "seq_flag"]
4746 },
4747 {
4748 "type" : "hexstr",
4749 "value" : "0x00"
4750 }
4751 ],
4752 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004753 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004754 "line" : 213,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004755 "column" : 8,
4756 "source_fragment" : "gtpu.seq_flag = 0"
4757 }
4758 },
4759 {
4760 "op" : "assign",
4761 "parameters" : [
4762 {
4763 "type" : "field",
4764 "value" : ["gtpu", "npdu_flag"]
4765 },
4766 {
4767 "type" : "hexstr",
4768 "value" : "0x00"
4769 }
4770 ],
4771 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004772 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004773 "line" : 214,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004774 "column" : 8,
4775 "source_fragment" : "gtpu.npdu_flag = 0"
4776 }
4777 },
4778 {
4779 "op" : "assign",
4780 "parameters" : [
4781 {
4782 "type" : "field",
4783 "value" : ["gtpu", "msgtype"]
4784 },
4785 {
4786 "type" : "hexstr",
4787 "value" : "0xff"
4788 }
4789 ],
4790 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004791 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004792 "line" : 215,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004793 "column" : 8,
4794 "source_fragment" : "gtpu.msgtype = 0xff"
4795 }
4796 },
4797 {
4798 "op" : "assign",
4799 "parameters" : [
4800 {
4801 "type" : "field",
4802 "value" : ["gtpu", "msglen"]
4803 },
4804 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004805 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004806 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004807 }
4808 ],
4809 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004810 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004811 "line" : 216,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004812 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004813 "source_fragment" : "gtpu.msglen = spgw_meta.ipv4_len"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004814 }
4815 },
4816 {
4817 "op" : "assign",
4818 "parameters" : [
4819 {
4820 "type" : "field",
4821 "value" : ["gtpu", "teid"]
4822 },
4823 {
4824 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004825 "value" : ["userMetadata.spgw", "teid"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004826 }
4827 ],
4828 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004829 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004830 "line" : 217,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004831 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004832 "source_fragment" : "gtpu.teid = spgw_meta.teid"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004833 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004834 }
4835 ]
4836 },
4837 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004838 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004839 "id" : 70,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004840 "runtime_data" : [],
4841 "primitives" : [
4842 {
4843 "op" : "assign",
4844 "parameters" : [
4845 {
4846 "type" : "field",
4847 "value" : ["ethernet", "ether_type"]
4848 },
4849 {
4850 "type" : "field",
4851 "value" : ["vlan_tag", "ether_type"]
4852 }
4853 ],
4854 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004855 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004856 "line" : 39,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004857 "column" : 8,
4858 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4859 }
4860 },
4861 {
4862 "op" : "remove_header",
4863 "parameters" : [
4864 {
4865 "type" : "header",
4866 "value" : "vlan_tag"
4867 }
4868 ],
4869 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004870 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004871 "line" : 40,
Yi Tseng47eac892018-07-11 02:17:04 +08004872 "column" : 8,
4873 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4874 }
4875 }
4876 ]
4877 },
4878 {
4879 "name" : "FabricEgress.egress_next.pop_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004880 "id" : 71,
Yi Tseng47eac892018-07-11 02:17:04 +08004881 "runtime_data" : [],
4882 "primitives" : [
4883 {
4884 "op" : "assign",
4885 "parameters" : [
4886 {
4887 "type" : "field",
4888 "value" : ["ethernet", "ether_type"]
4889 },
4890 {
4891 "type" : "field",
4892 "value" : ["vlan_tag", "ether_type"]
4893 }
4894 ],
4895 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004896 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004897 "line" : 253,
Yi Tseng47eac892018-07-11 02:17:04 +08004898 "column" : 8,
4899 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4900 }
4901 },
4902 {
4903 "op" : "remove_header",
4904 "parameters" : [
4905 {
4906 "type" : "header",
4907 "value" : "vlan_tag"
4908 }
4909 ],
4910 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004911 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004912 "line" : 254,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004913 "column" : 8,
4914 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4915 }
4916 }
4917 ]
4918 },
4919 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004920 "name" : "act_29",
4921 "id" : 72,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004922 "runtime_data" : [],
4923 "primitives" : [
4924 {
4925 "op" : "add_header",
4926 "parameters" : [
4927 {
4928 "type" : "header",
4929 "value" : "packet_in"
4930 }
4931 ],
4932 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004933 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004934 "line" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004935 "column" : 12,
4936 "source_fragment" : "hdr.packet_in.setValid()"
4937 }
4938 },
4939 {
4940 "op" : "assign",
4941 "parameters" : [
4942 {
4943 "type" : "field",
4944 "value" : ["packet_in", "ingress_port"]
4945 },
4946 {
4947 "type" : "field",
4948 "value" : ["standard_metadata", "ingress_port"]
4949 }
4950 ],
4951 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004952 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004953 "line" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004954 "column" : 12,
4955 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4956 }
4957 }
4958 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004959 }
4960 ],
4961 "pipelines" : [
4962 {
4963 "name" : "ingress",
4964 "id" : 0,
4965 "source_info" : {
4966 "filename" : "fabric.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004967 "line" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004968 "column" : 8,
4969 "source_fragment" : "FabricIngress"
4970 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004971 "init_table" : "tbl_act",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004972 "tables" : [
4973 {
4974 "name" : "tbl_act",
4975 "id" : 0,
4976 "key" : [],
4977 "match_type" : "exact",
4978 "type" : "simple",
4979 "max_size" : 1024,
4980 "with_counters" : false,
4981 "support_timeout" : false,
4982 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004983 "action_ids" : [37],
4984 "actions" : ["act_0"],
4985 "base_default_next" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004986 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004987 "act_0" : "node_3"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004988 },
4989 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004990 "action_id" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004991 "action_const" : true,
4992 "action_data" : [],
4993 "action_entry_const" : true
4994 }
4995 },
4996 {
4997 "name" : "tbl_act_0",
4998 "id" : 1,
4999 "key" : [],
5000 "match_type" : "exact",
5001 "type" : "simple",
5002 "max_size" : 1024,
5003 "with_counters" : false,
5004 "support_timeout" : false,
5005 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005006 "action_ids" : [36],
5007 "actions" : ["act"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005008 "base_default_next" : "node_5",
5009 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005010 "act" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005011 },
5012 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005013 "action_id" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005014 "action_const" : true,
5015 "action_data" : [],
5016 "action_entry_const" : true
5017 }
5018 },
5019 {
5020 "name" : "tbl_act_1",
5021 "id" : 2,
5022 "key" : [],
5023 "match_type" : "exact",
5024 "type" : "simple",
5025 "max_size" : 1024,
5026 "with_counters" : false,
5027 "support_timeout" : false,
5028 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005029 "action_ids" : [40],
5030 "actions" : ["act_3"],
5031 "base_default_next" : "node_7",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005032 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005033 "act_3" : "node_7"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005034 },
5035 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005036 "action_id" : 40,
5037 "action_const" : true,
5038 "action_data" : [],
5039 "action_entry_const" : true
5040 }
5041 },
5042 {
5043 "name" : "tbl_act_2",
5044 "id" : 3,
5045 "key" : [],
5046 "match_type" : "exact",
5047 "type" : "simple",
5048 "max_size" : 1024,
5049 "with_counters" : false,
5050 "support_timeout" : false,
5051 "direct_meters" : null,
5052 "action_ids" : [38],
5053 "actions" : ["act_1"],
5054 "base_default_next" : "node_10",
5055 "next_tables" : {
5056 "act_1" : "node_10"
5057 },
5058 "default_entry" : {
5059 "action_id" : 38,
5060 "action_const" : true,
5061 "action_data" : [],
5062 "action_entry_const" : true
5063 }
5064 },
5065 {
5066 "name" : "tbl_act_3",
5067 "id" : 4,
5068 "key" : [],
5069 "match_type" : "exact",
5070 "type" : "simple",
5071 "max_size" : 1024,
5072 "with_counters" : false,
5073 "support_timeout" : false,
5074 "direct_meters" : null,
5075 "action_ids" : [39],
5076 "actions" : ["act_2"],
5077 "base_default_next" : "node_10",
5078 "next_tables" : {
5079 "act_2" : "node_10"
5080 },
5081 "default_entry" : {
5082 "action_id" : 39,
5083 "action_const" : true,
5084 "action_data" : [],
5085 "action_entry_const" : true
5086 }
5087 },
5088 {
5089 "name" : "tbl_act_4",
5090 "id" : 5,
5091 "key" : [],
5092 "match_type" : "exact",
5093 "type" : "simple",
5094 "max_size" : 1024,
5095 "with_counters" : false,
5096 "support_timeout" : false,
5097 "direct_meters" : null,
5098 "action_ids" : [41],
5099 "actions" : ["act_4"],
5100 "base_default_next" : null,
5101 "next_tables" : {
5102 "act_4" : null
5103 },
5104 "default_entry" : {
5105 "action_id" : 41,
5106 "action_const" : true,
5107 "action_data" : [],
5108 "action_entry_const" : true
5109 }
5110 },
5111 {
5112 "name" : "tbl_act_5",
5113 "id" : 6,
5114 "key" : [],
5115 "match_type" : "exact",
5116 "type" : "simple",
5117 "max_size" : 1024,
5118 "with_counters" : false,
5119 "support_timeout" : false,
5120 "direct_meters" : null,
5121 "action_ids" : [49],
5122 "actions" : ["act_12"],
5123 "base_default_next" : "node_13",
5124 "next_tables" : {
5125 "act_12" : "node_13"
5126 },
5127 "default_entry" : {
5128 "action_id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005129 "action_const" : true,
5130 "action_data" : [],
5131 "action_entry_const" : true
5132 }
5133 },
5134 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005135 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005136 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005137 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005138 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005139 "line" : 79,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005140 "column" : 10,
5141 "source_fragment" : "s1u_filter_table"
5142 },
5143 "key" : [
5144 {
5145 "match_type" : "exact",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005146 "name" : "gtpu_ipv4.dst_addr",
5147 "target" : ["gtpu_ipv4", "dst_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005148 "mask" : null
5149 }
5150 ],
5151 "match_type" : "exact",
5152 "type" : "simple",
5153 "max_size" : 1024,
5154 "with_counters" : false,
5155 "support_timeout" : false,
5156 "direct_meters" : null,
5157 "action_ids" : [1],
5158 "actions" : ["NoAction"],
5159 "base_default_next" : null,
5160 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005161 "__HIT__" : "tbl_act_6",
5162 "__MISS__" : "tbl_act_7"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005163 },
5164 "default_entry" : {
5165 "action_id" : 1,
5166 "action_const" : false,
5167 "action_data" : [],
5168 "action_entry_const" : false
5169 }
5170 },
5171 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005172 "name" : "tbl_act_6",
5173 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005174 "key" : [],
5175 "match_type" : "exact",
5176 "type" : "simple",
5177 "max_size" : 1024,
5178 "with_counters" : false,
5179 "support_timeout" : false,
5180 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005181 "action_ids" : [42],
5182 "actions" : ["act_5"],
5183 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005184 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005185 "act_5" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005186 },
5187 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005188 "action_id" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005189 "action_const" : true,
5190 "action_data" : [],
5191 "action_entry_const" : true
5192 }
5193 },
5194 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005195 "name" : "tbl_act_7",
5196 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005197 "key" : [],
5198 "match_type" : "exact",
5199 "type" : "simple",
5200 "max_size" : 1024,
5201 "with_counters" : false,
5202 "support_timeout" : false,
5203 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005204 "action_ids" : [43],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005205 "actions" : ["act_6"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005206 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005207 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005208 "act_6" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005209 },
5210 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005211 "action_id" : 43,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005212 "action_const" : true,
5213 "action_data" : [],
5214 "action_entry_const" : true
5215 }
5216 },
5217 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005218 "name" : "tbl_drop_now",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005219 "id" : 10,
5220 "key" : [],
5221 "match_type" : "exact",
5222 "type" : "simple",
5223 "max_size" : 1024,
5224 "with_counters" : false,
5225 "support_timeout" : false,
5226 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005227 "action_ids" : [9],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005228 "actions" : ["drop_now"],
5229 "base_default_next" : "tbl_act_8",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005230 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005231 "drop_now" : "tbl_act_8"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005232 },
5233 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005234 "action_id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005235 "action_const" : true,
5236 "action_data" : [],
5237 "action_entry_const" : true
5238 }
5239 },
5240 {
5241 "name" : "tbl_act_8",
5242 "id" : 11,
5243 "key" : [],
5244 "match_type" : "exact",
5245 "type" : "simple",
5246 "max_size" : 1024,
5247 "with_counters" : false,
5248 "support_timeout" : false,
5249 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005250 "action_ids" : [44],
5251 "actions" : ["act_7"],
5252 "base_default_next" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005253 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005254 "act_7" : "tbl_spgw_ingress_gtpu_decap"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005255 },
5256 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005257 "action_id" : 44,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005258 "action_const" : true,
5259 "action_data" : [],
5260 "action_entry_const" : true
5261 }
5262 },
5263 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005264 "name" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005265 "id" : 12,
5266 "key" : [],
5267 "match_type" : "exact",
5268 "type" : "simple",
5269 "max_size" : 1024,
5270 "with_counters" : false,
5271 "support_timeout" : false,
5272 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005273 "action_ids" : [10],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005274 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005275 "base_default_next" : "node_27",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005276 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005277 "FabricIngress.spgw_ingress.gtpu_decap" : "node_27"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005278 },
5279 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005280 "action_id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005281 "action_const" : true,
5282 "action_data" : [],
5283 "action_entry_const" : true
5284 }
5285 },
5286 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005287 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005288 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005289 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005290 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005291 "line" : 68,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005292 "column" : 10,
5293 "source_fragment" : "dl_sess_lookup"
5294 },
5295 "key" : [
5296 {
5297 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005298 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005299 "target" : ["ipv4", "dst_addr"],
5300 "mask" : null
5301 }
5302 ],
5303 "match_type" : "exact",
5304 "type" : "simple",
5305 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005306 "with_counters" : true,
5307 "support_timeout" : false,
5308 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005309 "action_ids" : [11, 0],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005310 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "NoAction"],
5311 "base_default_next" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005312 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005313 "__HIT__" : "tbl_act_9",
5314 "__MISS__" : "tbl_act_10"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005315 },
5316 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005317 "action_id" : 0,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005318 "action_const" : false,
5319 "action_data" : [],
5320 "action_entry_const" : false
5321 }
5322 },
5323 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005324 "name" : "tbl_act_9",
5325 "id" : 14,
5326 "key" : [],
5327 "match_type" : "exact",
5328 "type" : "simple",
5329 "max_size" : 1024,
5330 "with_counters" : false,
5331 "support_timeout" : false,
5332 "direct_meters" : null,
5333 "action_ids" : [45],
5334 "actions" : ["act_8"],
5335 "base_default_next" : "node_24",
5336 "next_tables" : {
5337 "act_8" : "node_24"
5338 },
5339 "default_entry" : {
5340 "action_id" : 45,
5341 "action_const" : true,
5342 "action_data" : [],
5343 "action_entry_const" : true
5344 }
5345 },
5346 {
5347 "name" : "tbl_act_10",
5348 "id" : 15,
5349 "key" : [],
5350 "match_type" : "exact",
5351 "type" : "simple",
5352 "max_size" : 1024,
5353 "with_counters" : false,
5354 "support_timeout" : false,
5355 "direct_meters" : null,
5356 "action_ids" : [46],
5357 "actions" : ["act_9"],
5358 "base_default_next" : "node_24",
5359 "next_tables" : {
5360 "act_9" : "node_24"
5361 },
5362 "default_entry" : {
5363 "action_id" : 46,
5364 "action_const" : true,
5365 "action_data" : [],
5366 "action_entry_const" : true
5367 }
5368 },
5369 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005370 "name" : "tbl_act_11",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005371 "id" : 16,
5372 "key" : [],
5373 "match_type" : "exact",
5374 "type" : "simple",
5375 "max_size" : 1024,
5376 "with_counters" : false,
5377 "support_timeout" : false,
5378 "direct_meters" : null,
5379 "action_ids" : [47],
5380 "actions" : ["act_10"],
5381 "base_default_next" : "node_27",
5382 "next_tables" : {
5383 "act_10" : "node_27"
5384 },
5385 "default_entry" : {
5386 "action_id" : 47,
5387 "action_const" : true,
5388 "action_data" : [],
5389 "action_entry_const" : true
5390 }
5391 },
5392 {
5393 "name" : "tbl_act_12",
5394 "id" : 17,
5395 "key" : [],
5396 "match_type" : "exact",
5397 "type" : "simple",
5398 "max_size" : 1024,
5399 "with_counters" : false,
5400 "support_timeout" : false,
5401 "direct_meters" : null,
5402 "action_ids" : [48],
5403 "actions" : ["act_11"],
5404 "base_default_next" : "node_27",
5405 "next_tables" : {
5406 "act_11" : "node_27"
5407 },
5408 "default_entry" : {
5409 "action_id" : 48,
5410 "action_const" : true,
5411 "action_data" : [],
5412 "action_entry_const" : true
5413 }
5414 },
5415 {
5416 "name" : "tbl_act_13",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005417 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005418 "key" : [],
5419 "match_type" : "exact",
5420 "type" : "simple",
5421 "max_size" : 1024,
5422 "with_counters" : false,
5423 "support_timeout" : false,
5424 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005425 "action_ids" : [50],
5426 "actions" : ["act_13"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005427 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
5428 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005429 "act_13" : "FabricIngress.filtering.ingress_port_vlan"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005430 },
5431 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005432 "action_id" : 50,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005433 "action_const" : true,
5434 "action_data" : [],
5435 "action_entry_const" : true
5436 }
5437 },
5438 {
5439 "name" : "FabricIngress.filtering.ingress_port_vlan",
5440 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005441 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005442 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005443 "line" : 66,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005444 "column" : 10,
5445 "source_fragment" : "ingress_port_vlan"
5446 },
5447 "key" : [
5448 {
5449 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005450 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005451 "target" : ["standard_metadata", "ingress_port"],
5452 "mask" : null
5453 },
5454 {
5455 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005456 "name" : "hdr.vlan_tag.is_valid",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005457 "target" : ["vlan_tag", "$valid$"],
5458 "mask" : null
5459 },
5460 {
5461 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005462 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005463 "target" : ["vlan_tag", "vlan_id"],
5464 "mask" : null
5465 }
5466 ],
5467 "match_type" : "ternary",
5468 "type" : "simple",
5469 "max_size" : 1024,
5470 "with_counters" : true,
5471 "support_timeout" : false,
5472 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005473 "action_ids" : [14, 13, 12, 15],
5474 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "FabricIngress.filtering.drop", "FabricIngress.filtering.nop_ingress_port_vlan"],
5475 "base_default_next" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005476 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005477 "__HIT__" : "tbl_act_14",
5478 "__MISS__" : "tbl_act_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005479 },
5480 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005481 "action_id" : 14,
5482 "action_const" : true,
5483 "action_data" : ["0xffe"],
5484 "action_entry_const" : true
5485 }
5486 },
5487 {
5488 "name" : "tbl_act_14",
5489 "id" : 20,
5490 "key" : [],
5491 "match_type" : "exact",
5492 "type" : "simple",
5493 "max_size" : 1024,
5494 "with_counters" : false,
5495 "support_timeout" : false,
5496 "direct_meters" : null,
5497 "action_ids" : [51],
5498 "actions" : ["act_14"],
5499 "base_default_next" : "node_32",
5500 "next_tables" : {
5501 "act_14" : "node_32"
5502 },
5503 "default_entry" : {
5504 "action_id" : 51,
5505 "action_const" : true,
5506 "action_data" : [],
5507 "action_entry_const" : true
5508 }
5509 },
5510 {
5511 "name" : "tbl_act_15",
5512 "id" : 21,
5513 "key" : [],
5514 "match_type" : "exact",
5515 "type" : "simple",
5516 "max_size" : 1024,
5517 "with_counters" : false,
5518 "support_timeout" : false,
5519 "direct_meters" : null,
5520 "action_ids" : [52],
5521 "actions" : ["act_15"],
5522 "base_default_next" : "node_32",
5523 "next_tables" : {
5524 "act_15" : "node_32"
5525 },
5526 "default_entry" : {
5527 "action_id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005528 "action_const" : true,
5529 "action_data" : [],
5530 "action_entry_const" : true
5531 }
5532 },
5533 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005534 "name" : "FabricIngress.filtering.fwd_classifier",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005535 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005536 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005537 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005538 "line" : 103,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005539 "column" : 10,
5540 "source_fragment" : "fwd_classifier"
5541 },
5542 "key" : [
5543 {
5544 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005545 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005546 "target" : ["standard_metadata", "ingress_port"],
5547 "mask" : null
5548 },
5549 {
Charles Chan384aea22018-08-23 22:08:02 -07005550 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005551 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005552 "target" : ["ethernet", "dst_addr"],
5553 "mask" : null
5554 },
5555 {
5556 "match_type" : "exact",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005557 "name" : "hdr.vlan_tag.ether_type",
5558 "target" : ["vlan_tag", "ether_type"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005559 "mask" : null
5560 }
5561 ],
Charles Chan384aea22018-08-23 22:08:02 -07005562 "match_type" : "ternary",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005563 "type" : "simple",
5564 "max_size" : 1024,
5565 "with_counters" : true,
5566 "support_timeout" : false,
5567 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005568 "action_ids" : [16],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005569 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005570 "base_default_next" : "node_35",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005571 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005572 "FabricIngress.filtering.set_forwarding_type" : "node_35"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005573 },
5574 "default_entry" : {
Charles Chancf696e52018-08-16 16:25:13 -07005575 "action_id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005576 "action_const" : true,
5577 "action_data" : ["0x0"],
5578 "action_entry_const" : true
5579 }
5580 },
5581 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005582 "name" : "tbl_act_16",
5583 "id" : 23,
5584 "key" : [],
5585 "match_type" : "exact",
5586 "type" : "simple",
5587 "max_size" : 1024,
5588 "with_counters" : false,
5589 "support_timeout" : false,
5590 "direct_meters" : null,
5591 "action_ids" : [53],
5592 "actions" : ["act_16"],
5593 "base_default_next" : "node_35",
5594 "next_tables" : {
5595 "act_16" : "node_35"
5596 },
5597 "default_entry" : {
5598 "action_id" : 53,
5599 "action_const" : true,
5600 "action_data" : [],
5601 "action_entry_const" : true
5602 }
5603 },
5604 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005605 "name" : "FabricIngress.forwarding.bridging",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005606 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005607 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005608 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005609 "line" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005610 "column" : 10,
5611 "source_fragment" : "bridging"
5612 },
5613 "key" : [
5614 {
5615 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005616 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005617 "target" : ["vlan_tag", "vlan_id"],
5618 "mask" : null
5619 },
5620 {
5621 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005622 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005623 "target" : ["ethernet", "dst_addr"],
5624 "mask" : null
5625 }
5626 ],
5627 "match_type" : "ternary",
5628 "type" : "simple",
5629 "max_size" : 1024,
5630 "with_counters" : true,
5631 "support_timeout" : false,
5632 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005633 "action_ids" : [17, 2],
Yi Tseng47eac892018-07-11 02:17:04 +08005634 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005635 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005636 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005637 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005638 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005639 },
5640 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005641 "action_id" : 2,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005642 "action_const" : false,
5643 "action_data" : [],
5644 "action_entry_const" : false
5645 }
5646 },
5647 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005648 "name" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005649 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005650 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005651 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005652 "line" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005653 "column" : 10,
5654 "source_fragment" : "mpls"
5655 },
5656 "key" : [
5657 {
5658 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005659 "name" : "hdr.mpls.label",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005660 "target" : ["mpls", "label"],
5661 "mask" : null
5662 }
5663 ],
5664 "match_type" : "exact",
5665 "type" : "simple",
5666 "max_size" : 1024,
5667 "with_counters" : true,
5668 "support_timeout" : false,
5669 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005670 "action_ids" : [18, 3],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005671 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005672 "base_default_next" : "tbl_act_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005673 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005674 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_17",
5675 "NoAction" : "tbl_act_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005676 },
5677 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005678 "action_id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005679 "action_const" : false,
5680 "action_data" : [],
5681 "action_entry_const" : false
5682 }
5683 },
5684 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005685 "name" : "tbl_act_17",
5686 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005687 "key" : [],
5688 "match_type" : "exact",
5689 "type" : "simple",
5690 "max_size" : 1024,
5691 "with_counters" : false,
5692 "support_timeout" : false,
5693 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005694 "action_ids" : [54],
5695 "actions" : ["act_17"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005696 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005697 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005698 "act_17" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005699 },
5700 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005701 "action_id" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005702 "action_const" : true,
5703 "action_data" : [],
5704 "action_entry_const" : true
5705 }
5706 },
5707 {
Charles Chan384aea22018-08-23 22:08:02 -07005708 "name" : "FabricIngress.forwarding.routing_v4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005709 "id" : 27,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005710 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005711 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005712 "line" : 87,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005713 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07005714 "source_fragment" : "routing_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005715 },
5716 "key" : [
5717 {
5718 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005719 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005720 "target" : ["ipv4", "dst_addr"],
5721 "mask" : null
5722 }
5723 ],
5724 "match_type" : "lpm",
5725 "type" : "simple",
5726 "max_size" : 1024,
5727 "with_counters" : true,
5728 "support_timeout" : false,
5729 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005730 "action_ids" : [19, 4],
Charles Chan384aea22018-08-23 22:08:02 -07005731 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005732 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005733 "next_tables" : {
Charles Chan384aea22018-08-23 22:08:02 -07005734 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005735 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005736 },
5737 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005738 "action_id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005739 "action_const" : false,
5740 "action_data" : [],
5741 "action_entry_const" : false
5742 }
5743 },
5744 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005745 "name" : "FabricIngress.forwarding.acl",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005746 "id" : 28,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005747 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005748 "filename" : "include/control/forwarding.p4",
Charles Chancf696e52018-08-16 16:25:13 -07005749 "line" : 131,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005750 "column" : 10,
5751 "source_fragment" : "acl"
5752 },
5753 "key" : [
5754 {
5755 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005756 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005757 "target" : ["standard_metadata", "ingress_port"],
5758 "mask" : null
5759 },
5760 {
5761 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005762 "name" : "fabric_metadata.ip_proto",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005763 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
5764 "mask" : null
5765 },
5766 {
5767 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005768 "name" : "fabric_metadata.l4_src_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005769 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
5770 "mask" : null
5771 },
5772 {
5773 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005774 "name" : "fabric_metadata.l4_dst_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005775 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
5776 "mask" : null
5777 },
5778 {
5779 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005780 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005781 "target" : ["ethernet", "dst_addr"],
5782 "mask" : null
5783 },
5784 {
5785 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005786 "name" : "hdr.ethernet.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005787 "target" : ["ethernet", "src_addr"],
5788 "mask" : null
5789 },
5790 {
5791 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005792 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005793 "target" : ["vlan_tag", "vlan_id"],
5794 "mask" : null
5795 },
5796 {
5797 "match_type" : "ternary",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005798 "name" : "hdr.vlan_tag.ether_type",
5799 "target" : ["vlan_tag", "ether_type"],
5800 "mask" : null
5801 },
5802 {
5803 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005804 "name" : "hdr.ipv4.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005805 "target" : ["ipv4", "src_addr"],
5806 "mask" : null
5807 },
5808 {
5809 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005810 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005811 "target" : ["ipv4", "dst_addr"],
5812 "mask" : null
5813 },
5814 {
5815 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005816 "name" : "hdr.icmp.icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005817 "target" : ["icmp", "icmp_type"],
5818 "mask" : null
5819 },
5820 {
5821 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005822 "name" : "hdr.icmp.icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005823 "target" : ["icmp", "icmp_code"],
5824 "mask" : null
5825 }
5826 ],
5827 "match_type" : "ternary",
5828 "type" : "simple",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005829 "max_size" : 128,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005830 "with_counters" : true,
5831 "support_timeout" : false,
5832 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005833 "action_ids" : [20, 21, 22, 23, 24],
5834 "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 -07005835 "base_default_next" : "tbl_act_18",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005836 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005837 "FabricIngress.forwarding.set_next_id_acl" : "tbl_act_18",
5838 "FabricIngress.forwarding.punt_to_cpu" : "tbl_act_18",
5839 "FabricIngress.forwarding.clone_to_cpu" : "tbl_act_18",
5840 "FabricIngress.forwarding.drop" : "tbl_act_18",
5841 "FabricIngress.forwarding.nop_acl" : "tbl_act_18"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005842 },
5843 "default_entry" : {
Charles Chancf696e52018-08-16 16:25:13 -07005844 "action_id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005845 "action_const" : true,
5846 "action_data" : [],
5847 "action_entry_const" : true
5848 }
5849 },
5850 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005851 "name" : "tbl_act_18",
5852 "id" : 29,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005853 "key" : [],
5854 "match_type" : "exact",
5855 "type" : "simple",
5856 "max_size" : 1024,
5857 "with_counters" : false,
5858 "support_timeout" : false,
5859 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005860 "action_ids" : [55],
5861 "actions" : ["act_18"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005862 "base_default_next" : "FabricIngress.next.vlan_meta",
5863 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005864 "act_18" : "FabricIngress.next.vlan_meta"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005865 },
5866 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005867 "action_id" : 55,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005868 "action_const" : true,
5869 "action_data" : [],
5870 "action_entry_const" : true
5871 }
5872 },
5873 {
5874 "name" : "FabricIngress.next.vlan_meta",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005875 "id" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005876 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005877 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005878 "line" : 65,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005879 "column" : 10,
5880 "source_fragment" : "vlan_meta"
5881 },
5882 "key" : [
5883 {
5884 "match_type" : "exact",
5885 "name" : "fabric_metadata.next_id",
5886 "target" : ["scalars", "fabric_metadata_t.next_id"],
5887 "mask" : null
5888 }
5889 ],
5890 "match_type" : "exact",
5891 "type" : "simple",
5892 "max_size" : 1024,
5893 "with_counters" : true,
5894 "support_timeout" : false,
5895 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005896 "action_ids" : [25, 8],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005897 "actions" : ["FabricIngress.next.set_vlan", "nop"],
5898 "base_default_next" : "FabricIngress.next.simple",
5899 "next_tables" : {
5900 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
5901 "nop" : "FabricIngress.next.simple"
5902 },
5903 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005904 "action_id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005905 "action_const" : false,
5906 "action_data" : [],
5907 "action_entry_const" : false
5908 }
5909 },
5910 {
5911 "name" : "FabricIngress.next.simple",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005912 "id" : 31,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005913 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005914 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005915 "line" : 122,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005916 "column" : 10,
5917 "source_fragment" : "simple"
5918 },
5919 "key" : [
5920 {
5921 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005922 "name" : "fabric_metadata.next_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005923 "target" : ["scalars", "fabric_metadata_t.next_id"],
5924 "mask" : null
5925 }
5926 ],
5927 "match_type" : "exact",
5928 "type" : "simple",
5929 "max_size" : 1024,
5930 "with_counters" : true,
5931 "support_timeout" : false,
5932 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005933 "action_ids" : [26, 27, 28, 29, 30, 31, 5],
Yi Tseng47eac892018-07-11 02:17:04 +08005934 "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 -08005935 "base_default_next" : null,
5936 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005937 "__HIT__" : "tbl_act_19",
5938 "__MISS__" : "tbl_act_20"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005939 },
5940 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005941 "action_id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005942 "action_const" : false,
5943 "action_data" : [],
5944 "action_entry_const" : false
5945 }
5946 },
5947 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005948 "name" : "tbl_act_19",
5949 "id" : 32,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005950 "key" : [],
5951 "match_type" : "exact",
5952 "type" : "simple",
5953 "max_size" : 1024,
5954 "with_counters" : false,
5955 "support_timeout" : false,
5956 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005957 "action_ids" : [56],
5958 "actions" : ["act_19"],
5959 "base_default_next" : "node_48",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005960 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005961 "act_19" : "node_48"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005962 },
5963 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005964 "action_id" : 56,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005965 "action_const" : true,
5966 "action_data" : [],
5967 "action_entry_const" : true
5968 }
5969 },
5970 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005971 "name" : "tbl_act_20",
5972 "id" : 33,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005973 "key" : [],
5974 "match_type" : "exact",
5975 "type" : "simple",
5976 "max_size" : 1024,
5977 "with_counters" : false,
5978 "support_timeout" : false,
5979 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005980 "action_ids" : [57],
5981 "actions" : ["act_20"],
5982 "base_default_next" : "node_48",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005983 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005984 "act_20" : "node_48"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005985 },
5986 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005987 "action_id" : 57,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005988 "action_const" : true,
5989 "action_data" : [],
5990 "action_entry_const" : true
5991 }
5992 },
5993 {
5994 "name" : "FabricIngress.next.hashed",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005995 "id" : 34,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005996 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005997 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005998 "line" : 175,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005999 "column" : 10,
6000 "source_fragment" : "hashed"
6001 },
6002 "key" : [
6003 {
6004 "match_type" : "exact",
6005 "name" : "fabric_metadata.next_id",
6006 "target" : ["scalars", "fabric_metadata_t.next_id"],
6007 "mask" : null
6008 }
6009 ],
6010 "match_type" : "exact",
6011 "type" : "indirect_ws",
6012 "action_profile" : "FabricIngress.next.ecmp_selector",
6013 "max_size" : 1024,
6014 "with_counters" : true,
6015 "support_timeout" : false,
6016 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006017 "action_ids" : [32, 33, 34, 6],
Yi Tseng47eac892018-07-11 02:17:04 +08006018 "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 +02006019 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006020 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006021 "__HIT__" : "tbl_act_21",
6022 "__MISS__" : "tbl_act_22"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006023 }
6024 },
6025 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006026 "name" : "tbl_act_21",
6027 "id" : 35,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006028 "key" : [],
6029 "match_type" : "exact",
6030 "type" : "simple",
6031 "max_size" : 1024,
6032 "with_counters" : false,
6033 "support_timeout" : false,
6034 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006035 "action_ids" : [58],
6036 "actions" : ["act_21"],
6037 "base_default_next" : "node_52",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006038 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006039 "act_21" : "node_52"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006040 },
6041 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006042 "action_id" : 58,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006043 "action_const" : true,
6044 "action_data" : [],
6045 "action_entry_const" : true
6046 }
6047 },
6048 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006049 "name" : "tbl_act_22",
6050 "id" : 36,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006051 "key" : [],
6052 "match_type" : "exact",
6053 "type" : "simple",
6054 "max_size" : 1024,
6055 "with_counters" : false,
6056 "support_timeout" : false,
6057 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006058 "action_ids" : [59],
6059 "actions" : ["act_22"],
6060 "base_default_next" : "node_52",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006061 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006062 "act_22" : "node_52"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006063 },
6064 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006065 "action_id" : 59,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006066 "action_const" : true,
6067 "action_data" : [],
6068 "action_entry_const" : true
Esin Karaman971fb7f2017-12-28 13:44:52 +00006069 }
6070 },
6071 {
6072 "name" : "FabricIngress.next.multicast",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006073 "id" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006074 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006075 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006076 "line" : 207,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006077 "column" : 10,
6078 "source_fragment" : "multicast"
6079 },
6080 "key" : [
6081 {
6082 "match_type" : "exact",
6083 "name" : "fabric_metadata.next_id",
6084 "target" : ["scalars", "fabric_metadata_t.next_id"],
6085 "mask" : null
6086 }
6087 ],
6088 "match_type" : "exact",
6089 "type" : "simple",
6090 "max_size" : 1024,
6091 "with_counters" : true,
6092 "support_timeout" : false,
6093 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006094 "action_ids" : [35, 7],
Esin Karaman971fb7f2017-12-28 13:44:52 +00006095 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006096 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006097 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006098 "__HIT__" : "tbl_act_23",
6099 "__MISS__" : "tbl_act_24"
Esin Karaman971fb7f2017-12-28 13:44:52 +00006100 },
6101 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006102 "action_id" : 7,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006103 "action_const" : false,
6104 "action_data" : [],
6105 "action_entry_const" : false
Yi Tseng27b9bc02018-04-12 14:52:40 +08006106 }
6107 },
6108 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006109 "name" : "tbl_act_23",
6110 "id" : 38,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006111 "key" : [],
6112 "match_type" : "exact",
6113 "type" : "simple",
6114 "max_size" : 1024,
6115 "with_counters" : false,
6116 "support_timeout" : false,
6117 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006118 "action_ids" : [60],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006119 "actions" : ["act_23"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006120 "base_default_next" : "node_56",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006121 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006122 "act_23" : "node_56"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006123 },
6124 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006125 "action_id" : 60,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006126 "action_const" : true,
6127 "action_data" : [],
6128 "action_entry_const" : true
6129 }
6130 },
6131 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006132 "name" : "tbl_act_24",
6133 "id" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006134 "key" : [],
6135 "match_type" : "exact",
6136 "type" : "simple",
6137 "max_size" : 1024,
6138 "with_counters" : false,
6139 "support_timeout" : false,
6140 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006141 "action_ids" : [61],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006142 "actions" : ["act_24"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006143 "base_default_next" : "node_56",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006144 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006145 "act_24" : "node_56"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006146 },
6147 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006148 "action_id" : 61,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006149 "action_const" : true,
6150 "action_data" : [],
6151 "action_entry_const" : true
6152 }
6153 },
6154 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006155 "name" : "tbl_act_25",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006156 "id" : 40,
6157 "key" : [],
6158 "match_type" : "exact",
6159 "type" : "simple",
6160 "max_size" : 1024,
6161 "with_counters" : false,
6162 "support_timeout" : false,
6163 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006164 "action_ids" : [62],
6165 "actions" : ["act_25"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006166 "base_default_next" : "node_58",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006167 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006168 "act_25" : "node_58"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006169 },
6170 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006171 "action_id" : 62,
Carmelo Cascone14cde402018-01-25 01:57:18 -08006172 "action_const" : true,
6173 "action_data" : [],
6174 "action_entry_const" : true
6175 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006176 },
6177 {
6178 "name" : "tbl_act_26",
6179 "id" : 41,
6180 "key" : [],
6181 "match_type" : "exact",
6182 "type" : "simple",
6183 "max_size" : 1024,
6184 "with_counters" : false,
6185 "support_timeout" : false,
6186 "direct_meters" : null,
6187 "action_ids" : [63],
6188 "actions" : ["act_26"],
6189 "base_default_next" : "node_62",
6190 "next_tables" : {
6191 "act_26" : "node_62"
6192 },
6193 "default_entry" : {
6194 "action_id" : 63,
6195 "action_const" : true,
6196 "action_data" : [],
6197 "action_entry_const" : true
6198 }
6199 },
6200 {
6201 "name" : "tbl_act_27",
6202 "id" : 42,
6203 "key" : [],
6204 "match_type" : "exact",
6205 "type" : "simple",
6206 "max_size" : 1024,
6207 "with_counters" : false,
6208 "support_timeout" : false,
6209 "direct_meters" : null,
6210 "action_ids" : [64],
6211 "actions" : ["act_27"],
6212 "base_default_next" : "node_64",
6213 "next_tables" : {
6214 "act_27" : "node_64"
6215 },
6216 "default_entry" : {
6217 "action_id" : 64,
6218 "action_const" : true,
6219 "action_data" : [],
6220 "action_entry_const" : true
6221 }
6222 },
6223 {
6224 "name" : "tbl_act_28",
6225 "id" : 43,
6226 "key" : [],
6227 "match_type" : "exact",
6228 "type" : "simple",
6229 "max_size" : 1024,
6230 "with_counters" : false,
6231 "support_timeout" : false,
6232 "direct_meters" : null,
6233 "action_ids" : [65],
6234 "actions" : ["act_28"],
6235 "base_default_next" : null,
6236 "next_tables" : {
6237 "act_28" : null
6238 },
6239 "default_entry" : {
6240 "action_id" : 65,
6241 "action_const" : true,
6242 "action_data" : [],
6243 "action_entry_const" : true
6244 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006245 }
6246 ],
6247 "action_profiles" : [
6248 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006249 "name" : "FabricIngress.next.ecmp_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006250 "id" : 0,
6251 "max_size" : 64,
6252 "selector" : {
6253 "algo" : "crc16",
6254 "input" : [
6255 {
6256 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08006257 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006258 },
6259 {
6260 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08006261 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006262 },
6263 {
6264 "type" : "field",
6265 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
6266 },
6267 {
6268 "type" : "field",
6269 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
6270 },
6271 {
6272 "type" : "field",
6273 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
6274 }
6275 ]
6276 }
6277 }
6278 ],
6279 "conditionals" : [
6280 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006281 "name" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006282 "id" : 0,
6283 "source_info" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006284 "filename" : "include/spgw.p4",
6285 "line" : 30,
6286 "column" : 12,
6287 "source_fragment" : "! is_gtpu_encapped"
6288 },
6289 "expression" : {
6290 "type" : "expression",
6291 "value" : {
6292 "op" : "not",
6293 "left" : null,
6294 "right" : {
6295 "type" : "expression",
6296 "value" : {
6297 "op" : "d2b",
6298 "left" : null,
6299 "right" : {
6300 "type" : "field",
6301 "value" : ["gtpu", "$valid$"]
6302 }
6303 }
6304 }
6305 }
6306 },
6307 "true_next" : "tbl_act_0",
6308 "false_next" : "node_5"
6309 },
6310 {
6311 "name" : "node_5",
6312 "id" : 1,
6313 "expression" : {
6314 "type" : "expression",
6315 "value" : {
6316 "op" : "not",
6317 "left" : null,
6318 "right" : {
6319 "type" : "expression",
6320 "value" : {
6321 "op" : "d2b",
6322 "left" : null,
6323 "right" : {
6324 "type" : "field",
6325 "value" : ["scalars", "spgw_normalizer_hasReturned_0"]
6326 }
6327 }
6328 }
6329 }
6330 },
6331 "true_next" : "tbl_act_1",
6332 "false_next" : "node_10"
6333 },
6334 {
6335 "name" : "node_7",
6336 "id" : 2,
6337 "source_info" : {
6338 "filename" : "include/spgw.p4",
6339 "line" : 34,
6340 "column" : 12,
6341 "source_fragment" : "inner_udp.isValid()"
6342 },
6343 "expression" : {
6344 "type" : "expression",
6345 "value" : {
6346 "op" : "d2b",
6347 "left" : null,
6348 "right" : {
6349 "type" : "field",
6350 "value" : ["inner_udp", "$valid$"]
6351 }
6352 }
6353 },
6354 "true_next" : "tbl_act_2",
6355 "false_next" : "tbl_act_3"
6356 },
6357 {
6358 "name" : "node_10",
6359 "id" : 3,
6360 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006361 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006362 "line" : 25,
6363 "column" : 12,
6364 "source_fragment" : "hdr.packet_out.isValid()"
6365 },
6366 "expression" : {
6367 "type" : "expression",
6368 "value" : {
6369 "op" : "d2b",
6370 "left" : null,
6371 "right" : {
6372 "type" : "field",
6373 "value" : ["packet_out", "$valid$"]
6374 }
6375 }
6376 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006377 "true_next" : "tbl_act_4",
6378 "false_next" : "tbl_act_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006379 },
6380 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006381 "name" : "node_13",
6382 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006383 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006384 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006385 "line" : 139,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006386 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006387 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006388 },
6389 "expression" : {
6390 "type" : "expression",
6391 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006392 "op" : "d2b",
6393 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006394 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006395 "type" : "field",
6396 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006397 }
6398 }
6399 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006400 "true_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
6401 "false_next" : "FabricIngress.spgw_ingress.dl_sess_lookup"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006402 },
6403 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006404 "name" : "node_17",
6405 "id" : 5,
6406 "source_info" : {
6407 "filename" : "include/spgw.p4",
6408 "line" : 143,
6409 "column" : 16,
6410 "source_fragment" : "!s1u_filter_table.apply().hit"
6411 },
6412 "expression" : {
6413 "type" : "expression",
6414 "value" : {
6415 "op" : "not",
6416 "left" : null,
6417 "right" : {
6418 "type" : "expression",
6419 "value" : {
6420 "op" : "d2b",
6421 "left" : null,
6422 "right" : {
6423 "type" : "field",
6424 "value" : ["scalars", "spgw_ingress_tmp_1"]
6425 }
6426 }
6427 }
6428 }
6429 },
6430 "true_next" : "tbl_drop_now",
6431 "false_next" : "tbl_act_8"
6432 },
6433 {
6434 "name" : "node_24",
6435 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006436 "expression" : {
6437 "type" : "expression",
6438 "value" : {
6439 "op" : "d2b",
6440 "left" : null,
6441 "right" : {
6442 "type" : "field",
6443 "value" : ["scalars", "spgw_ingress_tmp_2"]
6444 }
6445 }
6446 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006447 "true_next" : "tbl_act_11",
6448 "false_next" : "tbl_act_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006449 },
6450 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006451 "name" : "node_27",
6452 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006453 "expression" : {
6454 "type" : "expression",
6455 "value" : {
6456 "op" : "not",
6457 "left" : null,
6458 "right" : {
6459 "type" : "expression",
6460 "value" : {
6461 "op" : "d2b",
6462 "left" : null,
6463 "right" : {
6464 "type" : "field",
6465 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
6466 }
6467 }
6468 }
6469 }
6470 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006471 "true_next" : "tbl_act_13",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006472 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006473 },
6474 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006475 "name" : "node_32",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006476 "id" : 8,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006477 "expression" : {
6478 "type" : "expression",
6479 "value" : {
6480 "op" : "d2b",
6481 "left" : null,
6482 "right" : {
6483 "type" : "field",
6484 "value" : ["scalars", "filtering_tmp_0"]
6485 }
6486 }
6487 },
6488 "true_next" : "FabricIngress.filtering.fwd_classifier",
6489 "false_next" : "tbl_act_16"
6490 },
6491 {
6492 "name" : "node_35",
6493 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006494 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006495 "filename" : "include/control/forwarding.p4",
Charles Chan384aea22018-08-23 22:08:02 -07006496 "line" : 186,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006497 "column" : 11,
6498 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
6499 },
6500 "expression" : {
6501 "type" : "expression",
6502 "value" : {
6503 "op" : "==",
6504 "left" : {
6505 "type" : "field",
6506 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6507 },
6508 "right" : {
6509 "type" : "hexstr",
6510 "value" : "0x00"
6511 }
6512 }
6513 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006514 "true_next" : "FabricIngress.forwarding.bridging",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006515 "false_next" : "node_37"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006516 },
6517 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006518 "name" : "node_37",
6519 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006520 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006521 "filename" : "include/control/forwarding.p4",
Charles Chan384aea22018-08-23 22:08:02 -07006522 "line" : 187,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006523 "column" : 17,
6524 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
6525 },
6526 "expression" : {
6527 "type" : "expression",
6528 "value" : {
6529 "op" : "==",
6530 "left" : {
6531 "type" : "field",
6532 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6533 },
6534 "right" : {
6535 "type" : "hexstr",
6536 "value" : "0x01"
6537 }
6538 }
6539 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006540 "true_next" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006541 "false_next" : "node_40"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006542 },
6543 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006544 "name" : "node_40",
6545 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006546 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006547 "filename" : "include/control/forwarding.p4",
Charles Chan384aea22018-08-23 22:08:02 -07006548 "line" : 193,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006549 "column" : 17,
6550 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
6551 },
6552 "expression" : {
6553 "type" : "expression",
6554 "value" : {
6555 "op" : "==",
6556 "left" : {
6557 "type" : "field",
6558 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6559 },
6560 "right" : {
6561 "type" : "hexstr",
6562 "value" : "0x02"
6563 }
6564 }
6565 },
Charles Chan384aea22018-08-23 22:08:02 -07006566 "true_next" : "FabricIngress.forwarding.routing_v4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006567 "false_next" : "FabricIngress.forwarding.acl"
6568 },
6569 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006570 "name" : "node_48",
6571 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006572 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006573 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08006574 "line" : 219,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006575 "column" : 12,
6576 "source_fragment" : "!simple.apply().hit"
6577 },
6578 "expression" : {
6579 "type" : "expression",
6580 "value" : {
6581 "op" : "not",
6582 "left" : null,
6583 "right" : {
6584 "type" : "expression",
6585 "value" : {
6586 "op" : "d2b",
6587 "left" : null,
6588 "right" : {
6589 "type" : "field",
6590 "value" : ["scalars", "next_tmp_4"]
6591 }
6592 }
6593 }
6594 }
6595 },
6596 "true_next" : "FabricIngress.next.hashed",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006597 "false_next" : "node_58"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006598 },
6599 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006600 "name" : "node_52",
6601 "id" : 13,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006602 "source_info" : {
6603 "filename" : "include/control/next.p4",
6604 "line" : 220,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006605 "column" : 16,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006606 "source_fragment" : "!hashed.apply().hit"
6607 },
6608 "expression" : {
6609 "type" : "expression",
6610 "value" : {
6611 "op" : "not",
6612 "left" : null,
6613 "right" : {
6614 "type" : "expression",
6615 "value" : {
6616 "op" : "d2b",
6617 "left" : null,
6618 "right" : {
6619 "type" : "field",
6620 "value" : ["scalars", "next_tmp_3"]
6621 }
6622 }
6623 }
6624 }
6625 },
6626 "true_next" : "FabricIngress.next.multicast",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006627 "false_next" : "node_58"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006628 },
6629 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006630 "name" : "node_56",
6631 "id" : 14,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006632 "source_info" : {
6633 "filename" : "include/control/next.p4",
6634 "line" : 221,
6635 "column" : 20,
6636 "source_fragment" : "!multicast.apply().hit"
6637 },
6638 "expression" : {
6639 "type" : "expression",
6640 "value" : {
6641 "op" : "not",
6642 "left" : null,
6643 "right" : {
6644 "type" : "expression",
6645 "value" : {
6646 "op" : "d2b",
6647 "left" : null,
6648 "right" : {
6649 "type" : "field",
6650 "value" : ["scalars", "next_tmp_2"]
6651 }
6652 }
6653 }
6654 }
6655 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006656 "true_next" : "tbl_act_25",
6657 "false_next" : "node_58"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006658 },
6659 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006660 "name" : "node_58",
6661 "id" : 15,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006662 "expression" : {
6663 "type" : "expression",
6664 "value" : {
6665 "op" : "not",
6666 "left" : null,
6667 "right" : {
6668 "type" : "expression",
6669 "value" : {
6670 "op" : "d2b",
6671 "left" : null,
6672 "right" : {
6673 "type" : "field",
6674 "value" : ["scalars", "next_hasReturned_0"]
6675 }
6676 }
6677 }
6678 }
6679 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006680 "true_next" : "node_59",
6681 "false_next" : "node_62"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006682 },
6683 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006684 "name" : "node_59",
6685 "id" : 16,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006686 "source_info" : {
6687 "filename" : "include/control/next.p4",
6688 "line" : 228,
6689 "column" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006690 "source_fragment" : "!hdr.mpls.isValid()"
6691 },
6692 "expression" : {
6693 "type" : "expression",
6694 "value" : {
6695 "op" : "not",
6696 "left" : null,
6697 "right" : {
6698 "type" : "expression",
6699 "value" : {
6700 "op" : "d2b",
6701 "left" : null,
6702 "right" : {
6703 "type" : "field",
6704 "value" : ["mpls", "$valid$"]
6705 }
6706 }
6707 }
6708 }
6709 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006710 "true_next" : "node_60",
6711 "false_next" : "node_62"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006712 },
6713 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006714 "name" : "node_60",
6715 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006716 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006717 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006718 "line" : 229,
6719 "column" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006720 "source_fragment" : "hdr.ipv4.isValid()"
6721 },
6722 "expression" : {
6723 "type" : "expression",
6724 "value" : {
6725 "op" : "d2b",
6726 "left" : null,
6727 "right" : {
6728 "type" : "field",
6729 "value" : ["ipv4", "$valid$"]
6730 }
6731 }
6732 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006733 "true_next" : "tbl_act_26",
6734 "false_next" : "node_62"
Yi Tseng27b9bc02018-04-12 14:52:40 +08006735 },
6736 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006737 "name" : "node_62",
6738 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006739 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006740 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006741 "line" : 27,
6742 "column" : 12,
6743 "source_fragment" : "standard_metadata.egress_spec < 511"
6744 },
6745 "expression" : {
6746 "type" : "expression",
6747 "value" : {
6748 "op" : "<",
6749 "left" : {
6750 "type" : "field",
6751 "value" : ["standard_metadata", "egress_spec"]
6752 },
6753 "right" : {
6754 "type" : "hexstr",
6755 "value" : "0x01ff"
6756 }
6757 }
6758 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006759 "true_next" : "tbl_act_27",
6760 "false_next" : "node_64"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006761 },
6762 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006763 "name" : "node_64",
6764 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006765 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006766 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006767 "line" : 30,
6768 "column" : 12,
6769 "source_fragment" : "standard_metadata.ingress_port < 511"
6770 },
6771 "expression" : {
6772 "type" : "expression",
6773 "value" : {
6774 "op" : "<",
6775 "left" : {
6776 "type" : "field",
6777 "value" : ["standard_metadata", "ingress_port"]
6778 },
6779 "right" : {
6780 "type" : "hexstr",
6781 "value" : "0x01ff"
6782 }
6783 }
6784 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006785 "false_next" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006786 "true_next" : "tbl_act_28"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006787 }
6788 ]
6789 },
6790 {
6791 "name" : "egress",
6792 "id" : 1,
6793 "source_info" : {
6794 "filename" : "fabric.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006795 "line" : 80,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006796 "column" : 8,
6797 "source_fragment" : "FabricEgress"
6798 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006799 "init_table" : "node_68",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006800 "tables" : [
6801 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006802 "name" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006803 "id" : 44,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006804 "key" : [],
6805 "match_type" : "exact",
6806 "type" : "simple",
6807 "max_size" : 1024,
6808 "with_counters" : false,
6809 "support_timeout" : false,
6810 "direct_meters" : null,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006811 "action_ids" : [70],
6812 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
6813 "base_default_next" : "node_72",
6814 "next_tables" : {
6815 "FabricEgress.pkt_io_egress.pop_vlan" : "node_72"
6816 },
6817 "default_entry" : {
6818 "action_id" : 70,
6819 "action_const" : true,
6820 "action_data" : [],
6821 "action_entry_const" : true
6822 }
6823 },
6824 {
6825 "name" : "tbl_drop_now_0",
6826 "id" : 45,
6827 "key" : [],
6828 "match_type" : "exact",
6829 "type" : "simple",
6830 "max_size" : 1024,
6831 "with_counters" : false,
6832 "support_timeout" : false,
6833 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006834 "action_ids" : [67],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006835 "actions" : ["drop_now"],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006836 "base_default_next" : "tbl_act_29",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006837 "next_tables" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006838 "drop_now" : "tbl_act_29"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006839 },
6840 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006841 "action_id" : 67,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006842 "action_const" : true,
6843 "action_data" : [],
6844 "action_entry_const" : true
6845 }
6846 },
6847 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006848 "name" : "tbl_act_29",
6849 "id" : 46,
6850 "key" : [],
6851 "match_type" : "exact",
6852 "type" : "simple",
6853 "max_size" : 1024,
6854 "with_counters" : false,
6855 "support_timeout" : false,
6856 "direct_meters" : null,
6857 "action_ids" : [72],
6858 "actions" : ["act_29"],
6859 "base_default_next" : null,
6860 "next_tables" : {
6861 "act_29" : null
6862 },
6863 "default_entry" : {
6864 "action_id" : 72,
6865 "action_const" : true,
6866 "action_data" : [],
6867 "action_entry_const" : true
6868 }
6869 },
6870 {
6871 "name" : "tbl_drop_now_1",
6872 "id" : 47,
6873 "key" : [],
6874 "match_type" : "exact",
6875 "type" : "simple",
6876 "max_size" : 1024,
6877 "with_counters" : false,
6878 "support_timeout" : false,
6879 "direct_meters" : null,
6880 "action_ids" : [68],
6881 "actions" : ["drop_now"],
6882 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6883 "next_tables" : {
6884 "drop_now" : "FabricEgress.egress_next.egress_vlan"
6885 },
6886 "default_entry" : {
6887 "action_id" : 68,
6888 "action_const" : true,
6889 "action_data" : [],
6890 "action_entry_const" : true
6891 }
6892 },
6893 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006894 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006895 "id" : 48,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006896 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006897 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006898 "line" : 258,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006899 "column" : 10,
6900 "source_fragment" : "egress_vlan"
6901 },
6902 "key" : [
6903 {
6904 "match_type" : "exact",
6905 "name" : "hdr.vlan_tag.vlan_id",
6906 "target" : ["vlan_tag", "vlan_id"],
6907 "mask" : null
6908 },
6909 {
6910 "match_type" : "exact",
6911 "name" : "standard_metadata.egress_port",
6912 "target" : ["standard_metadata", "egress_port"],
6913 "mask" : null
6914 }
6915 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006916 "match_type" : "exact",
6917 "type" : "simple",
6918 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08006919 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006920 "support_timeout" : false,
6921 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006922 "action_ids" : [71, 66],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006923 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006924 "base_default_next" : "node_78",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006925 "next_tables" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006926 "FabricEgress.egress_next.pop_vlan" : "node_78",
6927 "nop" : "node_78"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006928 },
6929 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006930 "action_id" : 66,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006931 "action_const" : false,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006932 "action_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006933 "action_entry_const" : false
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006934 }
6935 },
6936 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006937 "name" : "tbl_spgw_egress_gtpu_encap",
6938 "id" : 49,
6939 "key" : [],
6940 "match_type" : "exact",
6941 "type" : "simple",
6942 "max_size" : 1024,
6943 "with_counters" : false,
6944 "support_timeout" : false,
6945 "direct_meters" : null,
6946 "action_ids" : [69],
Yi Tseng27b9bc02018-04-12 14:52:40 +08006947 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006948 "base_default_next" : null,
6949 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006950 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006951 },
6952 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006953 "action_id" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006954 "action_const" : true,
6955 "action_data" : [],
6956 "action_entry_const" : true
6957 }
6958 }
6959 ],
6960 "action_profiles" : [],
6961 "conditionals" : [
6962 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006963 "name" : "node_68",
6964 "id" : 20,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006965 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006966 "filename" : "include/control/packetio.p4",
6967 "line" : 43,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006968 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006969 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006970 },
6971 "expression" : {
6972 "type" : "expression",
6973 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006974 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006975 "left" : {
6976 "type" : "expression",
6977 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006978 "op" : "d2b",
6979 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006980 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006981 "type" : "field",
6982 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02006983 }
6984 }
6985 },
6986 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006987 "type" : "bool",
6988 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02006989 }
6990 }
6991 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006992 "true_next" : null,
6993 "false_next" : "node_69"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006994 },
6995 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006996 "name" : "node_69",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006997 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006998 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006999 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007000 "line" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007001 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08007002 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007003 },
7004 "expression" : {
7005 "type" : "expression",
7006 "value" : {
7007 "op" : "==",
7008 "left" : {
7009 "type" : "field",
7010 "value" : ["standard_metadata", "egress_port"]
7011 },
7012 "right" : {
7013 "type" : "hexstr",
7014 "value" : "0x00ff"
7015 }
7016 }
7017 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007018 "true_next" : "node_70",
7019 "false_next" : "node_75"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007020 },
7021 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007022 "name" : "node_70",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007023 "id" : 22,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007024 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007025 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007026 "line" : 48,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007027 "column" : 16,
Carmelo Cascone228092b2018-06-15 20:41:10 +02007028 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in == true"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007029 },
7030 "expression" : {
7031 "type" : "expression",
7032 "value" : {
7033 "op" : "and",
7034 "left" : {
7035 "type" : "expression",
7036 "value" : {
7037 "op" : "d2b",
7038 "left" : null,
7039 "right" : {
7040 "type" : "field",
7041 "value" : ["vlan_tag", "$valid$"]
7042 }
7043 }
7044 },
7045 "right" : {
7046 "type" : "expression",
7047 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02007048 "op" : "==",
7049 "left" : {
7050 "type" : "expression",
7051 "value" : {
7052 "op" : "d2b",
7053 "left" : null,
7054 "right" : {
7055 "type" : "field",
7056 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
7057 }
7058 }
7059 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007060 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02007061 "type" : "bool",
7062 "value" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007063 }
7064 }
7065 }
7066 }
7067 },
7068 "true_next" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007069 "false_next" : "node_72"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02007070 },
7071 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007072 "name" : "node_72",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007073 "id" : 23,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02007074 "source_info" : {
7075 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007076 "line" : 51,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02007077 "column" : 16,
7078 "source_fragment" : "fabric_metadata.is_multicast == true && ..."
7079 },
7080 "expression" : {
7081 "type" : "expression",
7082 "value" : {
7083 "op" : "and",
7084 "left" : {
7085 "type" : "expression",
7086 "value" : {
7087 "op" : "==",
7088 "left" : {
7089 "type" : "expression",
7090 "value" : {
7091 "op" : "d2b",
7092 "left" : null,
7093 "right" : {
7094 "type" : "field",
7095 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
7096 }
7097 }
7098 },
7099 "right" : {
7100 "type" : "bool",
7101 "value" : true
7102 }
7103 }
7104 },
7105 "right" : {
7106 "type" : "expression",
7107 "value" : {
7108 "op" : "==",
7109 "left" : {
7110 "type" : "expression",
7111 "value" : {
7112 "op" : "d2b",
7113 "left" : null,
7114 "right" : {
7115 "type" : "field",
7116 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
7117 }
7118 }
7119 },
7120 "right" : {
7121 "type" : "bool",
7122 "value" : false
7123 }
7124 }
7125 }
7126 }
7127 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007128 "true_next" : "tbl_drop_now_0",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007129 "false_next" : "tbl_act_29"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007130 },
7131 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007132 "name" : "node_75",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007133 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007134 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007135 "filename" : "include/control/next.p4",
7136 "line" : 272,
7137 "column" : 12,
7138 "source_fragment" : "fabric_metadata.is_multicast == true ..."
7139 },
7140 "expression" : {
7141 "type" : "expression",
7142 "value" : {
7143 "op" : "and",
7144 "left" : {
7145 "type" : "expression",
7146 "value" : {
7147 "op" : "==",
7148 "left" : {
7149 "type" : "expression",
7150 "value" : {
7151 "op" : "d2b",
7152 "left" : null,
7153 "right" : {
7154 "type" : "field",
7155 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
7156 }
7157 }
7158 },
7159 "right" : {
7160 "type" : "bool",
7161 "value" : true
7162 }
7163 }
7164 },
7165 "right" : {
7166 "type" : "expression",
7167 "value" : {
7168 "op" : "==",
7169 "left" : {
7170 "type" : "field",
7171 "value" : ["standard_metadata", "ingress_port"]
7172 },
7173 "right" : {
7174 "type" : "field",
7175 "value" : ["standard_metadata", "egress_port"]
7176 }
7177 }
7178 }
7179 }
7180 },
7181 "true_next" : "tbl_drop_now_1",
7182 "false_next" : "FabricEgress.egress_next.egress_vlan"
7183 },
7184 {
7185 "name" : "node_78",
7186 "id" : 25,
7187 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007188 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07007189 "line" : 221,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007190 "column" : 12,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007191 "source_fragment" : "spgw_meta.direction == SPGW_DIR_DOWNLINK"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007192 },
7193 "expression" : {
7194 "type" : "expression",
7195 "value" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007196 "op" : "==",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007197 "left" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007198 "type" : "field",
7199 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007200 },
7201 "right" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007202 "type" : "hexstr",
7203 "value" : "0x02"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007204 }
7205 }
7206 },
7207 "false_next" : null,
7208 "true_next" : "tbl_spgw_egress_gtpu_encap"
7209 }
7210 ]
7211 }
7212 ],
7213 "checksums" : [
7214 {
7215 "name" : "cksum",
7216 "id" : 0,
7217 "target" : ["ipv4", "hdr_checksum"],
7218 "type" : "generic",
7219 "calculation" : "calc",
7220 "if_cond" : {
7221 "type" : "expression",
7222 "value" : {
7223 "op" : "d2b",
7224 "left" : null,
7225 "right" : {
7226 "type" : "field",
7227 "value" : ["ipv4", "$valid$"]
7228 }
7229 }
7230 }
7231 },
7232 {
7233 "name" : "cksum_0",
7234 "id" : 1,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007235 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007236 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007237 "calculation" : "calc_0",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007238 "if_cond" : {
7239 "type" : "expression",
7240 "value" : {
7241 "op" : "d2b",
7242 "left" : null,
7243 "right" : {
7244 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007245 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007246 }
7247 }
7248 }
7249 },
7250 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007251 "name" : "cksum_1",
7252 "id" : 2,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007253 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007254 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007255 "calculation" : "calc_1",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007256 "if_cond" : {
7257 "type" : "expression",
7258 "value" : {
7259 "op" : "d2b",
7260 "left" : null,
7261 "right" : {
7262 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007263 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007264 }
7265 }
7266 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007267 }
7268 ],
7269 "force_arith" : [],
7270 "extern_instances" : [],
7271 "field_aliases" : [
7272 [
7273 "queueing_metadata.enq_timestamp",
7274 ["standard_metadata", "enq_timestamp"]
7275 ],
7276 [
7277 "queueing_metadata.enq_qdepth",
7278 ["standard_metadata", "enq_qdepth"]
7279 ],
7280 [
7281 "queueing_metadata.deq_timedelta",
7282 ["standard_metadata", "deq_timedelta"]
7283 ],
7284 [
7285 "queueing_metadata.deq_qdepth",
7286 ["standard_metadata", "deq_qdepth"]
7287 ],
7288 [
7289 "intrinsic_metadata.ingress_global_timestamp",
7290 ["standard_metadata", "ingress_global_timestamp"]
7291 ],
7292 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08007293 "intrinsic_metadata.egress_global_timestamp",
7294 ["standard_metadata", "egress_global_timestamp"]
7295 ],
7296 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007297 "intrinsic_metadata.lf_field_list",
7298 ["standard_metadata", "lf_field_list"]
7299 ],
7300 [
7301 "intrinsic_metadata.mcast_grp",
7302 ["standard_metadata", "mcast_grp"]
7303 ],
7304 [
7305 "intrinsic_metadata.resubmit_flag",
7306 ["standard_metadata", "resubmit_flag"]
7307 ],
7308 [
7309 "intrinsic_metadata.egress_rid",
7310 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08007311 ],
7312 [
7313 "intrinsic_metadata.recirculate_flag",
7314 ["standard_metadata", "recirculate_flag"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007315 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007316 ],
7317 "program" : "fabric.p4",
7318 "__meta__" : {
7319 "version" : [2, 18],
7320 "compiler" : "https://github.com/p4lang/p4c"
7321 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007322}