blob: 9d273d272afe8c299cb49907542d4750f6de7dba [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],
24 ["fabric_metadata_t.clone_to_cpu", 1, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080025 ["fabric_metadata_t.ip_proto", 8, false],
26 ["fabric_metadata_t.l4_src_port", 16, false],
27 ["fabric_metadata_t.l4_dst_port", 16, false],
Carmelo Cascone8a715f82018-08-20 23:16:27 -070028 ["_padding_1", 5, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080029 ]
30 },
31 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020032 "name" : "standard_metadata",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080033 "id" : 1,
34 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020035 ["ingress_port", 9, false],
36 ["egress_spec", 9, false],
37 ["egress_port", 9, false],
38 ["clone_spec", 32, false],
39 ["instance_type", 32, false],
40 ["drop", 1, false],
41 ["recirculate_port", 16, false],
42 ["packet_length", 32, false],
43 ["enq_timestamp", 32, false],
44 ["enq_qdepth", 19, false],
45 ["deq_timedelta", 32, false],
46 ["deq_qdepth", 19, false],
47 ["ingress_global_timestamp", 48, false],
48 ["egress_global_timestamp", 48, false],
49 ["lf_field_list", 32, false],
50 ["mcast_grp", 16, false],
51 ["resubmit_flag", 32, false],
52 ["egress_rid", 16, false],
53 ["checksum_error", 1, false],
54 ["recirculate_flag", 32, false],
55 ["_padding", 5, false]
56 ]
57 },
58 {
59 "name" : "ethernet_t",
60 "id" : 2,
61 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080062 ["dst_addr", 48, false],
63 ["src_addr", 48, false],
64 ["ether_type", 16, false]
65 ]
66 },
67 {
68 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020069 "id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080070 "fields" : [
71 ["pri", 3, false],
72 ["cfi", 1, false],
73 ["vlan_id", 12, false],
74 ["ether_type", 16, false]
75 ]
76 },
77 {
78 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020079 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080080 "fields" : [
81 ["label", 20, false],
82 ["tc", 3, false],
83 ["bos", 1, false],
84 ["ttl", 8, false]
85 ]
86 },
87 {
88 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020089 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080090 "fields" : [
91 ["version", 4, false],
92 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +090093 ["dscp", 6, false],
94 ["ecn", 2, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080095 ["total_len", 16, false],
96 ["identification", 16, false],
97 ["flags", 3, false],
98 ["frag_offset", 13, false],
99 ["ttl", 8, false],
100 ["protocol", 8, false],
101 ["hdr_checksum", 16, false],
102 ["src_addr", 32, false],
103 ["dst_addr", 32, false]
104 ]
105 },
106 {
107 "name" : "udp_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200108 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800109 "fields" : [
110 ["src_port", 16, false],
111 ["dst_port", 16, false],
112 ["len", 16, false],
113 ["checksum", 16, false]
114 ]
115 },
116 {
117 "name" : "gtpu_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200118 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800119 "fields" : [
120 ["version", 3, false],
121 ["pt", 1, false],
122 ["spare", 1, false],
123 ["ex_flag", 1, false],
124 ["seq_flag", 1, false],
125 ["npdu_flag", 1, false],
126 ["msgtype", 8, false],
127 ["msglen", 16, false],
128 ["teid", 32, false]
129 ]
130 },
131 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800132 "name" : "arp_t",
133 "id" : 8,
134 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800135 ["hw_type", 16, false],
136 ["proto_type", 16, false],
137 ["hw_addr_len", 8, false],
138 ["proto_addr_len", 8, false],
139 ["opcode", 16, false]
140 ]
141 },
142 {
143 "name" : "tcp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800144 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800145 "fields" : [
146 ["src_port", 16, false],
147 ["dst_port", 16, false],
148 ["seq_no", 32, false],
149 ["ack_no", 32, false],
150 ["data_offset", 4, false],
151 ["res", 3, false],
152 ["ecn", 3, false],
153 ["ctrl", 6, false],
154 ["window", 16, false],
155 ["checksum", 16, false],
156 ["urgent_ptr", 16, false]
157 ]
158 },
159 {
160 "name" : "icmp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800161 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800162 "fields" : [
163 ["icmp_type", 8, false],
164 ["icmp_code", 8, false],
165 ["checksum", 16, false],
166 ["identifier", 16, false],
167 ["sequence_number", 16, false],
168 ["timestamp", 64, false]
169 ]
170 },
171 {
172 "name" : "packet_out_header_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800173 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800174 "fields" : [
175 ["egress_port", 9, false],
176 ["_pad", 7, false]
177 ]
178 },
179 {
180 "name" : "packet_in_header_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800181 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800182 "fields" : [
183 ["ingress_port", 9, false],
184 ["_pad", 7, false]
185 ]
186 },
187 {
188 "name" : "spgw_meta_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800189 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800190 "fields" : [
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700191 ["direction", 2, false],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800192 ["ipv4_len", 16, false],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800193 ["teid", 32, false],
194 ["s1u_enb_addr", 32, false],
195 ["s1u_sgw_addr", 32, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200196 ["_padding_0", 6, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800197 ]
198 }
199 ],
200 "headers" : [
201 {
202 "name" : "scalars",
203 "id" : 0,
204 "header_type" : "scalars_0",
205 "metadata" : true,
206 "pi_omit" : true
207 },
208 {
209 "name" : "standard_metadata",
210 "id" : 1,
211 "header_type" : "standard_metadata",
212 "metadata" : true,
213 "pi_omit" : true
214 },
215 {
216 "name" : "ethernet",
217 "id" : 2,
218 "header_type" : "ethernet_t",
219 "metadata" : false,
220 "pi_omit" : true
221 },
222 {
223 "name" : "vlan_tag",
224 "id" : 3,
225 "header_type" : "vlan_tag_t",
226 "metadata" : false,
227 "pi_omit" : true
228 },
229 {
230 "name" : "mpls",
231 "id" : 4,
232 "header_type" : "mpls_t",
233 "metadata" : false,
234 "pi_omit" : true
235 },
236 {
237 "name" : "gtpu_ipv4",
238 "id" : 5,
239 "header_type" : "ipv4_t",
240 "metadata" : false,
241 "pi_omit" : true
242 },
243 {
244 "name" : "gtpu_udp",
245 "id" : 6,
246 "header_type" : "udp_t",
247 "metadata" : false,
248 "pi_omit" : true
249 },
250 {
251 "name" : "gtpu",
252 "id" : 7,
253 "header_type" : "gtpu_t",
254 "metadata" : false,
255 "pi_omit" : true
256 },
257 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700258 "name" : "inner_ipv4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800259 "id" : 8,
260 "header_type" : "ipv4_t",
261 "metadata" : false,
262 "pi_omit" : true
263 },
264 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700265 "name" : "inner_udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200266 "id" : 9,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700267 "header_type" : "udp_t",
268 "metadata" : false,
269 "pi_omit" : true
270 },
271 {
272 "name" : "ipv4",
273 "id" : 10,
274 "header_type" : "ipv4_t",
275 "metadata" : false,
276 "pi_omit" : true
277 },
278 {
279 "name" : "arp",
280 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800281 "header_type" : "arp_t",
282 "metadata" : false,
283 "pi_omit" : true
284 },
285 {
286 "name" : "tcp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700287 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800288 "header_type" : "tcp_t",
289 "metadata" : false,
290 "pi_omit" : true
291 },
292 {
293 "name" : "udp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700294 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800295 "header_type" : "udp_t",
296 "metadata" : false,
297 "pi_omit" : true
298 },
299 {
300 "name" : "icmp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700301 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800302 "header_type" : "icmp_t",
303 "metadata" : false,
304 "pi_omit" : true
305 },
306 {
307 "name" : "packet_out",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700308 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800309 "header_type" : "packet_out_header_t",
310 "metadata" : false,
311 "pi_omit" : true
312 },
313 {
314 "name" : "packet_in",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700315 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800316 "header_type" : "packet_in_header_t",
317 "metadata" : false,
318 "pi_omit" : true
319 },
320 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800321 "name" : "userMetadata.spgw",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700322 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800323 "header_type" : "spgw_meta_t",
324 "metadata" : true,
325 "pi_omit" : true
326 }
327 ],
328 "header_stacks" : [],
329 "header_union_types" : [],
330 "header_unions" : [],
331 "header_union_stacks" : [],
332 "field_lists" : [],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200333 "errors" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800334 "enums" : [],
335 "parsers" : [
336 {
337 "name" : "parser",
338 "id" : 0,
339 "init_state" : "start",
340 "parse_states" : [
341 {
342 "name" : "start",
343 "id" : 0,
344 "parser_ops" : [],
345 "transitions" : [
346 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800347 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800348 "value" : "0x00ff",
349 "mask" : null,
350 "next_state" : "parse_packet_out"
351 },
352 {
353 "value" : "default",
354 "mask" : null,
355 "next_state" : "parse_ethernet"
356 }
357 ],
358 "transition_key" : [
359 {
360 "type" : "field",
361 "value" : ["standard_metadata", "ingress_port"]
362 }
363 ]
364 },
365 {
366 "name" : "parse_packet_out",
367 "id" : 1,
368 "parser_ops" : [
369 {
370 "parameters" : [
371 {
372 "type" : "regular",
373 "value" : "packet_out"
374 }
375 ],
376 "op" : "extract"
377 }
378 ],
379 "transitions" : [
380 {
381 "value" : "default",
382 "mask" : null,
383 "next_state" : "parse_ethernet"
384 }
385 ],
386 "transition_key" : []
387 },
388 {
389 "name" : "parse_ethernet",
390 "id" : 2,
391 "parser_ops" : [
392 {
393 "parameters" : [
394 {
395 "type" : "regular",
396 "value" : "ethernet"
397 }
398 ],
399 "op" : "extract"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800400 }
401 ],
402 "transitions" : [
403 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800404 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800405 "value" : "0x8100",
406 "mask" : null,
407 "next_state" : "parse_vlan_tag"
408 },
409 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800410 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800411 "value" : "0x8847",
412 "mask" : null,
413 "next_state" : "parse_mpls"
414 },
415 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800416 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800417 "value" : "0x0806",
418 "mask" : null,
419 "next_state" : "parse_arp"
420 },
421 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800422 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800423 "value" : "0x0800",
424 "mask" : null,
425 "next_state" : "parse_ipv4"
426 },
427 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800428 "value" : "default",
429 "mask" : null,
430 "next_state" : null
431 }
432 ],
433 "transition_key" : [
434 {
435 "type" : "field",
436 "value" : ["ethernet", "ether_type"]
437 }
438 ]
439 },
440 {
441 "name" : "parse_vlan_tag",
442 "id" : 3,
443 "parser_ops" : [
444 {
445 "parameters" : [
446 {
447 "type" : "regular",
448 "value" : "vlan_tag"
449 }
450 ],
451 "op" : "extract"
452 }
453 ],
454 "transitions" : [
455 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800456 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800457 "value" : "0x0806",
458 "mask" : null,
459 "next_state" : "parse_arp"
460 },
461 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800462 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800463 "value" : "0x0800",
464 "mask" : null,
465 "next_state" : "parse_ipv4"
466 },
467 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800468 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800469 "value" : "0x8847",
470 "mask" : null,
471 "next_state" : "parse_mpls"
472 },
473 {
474 "value" : "default",
475 "mask" : null,
476 "next_state" : null
477 }
478 ],
479 "transition_key" : [
480 {
481 "type" : "field",
482 "value" : ["vlan_tag", "ether_type"]
483 }
484 ]
485 },
486 {
487 "name" : "parse_mpls",
488 "id" : 4,
489 "parser_ops" : [
490 {
491 "parameters" : [
492 {
493 "type" : "regular",
494 "value" : "mpls"
495 }
496 ],
497 "op" : "extract"
498 },
499 {
500 "parameters" : [
501 {
502 "type" : "field",
503 "value" : ["scalars", "tmp"]
504 },
505 {
506 "type" : "lookahead",
507 "value" : [0, 4]
508 }
509 ],
510 "op" : "set"
511 }
512 ],
513 "transitions" : [
514 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800515 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800516 "value" : "0x04",
517 "mask" : null,
518 "next_state" : "parse_ipv4"
519 },
520 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800521 "value" : "default",
522 "mask" : null,
523 "next_state" : "parse_ethernet"
524 }
525 ],
526 "transition_key" : [
527 {
528 "type" : "field",
529 "value" : ["scalars", "tmp"]
530 }
531 ]
532 },
533 {
534 "name" : "parse_ipv4",
535 "id" : 5,
536 "parser_ops" : [
537 {
538 "parameters" : [
539 {
540 "type" : "regular",
541 "value" : "ipv4"
542 }
543 ],
544 "op" : "extract"
545 },
546 {
547 "parameters" : [
548 {
549 "type" : "field",
550 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
551 },
552 {
553 "type" : "field",
554 "value" : ["ipv4", "protocol"]
555 }
556 ],
557 "op" : "set"
558 }
559 ],
560 "transitions" : [
561 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800562 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800563 "value" : "0x06",
564 "mask" : null,
565 "next_state" : "parse_tcp"
566 },
567 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800568 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800569 "value" : "0x11",
570 "mask" : null,
571 "next_state" : "parse_udp"
572 },
573 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800574 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800575 "value" : "0x01",
576 "mask" : null,
577 "next_state" : "parse_icmp"
578 },
579 {
580 "value" : "default",
581 "mask" : null,
582 "next_state" : null
583 }
584 ],
585 "transition_key" : [
586 {
587 "type" : "field",
588 "value" : ["ipv4", "protocol"]
589 }
590 ]
591 },
592 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800593 "name" : "parse_arp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200594 "id" : 6,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800595 "parser_ops" : [
596 {
597 "parameters" : [
598 {
599 "type" : "regular",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800600 "value" : "arp"
601 }
602 ],
603 "op" : "extract"
604 }
605 ],
606 "transitions" : [
607 {
608 "value" : "default",
609 "mask" : null,
610 "next_state" : null
611 }
612 ],
613 "transition_key" : []
614 },
615 {
616 "name" : "parse_tcp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200617 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800618 "parser_ops" : [
619 {
620 "parameters" : [
621 {
622 "type" : "regular",
623 "value" : "tcp"
624 }
625 ],
626 "op" : "extract"
627 },
628 {
629 "parameters" : [
630 {
631 "type" : "field",
632 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
633 },
634 {
635 "type" : "field",
636 "value" : ["tcp", "src_port"]
637 }
638 ],
639 "op" : "set"
640 },
641 {
642 "parameters" : [
643 {
644 "type" : "field",
645 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
646 },
647 {
648 "type" : "field",
649 "value" : ["tcp", "dst_port"]
650 }
651 ],
652 "op" : "set"
653 }
654 ],
655 "transitions" : [
656 {
657 "value" : "default",
658 "mask" : null,
659 "next_state" : null
660 }
661 ],
662 "transition_key" : []
663 },
664 {
665 "name" : "parse_udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200666 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800667 "parser_ops" : [
668 {
669 "parameters" : [
670 {
671 "type" : "regular",
672 "value" : "udp"
673 }
674 ],
675 "op" : "extract"
676 },
677 {
678 "parameters" : [
679 {
680 "type" : "field",
681 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
682 },
683 {
684 "type" : "field",
685 "value" : ["udp", "src_port"]
686 }
687 ],
688 "op" : "set"
689 },
690 {
691 "parameters" : [
692 {
693 "type" : "field",
694 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
695 },
696 {
697 "type" : "field",
698 "value" : ["udp", "dst_port"]
699 }
700 ],
701 "op" : "set"
702 }
703 ],
704 "transitions" : [
705 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800706 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800707 "value" : "0x0868",
708 "mask" : null,
709 "next_state" : "parse_gtpu"
710 },
711 {
712 "value" : "default",
713 "mask" : null,
714 "next_state" : null
715 }
716 ],
717 "transition_key" : [
718 {
719 "type" : "field",
720 "value" : ["udp", "dst_port"]
721 }
722 ]
723 },
724 {
725 "name" : "parse_icmp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200726 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800727 "parser_ops" : [
728 {
729 "parameters" : [
730 {
731 "type" : "regular",
732 "value" : "icmp"
733 }
734 ],
735 "op" : "extract"
736 }
737 ],
738 "transitions" : [
739 {
740 "value" : "default",
741 "mask" : null,
742 "next_state" : null
743 }
744 ],
745 "transition_key" : []
746 },
747 {
748 "name" : "parse_gtpu",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200749 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800750 "parser_ops" : [
751 {
752 "parameters" : [
753 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700754 "type" : "field",
755 "value" : ["scalars", "tmp_0"]
756 },
757 {
758 "type" : "expression",
759 "value" : {
760 "type" : "expression",
761 "value" : {
762 "op" : "&",
763 "left" : {
764 "type" : "expression",
765 "value" : {
766 "op" : "&",
767 "left" : {
768 "type" : "expression",
769 "value" : {
770 "op" : ">>",
771 "left" : {
772 "type" : "field",
773 "value" : ["ipv4", "dst_addr"]
774 },
775 "right" : {
776 "type" : "hexstr",
777 "value" : "0x18"
778 }
779 }
780 },
781 "right" : {
782 "type" : "hexstr",
783 "value" : "0xffffffff"
784 }
785 }
786 },
787 "right" : {
788 "type" : "hexstr",
789 "value" : "0xff"
790 }
791 }
792 }
793 }
794 ],
795 "op" : "set"
796 }
797 ],
798 "transitions" : [
799 {
800 "type" : "hexstr",
801 "value" : "0x8c",
802 "mask" : null,
803 "next_state" : "do_parse_gtpu"
804 },
805 {
806 "value" : "default",
807 "mask" : null,
808 "next_state" : null
809 }
810 ],
811 "transition_key" : [
812 {
813 "type" : "field",
814 "value" : ["scalars", "tmp_0"]
815 }
816 ]
817 },
818 {
819 "name" : "do_parse_gtpu",
820 "id" : 11,
821 "parser_ops" : [
822 {
823 "parameters" : [
824 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800825 "type" : "regular",
826 "value" : "gtpu"
827 }
828 ],
829 "op" : "extract"
830 },
831 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800832 "parameters" : [
833 {
834 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700835 "value" : "inner_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800836 }
837 ],
838 "op" : "extract"
839 }
840 ],
841 "transitions" : [
842 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800843 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800844 "value" : "0x06",
845 "mask" : null,
846 "next_state" : "parse_tcp"
847 },
848 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800849 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800850 "value" : "0x11",
851 "mask" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700852 "next_state" : "parse_inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800853 },
854 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800855 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800856 "value" : "0x01",
857 "mask" : null,
858 "next_state" : "parse_icmp"
859 },
860 {
861 "value" : "default",
862 "mask" : null,
863 "next_state" : null
864 }
865 ],
866 "transition_key" : [
867 {
868 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700869 "value" : ["inner_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800870 }
871 ]
872 },
873 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700874 "name" : "parse_inner_udp",
875 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800876 "parser_ops" : [
877 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800878 "parameters" : [
879 {
880 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700881 "value" : "inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800882 }
883 ],
884 "op" : "extract"
885 },
886 {
887 "parameters" : [
888 {
889 "type" : "field",
890 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
891 },
892 {
893 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700894 "value" : ["inner_udp", "src_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800895 }
896 ],
897 "op" : "set"
898 },
899 {
900 "parameters" : [
901 {
902 "type" : "field",
903 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
904 },
905 {
906 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700907 "value" : ["inner_udp", "dst_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800908 }
909 ],
910 "op" : "set"
911 }
912 ],
913 "transitions" : [
914 {
915 "value" : "default",
916 "mask" : null,
917 "next_state" : null
918 }
919 ],
920 "transition_key" : []
921 }
922 ]
923 }
924 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800925 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800926 "deparsers" : [
927 {
928 "name" : "deparser",
929 "id" : 0,
930 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200931 "filename" : "include/parser.p4",
Charles Chancf696e52018-08-16 16:25:13 -0700932 "line" : 223,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800933 "column" : 8,
934 "source_fragment" : "FabricDeparser"
935 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200936 "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "tcp", "udp", "icmp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800937 }
938 ],
939 "meter_arrays" : [],
940 "counter_arrays" : [
941 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800942 "name" : "FabricIngress.spgw_ingress.ue_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800943 "id" : 0,
944 "is_direct" : true,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700945 "binding" : "FabricIngress.spgw_ingress.dl_sess_lookup"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800946 },
947 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800948 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800949 "id" : 1,
950 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800951 "binding" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800952 },
953 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800954 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800955 "id" : 2,
956 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800957 "binding" : "FabricIngress.filtering.fwd_classifier"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800958 },
959 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800960 "name" : "FabricIngress.forwarding.bridging_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800961 "id" : 3,
962 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800963 "binding" : "FabricIngress.forwarding.bridging"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800964 },
965 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800966 "name" : "FabricIngress.forwarding.mpls_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800967 "id" : 4,
968 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800969 "binding" : "FabricIngress.forwarding.mpls"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800970 },
971 {
Charles Chan384aea22018-08-23 22:08:02 -0700972 "name" : "FabricIngress.forwarding.routing_v4_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800973 "id" : 5,
974 "is_direct" : true,
Charles Chan384aea22018-08-23 22:08:02 -0700975 "binding" : "FabricIngress.forwarding.routing_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800976 },
977 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800978 "name" : "FabricIngress.forwarding.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800979 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800980 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800981 "binding" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800982 },
983 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800984 "name" : "FabricIngress.next.vlan_meta_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200985 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800986 "is_direct" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800987 "binding" : "FabricIngress.next.vlan_meta"
988 },
989 {
990 "name" : "FabricIngress.next.simple_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200991 "id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800992 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800993 "binding" : "FabricIngress.next.simple"
994 },
995 {
996 "name" : "FabricIngress.next.hashed_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200997 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800998 "is_direct" : true,
999 "binding" : "FabricIngress.next.hashed"
1000 },
1001 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001002 "name" : "FabricIngress.next.multicast_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001003 "id" : 10,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001004 "is_direct" : true,
1005 "binding" : "FabricIngress.next.multicast"
1006 },
1007 {
1008 "name" : "FabricIngress.port_counters_control.egress_port_counter",
1009 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001010 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001011 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001012 "line" : 23,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001013 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001014 "source_fragment" : "egress_port_counter"
1015 },
1016 "size" : 511,
1017 "is_direct" : false
1018 },
1019 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001020 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001021 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001022 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001023 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001024 "line" : 24,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001025 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001026 "source_fragment" : "ingress_port_counter"
1027 },
1028 "size" : 511,
1029 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08001030 },
1031 {
1032 "name" : "FabricEgress.egress_next.egress_vlan_counter",
1033 "id" : 13,
1034 "is_direct" : true,
1035 "binding" : "FabricEgress.egress_next.egress_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001036 }
1037 ],
1038 "register_arrays" : [],
1039 "calculations" : [
1040 {
1041 "name" : "calc",
1042 "id" : 0,
1043 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001044 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001045 "line" : 28,
1046 "column" : 8,
1047 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1048 },
1049 "algo" : "csum16",
1050 "input" : [
1051 {
1052 "type" : "field",
1053 "value" : ["ipv4", "version"]
1054 },
1055 {
1056 "type" : "field",
1057 "value" : ["ipv4", "ihl"]
1058 },
1059 {
1060 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001061 "value" : ["ipv4", "dscp"]
1062 },
1063 {
1064 "type" : "field",
1065 "value" : ["ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001066 },
1067 {
1068 "type" : "field",
1069 "value" : ["ipv4", "total_len"]
1070 },
1071 {
1072 "type" : "field",
1073 "value" : ["ipv4", "identification"]
1074 },
1075 {
1076 "type" : "field",
1077 "value" : ["ipv4", "flags"]
1078 },
1079 {
1080 "type" : "field",
1081 "value" : ["ipv4", "frag_offset"]
1082 },
1083 {
1084 "type" : "field",
1085 "value" : ["ipv4", "ttl"]
1086 },
1087 {
1088 "type" : "field",
1089 "value" : ["ipv4", "protocol"]
1090 },
1091 {
1092 "type" : "field",
1093 "value" : ["ipv4", "src_addr"]
1094 },
1095 {
1096 "type" : "field",
1097 "value" : ["ipv4", "dst_addr"]
1098 }
1099 ]
1100 },
1101 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001102 "name" : "calc_0",
1103 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001104 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001105 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07001106 "line" : 237,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001107 "column" : 8,
1108 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1109 },
1110 "algo" : "csum16",
1111 "input" : [
1112 {
1113 "type" : "field",
1114 "value" : ["gtpu_ipv4", "version"]
1115 },
1116 {
1117 "type" : "field",
1118 "value" : ["gtpu_ipv4", "ihl"]
1119 },
1120 {
1121 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001122 "value" : ["gtpu_ipv4", "dscp"]
1123 },
1124 {
1125 "type" : "field",
1126 "value" : ["gtpu_ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001127 },
1128 {
1129 "type" : "field",
1130 "value" : ["gtpu_ipv4", "total_len"]
1131 },
1132 {
1133 "type" : "field",
1134 "value" : ["gtpu_ipv4", "identification"]
1135 },
1136 {
1137 "type" : "field",
1138 "value" : ["gtpu_ipv4", "flags"]
1139 },
1140 {
1141 "type" : "field",
1142 "value" : ["gtpu_ipv4", "frag_offset"]
1143 },
1144 {
1145 "type" : "field",
1146 "value" : ["gtpu_ipv4", "ttl"]
1147 },
1148 {
1149 "type" : "field",
1150 "value" : ["gtpu_ipv4", "protocol"]
1151 },
1152 {
1153 "type" : "field",
1154 "value" : ["gtpu_ipv4", "src_addr"]
1155 },
1156 {
1157 "type" : "field",
1158 "value" : ["gtpu_ipv4", "dst_addr"]
1159 }
1160 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001161 },
1162 {
1163 "name" : "calc_1",
1164 "id" : 2,
1165 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001166 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001167 "line" : 57,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001168 "column" : 8,
1169 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1170 },
1171 "algo" : "csum16",
1172 "input" : [
1173 {
1174 "type" : "field",
1175 "value" : ["ipv4", "version"]
1176 },
1177 {
1178 "type" : "field",
1179 "value" : ["ipv4", "ihl"]
1180 },
1181 {
1182 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001183 "value" : ["ipv4", "dscp"]
1184 },
1185 {
1186 "type" : "field",
1187 "value" : ["ipv4", "ecn"]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001188 },
1189 {
1190 "type" : "field",
1191 "value" : ["ipv4", "total_len"]
1192 },
1193 {
1194 "type" : "field",
1195 "value" : ["ipv4", "identification"]
1196 },
1197 {
1198 "type" : "field",
1199 "value" : ["ipv4", "flags"]
1200 },
1201 {
1202 "type" : "field",
1203 "value" : ["ipv4", "frag_offset"]
1204 },
1205 {
1206 "type" : "field",
1207 "value" : ["ipv4", "ttl"]
1208 },
1209 {
1210 "type" : "field",
1211 "value" : ["ipv4", "protocol"]
1212 },
1213 {
1214 "type" : "field",
1215 "value" : ["ipv4", "src_addr"]
1216 },
1217 {
1218 "type" : "field",
1219 "value" : ["ipv4", "dst_addr"]
1220 }
1221 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001222 }
1223 ],
1224 "learn_lists" : [],
1225 "actions" : [
1226 {
1227 "name" : "NoAction",
1228 "id" : 0,
1229 "runtime_data" : [],
1230 "primitives" : []
1231 },
1232 {
1233 "name" : "NoAction",
1234 "id" : 1,
1235 "runtime_data" : [],
1236 "primitives" : []
1237 },
1238 {
1239 "name" : "NoAction",
1240 "id" : 2,
1241 "runtime_data" : [],
1242 "primitives" : []
1243 },
1244 {
1245 "name" : "NoAction",
1246 "id" : 3,
1247 "runtime_data" : [],
1248 "primitives" : []
1249 },
1250 {
1251 "name" : "NoAction",
1252 "id" : 4,
1253 "runtime_data" : [],
1254 "primitives" : []
1255 },
1256 {
1257 "name" : "NoAction",
1258 "id" : 5,
1259 "runtime_data" : [],
1260 "primitives" : []
1261 },
1262 {
1263 "name" : "NoAction",
1264 "id" : 6,
1265 "runtime_data" : [],
1266 "primitives" : []
1267 },
1268 {
1269 "name" : "NoAction",
1270 "id" : 7,
1271 "runtime_data" : [],
1272 "primitives" : []
1273 },
1274 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001275 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001276 "id" : 8,
1277 "runtime_data" : [],
1278 "primitives" : []
1279 },
1280 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001281 "name" : "drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001282 "id" : 9,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001283 "runtime_data" : [],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001284 "primitives" : [
1285 {
1286 "op" : "drop",
1287 "parameters" : [],
1288 "source_info" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001289 "filename" : "include/control/../action.p4",
1290 "line" : 24,
1291 "column" : 4,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001292 "source_fragment" : "mark_to_drop()"
1293 }
1294 },
1295 {
1296 "op" : "exit",
1297 "parameters" : [],
1298 "source_info" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001299 "filename" : "include/control/../action.p4",
1300 "line" : 25,
1301 "column" : 4,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001302 "source_fragment" : "exit"
1303 }
1304 }
1305 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001306 },
1307 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001308 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001309 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001310 "runtime_data" : [],
1311 "primitives" : [
1312 {
1313 "op" : "remove_header",
1314 "parameters" : [
1315 {
1316 "type" : "header",
1317 "value" : "gtpu_ipv4"
1318 }
1319 ],
1320 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001321 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001322 "line" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001323 "column" : 8,
1324 "source_fragment" : "gtpu_ipv4.setInvalid()"
1325 }
1326 },
1327 {
1328 "op" : "remove_header",
1329 "parameters" : [
1330 {
1331 "type" : "header",
1332 "value" : "gtpu_udp"
1333 }
1334 ],
1335 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001336 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001337 "line" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001338 "column" : 8,
1339 "source_fragment" : "gtpu_udp.setInvalid()"
1340 }
1341 },
1342 {
1343 "op" : "remove_header",
1344 "parameters" : [
1345 {
1346 "type" : "header",
1347 "value" : "gtpu"
1348 }
1349 ],
1350 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001351 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001352 "line" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001353 "column" : 8,
1354 "source_fragment" : "gtpu.setInvalid()"
1355 }
1356 }
1357 ]
1358 },
1359 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001360 "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001361 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001362 "runtime_data" : [
1363 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001364 "name" : "teid",
1365 "bitwidth" : 32
1366 },
1367 {
1368 "name" : "s1u_enb_addr",
1369 "bitwidth" : 32
1370 },
1371 {
1372 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001373 "bitwidth" : 32
1374 }
1375 ],
1376 "primitives" : [
1377 {
1378 "op" : "assign",
1379 "parameters" : [
1380 {
1381 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001382 "value" : ["userMetadata.spgw", "teid"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001383 },
1384 {
1385 "type" : "runtime_data",
1386 "value" : 0
1387 }
1388 ],
1389 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001390 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001391 "line" : 62,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001392 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001393 "source_fragment" : "spgw_meta.teid = teid"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001394 }
1395 },
1396 {
1397 "op" : "assign",
1398 "parameters" : [
1399 {
1400 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001401 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001402 },
1403 {
1404 "type" : "runtime_data",
1405 "value" : 1
1406 }
1407 ],
1408 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001409 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001410 "line" : 63,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001411 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001412 "source_fragment" : "spgw_meta.s1u_enb_addr = s1u_enb_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001413 }
1414 },
1415 {
1416 "op" : "assign",
1417 "parameters" : [
1418 {
1419 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001420 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001421 },
1422 {
1423 "type" : "runtime_data",
1424 "value" : 2
1425 }
1426 ],
1427 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001428 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001429 "line" : 64,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001430 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001431 "source_fragment" : "spgw_meta.s1u_sgw_addr = s1u_sgw_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001432 }
1433 }
1434 ]
1435 },
1436 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001437 "name" : "FabricIngress.filtering.drop",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001438 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001439 "runtime_data" : [],
1440 "primitives" : [
1441 {
1442 "op" : "drop",
1443 "parameters" : [],
1444 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001445 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001446 "line" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001447 "column" : 8,
1448 "source_fragment" : "mark_to_drop()"
1449 }
1450 }
1451 ]
1452 },
1453 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001454 "name" : "FabricIngress.filtering.set_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001455 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001456 "runtime_data" : [
1457 {
1458 "name" : "new_vlan_id",
1459 "bitwidth" : 12
1460 }
1461 ],
1462 "primitives" : [
1463 {
1464 "op" : "assign",
1465 "parameters" : [
1466 {
1467 "type" : "field",
1468 "value" : ["vlan_tag", "vlan_id"]
1469 },
1470 {
1471 "type" : "runtime_data",
1472 "value" : 0
1473 }
1474 ],
1475 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001476 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001477 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001478 "column" : 8,
1479 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1480 }
1481 }
1482 ]
1483 },
1484 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001485 "name" : "FabricIngress.filtering.push_internal_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001486 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001487 "runtime_data" : [
1488 {
1489 "name" : "new_vlan_id",
1490 "bitwidth" : 12
1491 }
1492 ],
1493 "primitives" : [
1494 {
1495 "op" : "add_header",
1496 "parameters" : [
1497 {
1498 "type" : "header",
1499 "value" : "vlan_tag"
1500 }
1501 ],
1502 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001503 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001504 "line" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001505 "column" : 8,
1506 "source_fragment" : "hdr.vlan_tag.setValid()"
1507 }
1508 },
1509 {
1510 "op" : "assign",
1511 "parameters" : [
1512 {
1513 "type" : "field",
1514 "value" : ["vlan_tag", "cfi"]
1515 },
1516 {
1517 "type" : "hexstr",
1518 "value" : "0x00"
1519 }
1520 ],
1521 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001522 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001523 "line" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001524 "column" : 8,
1525 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1526 }
1527 },
1528 {
1529 "op" : "assign",
1530 "parameters" : [
1531 {
1532 "type" : "field",
1533 "value" : ["vlan_tag", "pri"]
1534 },
1535 {
1536 "type" : "hexstr",
1537 "value" : "0x00"
1538 }
1539 ],
1540 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001541 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001542 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001543 "column" : 8,
1544 "source_fragment" : "hdr.vlan_tag.pri = 0"
1545 }
1546 },
1547 {
1548 "op" : "assign",
1549 "parameters" : [
1550 {
1551 "type" : "field",
1552 "value" : ["vlan_tag", "ether_type"]
1553 },
1554 {
1555 "type" : "field",
1556 "value" : ["ethernet", "ether_type"]
1557 }
1558 ],
1559 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001560 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001561 "line" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001562 "column" : 8,
1563 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1564 }
1565 },
1566 {
1567 "op" : "assign",
1568 "parameters" : [
1569 {
1570 "type" : "field",
1571 "value" : ["ethernet", "ether_type"]
1572 },
1573 {
1574 "type" : "hexstr",
1575 "value" : "0x8100"
1576 }
1577 ],
1578 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001579 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001580 "line" : 89,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001581 "column" : 31,
1582 "source_fragment" : "0x8100; ..."
1583 }
1584 },
1585 {
1586 "op" : "assign",
1587 "parameters" : [
1588 {
1589 "type" : "field",
1590 "value" : ["vlan_tag", "vlan_id"]
1591 },
1592 {
1593 "type" : "runtime_data",
1594 "value" : 0
1595 }
1596 ],
1597 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001598 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001599 "line" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001600 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001601 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001602 }
1603 },
1604 {
1605 "op" : "assign",
1606 "parameters" : [
1607 {
1608 "type" : "field",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001609 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001610 },
1611 {
1612 "type" : "expression",
1613 "value" : {
1614 "type" : "expression",
1615 "value" : {
1616 "op" : "b2d",
1617 "left" : null,
1618 "right" : {
1619 "type" : "bool",
1620 "value" : true
1621 }
1622 }
1623 }
1624 }
1625 ],
1626 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001627 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001628 "line" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001629 "column" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001630 "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001631 }
1632 }
1633 ]
1634 },
1635 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001636 "name" : "FabricIngress.filtering.nop_ingress_port_vlan",
1637 "id" : 15,
1638 "runtime_data" : [],
1639 "primitives" : []
1640 },
1641 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001642 "name" : "FabricIngress.filtering.set_forwarding_type",
Charles Chancf696e52018-08-16 16:25:13 -07001643 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001644 "runtime_data" : [
1645 {
1646 "name" : "fwd_type",
1647 "bitwidth" : 3
1648 }
1649 ],
1650 "primitives" : [
1651 {
1652 "op" : "assign",
1653 "parameters" : [
1654 {
1655 "type" : "field",
1656 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1657 },
1658 {
1659 "type" : "runtime_data",
1660 "value" : 0
1661 }
1662 ],
1663 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001664 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001665 "line" : 99,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001666 "column" : 8,
1667 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1668 }
1669 }
1670 ]
1671 },
1672 {
Yi Tseng47eac892018-07-11 02:17:04 +08001673 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Charles Chancf696e52018-08-16 16:25:13 -07001674 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001675 "runtime_data" : [
1676 {
1677 "name" : "next_id",
1678 "bitwidth" : 32
1679 }
1680 ],
1681 "primitives" : [
1682 {
1683 "op" : "assign",
1684 "parameters" : [
1685 {
1686 "type" : "field",
1687 "value" : ["scalars", "fabric_metadata_t.next_id"]
1688 },
1689 {
1690 "type" : "runtime_data",
1691 "value" : 0
1692 }
1693 ],
1694 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001695 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001696 "line" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001697 "column" : 8,
1698 "source_fragment" : "fabric_metadata.next_id = next_id"
1699 }
1700 }
1701 ]
1702 },
1703 {
Yi Tseng47eac892018-07-11 02:17:04 +08001704 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Charles Chancf696e52018-08-16 16:25:13 -07001705 "id" : 18,
Yi Tseng47eac892018-07-11 02:17:04 +08001706 "runtime_data" : [
1707 {
1708 "name" : "next_id",
1709 "bitwidth" : 32
1710 }
1711 ],
1712 "primitives" : [
1713 {
1714 "op" : "remove_header",
1715 "parameters" : [
1716 {
1717 "type" : "header",
1718 "value" : "mpls"
1719 }
1720 ],
1721 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001722 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001723 "line" : 60,
1724 "column" : 8,
1725 "source_fragment" : "hdr.mpls.setInvalid()"
1726 }
1727 },
1728 {
1729 "op" : "assign",
1730 "parameters" : [
1731 {
1732 "type" : "field",
1733 "value" : ["scalars", "fabric_metadata_t.next_id"]
1734 },
1735 {
1736 "type" : "runtime_data",
1737 "value" : 0
1738 }
1739 ],
1740 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001741 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001742 "line" : 61,
1743 "column" : 8,
1744 "source_fragment" : "fabric_metadata.next_id = next_id"
1745 }
1746 }
1747 ]
1748 },
1749 {
Charles Chan384aea22018-08-23 22:08:02 -07001750 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001751 "id" : 19,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001752 "runtime_data" : [
1753 {
1754 "name" : "next_id",
1755 "bitwidth" : 32
1756 }
1757 ],
1758 "primitives" : [
1759 {
1760 "op" : "assign",
1761 "parameters" : [
1762 {
1763 "type" : "field",
1764 "value" : ["scalars", "fabric_metadata_t.next_id"]
1765 },
1766 {
1767 "type" : "runtime_data",
1768 "value" : 0
1769 }
1770 ],
1771 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001772 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001773 "line" : 83,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001774 "column" : 8,
1775 "source_fragment" : "fabric_metadata.next_id = next_id"
1776 }
1777 }
1778 ]
1779 },
1780 {
Yi Tseng47eac892018-07-11 02:17:04 +08001781 "name" : "FabricIngress.forwarding.set_next_id_acl",
Charles Chancf696e52018-08-16 16:25:13 -07001782 "id" : 20,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001783 "runtime_data" : [
1784 {
1785 "name" : "next_id",
1786 "bitwidth" : 32
1787 }
1788 ],
1789 "primitives" : [
1790 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001791 "op" : "assign",
1792 "parameters" : [
1793 {
1794 "type" : "field",
1795 "value" : ["scalars", "fabric_metadata_t.next_id"]
1796 },
1797 {
1798 "type" : "runtime_data",
1799 "value" : 0
1800 }
1801 ],
1802 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001803 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001804 "line" : 105,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001805 "column" : 8,
1806 "source_fragment" : "fabric_metadata.next_id = next_id"
1807 }
1808 }
1809 ]
1810 },
1811 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001812 "name" : "FabricIngress.forwarding.punt_to_cpu",
Charles Chancf696e52018-08-16 16:25:13 -07001813 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001814 "runtime_data" : [],
1815 "primitives" : [
1816 {
1817 "op" : "assign",
1818 "parameters" : [
1819 {
1820 "type" : "field",
1821 "value" : ["standard_metadata", "egress_spec"]
1822 },
1823 {
1824 "type" : "hexstr",
1825 "value" : "0x00ff"
1826 }
1827 ],
1828 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001829 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001830 "line" : 111,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001831 "column" : 8,
1832 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001833 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001834 },
1835 {
1836 "op" : "exit",
1837 "parameters" : [],
1838 "source_info" : {
1839 "filename" : "include/control/forwarding.p4",
1840 "line" : 113,
1841 "column" : 8,
1842 "source_fragment" : "exit"
1843 }
1844 }
1845 ]
1846 },
1847 {
1848 "name" : "FabricIngress.forwarding.clone_to_cpu",
Charles Chancf696e52018-08-16 16:25:13 -07001849 "id" : 22,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001850 "runtime_data" : [],
1851 "primitives" : [
1852 {
1853 "op" : "assign",
1854 "parameters" : [
1855 {
1856 "type" : "field",
1857 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
1858 },
1859 {
1860 "type" : "expression",
1861 "value" : {
1862 "type" : "expression",
1863 "value" : {
1864 "op" : "b2d",
1865 "left" : null,
1866 "right" : {
1867 "type" : "bool",
1868 "value" : true
1869 }
1870 }
1871 }
1872 }
1873 ],
1874 "source_info" : {
1875 "filename" : "include/control/forwarding.p4",
1876 "line" : 118,
1877 "column" : 8,
1878 "source_fragment" : "fabric_metadata.clone_to_cpu = true"
1879 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001880 }
1881 ]
1882 },
1883 {
Yi Tseng47eac892018-07-11 02:17:04 +08001884 "name" : "FabricIngress.forwarding.drop",
Charles Chancf696e52018-08-16 16:25:13 -07001885 "id" : 23,
Yi Tseng47eac892018-07-11 02:17:04 +08001886 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001887 "primitives" : [
1888 {
Yi Tseng47eac892018-07-11 02:17:04 +08001889 "op" : "drop",
1890 "parameters" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001891 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001892 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001893 "line" : 123,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001894 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001895 "source_fragment" : "mark_to_drop()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001896 }
1897 }
1898 ]
1899 },
1900 {
Charles Chancf696e52018-08-16 16:25:13 -07001901 "name" : "FabricIngress.forwarding.nop_acl",
1902 "id" : 24,
1903 "runtime_data" : [],
1904 "primitives" : []
1905 },
1906 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001907 "name" : "FabricIngress.next.set_vlan",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001908 "id" : 25,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001909 "runtime_data" : [
1910 {
1911 "name" : "new_vlan_id",
1912 "bitwidth" : 12
1913 }
1914 ],
1915 "primitives" : [
1916 {
1917 "op" : "assign",
1918 "parameters" : [
1919 {
1920 "type" : "field",
1921 "value" : ["vlan_tag", "vlan_id"]
1922 },
1923 {
1924 "type" : "runtime_data",
1925 "value" : 0
1926 }
1927 ],
1928 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001929 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001930 "line" : 61,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001931 "column" : 8,
1932 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1933 }
1934 }
1935 ]
1936 },
1937 {
Yi Tseng47eac892018-07-11 02:17:04 +08001938 "name" : "FabricIngress.next.output_simple",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001939 "id" : 26,
Yi Tseng47eac892018-07-11 02:17:04 +08001940 "runtime_data" : [
1941 {
1942 "name" : "port_num",
1943 "bitwidth" : 9
1944 }
1945 ],
1946 "primitives" : [
1947 {
1948 "op" : "assign",
1949 "parameters" : [
1950 {
1951 "type" : "field",
1952 "value" : ["standard_metadata", "egress_spec"]
1953 },
1954 {
1955 "type" : "runtime_data",
1956 "value" : 0
1957 }
1958 ],
1959 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001960 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001961 "line" : 85,
1962 "column" : 8,
1963 "source_fragment" : "standard_metadata.egress_spec = port_num"
1964 }
1965 }
1966 ]
1967 },
1968 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001969 "name" : "FabricIngress.next.set_vlan_output",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001970 "id" : 27,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001971 "runtime_data" : [
1972 {
1973 "name" : "new_vlan_id",
1974 "bitwidth" : 12
1975 },
1976 {
1977 "name" : "port_num",
1978 "bitwidth" : 9
1979 }
1980 ],
1981 "primitives" : [
1982 {
1983 "op" : "assign",
1984 "parameters" : [
1985 {
1986 "type" : "field",
1987 "value" : ["vlan_tag", "vlan_id"]
1988 },
1989 {
1990 "type" : "runtime_data",
1991 "value" : 0
1992 }
1993 ],
1994 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001995 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001996 "line" : 90,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001997 "column" : 8,
1998 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1999 }
2000 },
2001 {
2002 "op" : "assign",
2003 "parameters" : [
2004 {
2005 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002006 "value" : ["standard_metadata", "egress_spec"]
2007 },
2008 {
2009 "type" : "runtime_data",
2010 "value" : 1
2011 }
2012 ],
2013 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002014 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002015 "line" : 85,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002016 "column" : 8,
2017 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2018 }
2019 }
2020 ]
2021 },
2022 {
Yi Tseng47eac892018-07-11 02:17:04 +08002023 "name" : "FabricIngress.next.l3_routing_simple",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002024 "id" : 28,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002025 "runtime_data" : [
2026 {
2027 "name" : "port_num",
2028 "bitwidth" : 9
2029 },
2030 {
2031 "name" : "smac",
2032 "bitwidth" : 48
2033 },
2034 {
2035 "name" : "dmac",
2036 "bitwidth" : 48
2037 }
2038 ],
2039 "primitives" : [
2040 {
2041 "op" : "assign",
2042 "parameters" : [
2043 {
2044 "type" : "field",
2045 "value" : ["ethernet", "src_addr"]
2046 },
2047 {
2048 "type" : "runtime_data",
2049 "value" : 1
2050 }
2051 ],
2052 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002053 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002054 "line" : 37,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002055 "column" : 8,
2056 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2057 }
2058 },
2059 {
2060 "op" : "assign",
2061 "parameters" : [
2062 {
2063 "type" : "field",
2064 "value" : ["ethernet", "dst_addr"]
2065 },
2066 {
2067 "type" : "runtime_data",
2068 "value" : 2
2069 }
2070 ],
2071 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002072 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002073 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002074 "column" : 8,
2075 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2076 }
2077 },
2078 {
2079 "op" : "assign",
2080 "parameters" : [
2081 {
2082 "type" : "field",
2083 "value" : ["standard_metadata", "egress_spec"]
2084 },
2085 {
2086 "type" : "runtime_data",
2087 "value" : 0
2088 }
2089 ],
2090 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002091 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002092 "line" : 85,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002093 "column" : 8,
2094 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2095 }
2096 }
2097 ]
2098 },
2099 {
Yi Tseng47eac892018-07-11 02:17:04 +08002100 "name" : "FabricIngress.next.mpls_routing_v4_simple",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002101 "id" : 29,
Yi Tseng47eac892018-07-11 02:17:04 +08002102 "runtime_data" : [
2103 {
2104 "name" : "port_num",
2105 "bitwidth" : 9
2106 },
2107 {
2108 "name" : "smac",
2109 "bitwidth" : 48
2110 },
2111 {
2112 "name" : "dmac",
2113 "bitwidth" : 48
2114 },
2115 {
2116 "name" : "label",
2117 "bitwidth" : 20
2118 }
2119 ],
2120 "primitives" : [
2121 {
2122 "op" : "assign",
2123 "parameters" : [
2124 {
2125 "type" : "field",
2126 "value" : ["ethernet", "src_addr"]
2127 },
2128 {
2129 "type" : "runtime_data",
2130 "value" : 1
2131 }
2132 ],
2133 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002134 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002135 "line" : 37,
2136 "column" : 8,
2137 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2138 }
2139 },
2140 {
2141 "op" : "assign",
2142 "parameters" : [
2143 {
2144 "type" : "field",
2145 "value" : ["ethernet", "dst_addr"]
2146 },
2147 {
2148 "type" : "runtime_data",
2149 "value" : 2
2150 }
2151 ],
2152 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002153 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002154 "line" : 41,
2155 "column" : 8,
2156 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2157 }
2158 },
2159 {
2160 "op" : "assign",
2161 "parameters" : [
2162 {
2163 "type" : "field",
2164 "value" : ["standard_metadata", "egress_spec"]
2165 },
2166 {
2167 "type" : "runtime_data",
2168 "value" : 0
2169 }
2170 ],
2171 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002172 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002173 "line" : 85,
2174 "column" : 8,
2175 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2176 }
2177 },
2178 {
2179 "op" : "add_header",
2180 "parameters" : [
2181 {
2182 "type" : "header",
2183 "value" : "mpls"
2184 }
2185 ],
2186 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002187 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002188 "line" : 46,
2189 "column" : 8,
2190 "source_fragment" : "hdr.mpls.setValid()"
2191 }
2192 },
2193 {
2194 "op" : "assign",
2195 "parameters" : [
2196 {
2197 "type" : "field",
2198 "value" : ["vlan_tag", "ether_type"]
2199 },
2200 {
2201 "type" : "hexstr",
2202 "value" : "0x8847"
2203 }
2204 ],
2205 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002206 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002207 "line" : 90,
Yi Tseng47eac892018-07-11 02:17:04 +08002208 "column" : 31,
2209 "source_fragment" : "0x8847; ..."
2210 }
2211 },
2212 {
2213 "op" : "assign",
2214 "parameters" : [
2215 {
2216 "type" : "field",
2217 "value" : ["mpls", "label"]
2218 },
2219 {
2220 "type" : "runtime_data",
2221 "value" : 3
2222 }
2223 ],
2224 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002225 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002226 "line" : 48,
2227 "column" : 8,
2228 "source_fragment" : "hdr.mpls.label = label; ..."
2229 }
2230 },
2231 {
2232 "op" : "assign",
2233 "parameters" : [
2234 {
2235 "type" : "field",
2236 "value" : ["mpls", "tc"]
2237 },
2238 {
2239 "type" : "hexstr",
2240 "value" : "0x00"
2241 }
2242 ],
2243 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002244 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002245 "line" : 49,
2246 "column" : 8,
2247 "source_fragment" : "hdr.mpls.tc = tc; ..."
2248 }
2249 },
2250 {
2251 "op" : "assign",
2252 "parameters" : [
2253 {
2254 "type" : "field",
2255 "value" : ["mpls", "bos"]
2256 },
2257 {
2258 "type" : "hexstr",
2259 "value" : "0x01"
2260 }
2261 ],
2262 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002263 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002264 "line" : 50,
2265 "column" : 8,
2266 "source_fragment" : "hdr.mpls.bos = 1w1"
2267 }
2268 },
2269 {
2270 "op" : "assign",
2271 "parameters" : [
2272 {
2273 "type" : "field",
2274 "value" : ["mpls", "ttl"]
2275 },
2276 {
2277 "type" : "hexstr",
2278 "value" : "0x40"
2279 }
2280 ],
2281 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002282 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002283 "line" : 113,
Yi Tseng47eac892018-07-11 02:17:04 +08002284 "column" : 32,
2285 "source_fragment" : "64; ..."
2286 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002287 }
2288 ]
2289 },
2290 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002291 "name" : "FabricIngress.next.mpls_routing_v6_simple",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002292 "id" : 30,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002293 "runtime_data" : [
2294 {
2295 "name" : "port_num",
2296 "bitwidth" : 9
2297 },
2298 {
2299 "name" : "smac",
2300 "bitwidth" : 48
2301 },
2302 {
2303 "name" : "dmac",
2304 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002305 },
2306 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002307 "name" : "label",
2308 "bitwidth" : 20
2309 }
2310 ],
2311 "primitives" : [
2312 {
2313 "op" : "assign",
2314 "parameters" : [
2315 {
2316 "type" : "field",
2317 "value" : ["ethernet", "src_addr"]
2318 },
2319 {
2320 "type" : "runtime_data",
2321 "value" : 1
2322 }
2323 ],
2324 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002325 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002326 "line" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002327 "column" : 8,
2328 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2329 }
2330 },
2331 {
2332 "op" : "assign",
2333 "parameters" : [
2334 {
2335 "type" : "field",
2336 "value" : ["ethernet", "dst_addr"]
2337 },
2338 {
2339 "type" : "runtime_data",
2340 "value" : 2
2341 }
2342 ],
2343 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002344 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002345 "line" : 41,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002346 "column" : 8,
2347 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2348 }
2349 },
2350 {
2351 "op" : "assign",
2352 "parameters" : [
2353 {
2354 "type" : "field",
2355 "value" : ["standard_metadata", "egress_spec"]
2356 },
2357 {
2358 "type" : "runtime_data",
2359 "value" : 0
2360 }
2361 ],
2362 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002363 "filename" : "include/control/next.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002364 "line" : 85,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002365 "column" : 8,
2366 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2367 }
2368 },
2369 {
2370 "op" : "add_header",
2371 "parameters" : [
2372 {
2373 "type" : "header",
2374 "value" : "mpls"
2375 }
2376 ],
2377 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002378 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002379 "line" : 46,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002380 "column" : 8,
2381 "source_fragment" : "hdr.mpls.setValid()"
2382 }
2383 },
2384 {
2385 "op" : "assign",
2386 "parameters" : [
2387 {
2388 "type" : "field",
2389 "value" : ["vlan_tag", "ether_type"]
2390 },
2391 {
2392 "type" : "hexstr",
2393 "value" : "0x8847"
2394 }
2395 ],
2396 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002397 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002398 "line" : 90,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002399 "column" : 31,
2400 "source_fragment" : "0x8847; ..."
2401 }
2402 },
2403 {
2404 "op" : "assign",
2405 "parameters" : [
2406 {
2407 "type" : "field",
2408 "value" : ["mpls", "label"]
2409 },
2410 {
2411 "type" : "runtime_data",
2412 "value" : 3
2413 }
2414 ],
2415 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002416 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002417 "line" : 48,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002418 "column" : 8,
2419 "source_fragment" : "hdr.mpls.label = label; ..."
2420 }
2421 },
2422 {
2423 "op" : "assign",
2424 "parameters" : [
2425 {
2426 "type" : "field",
2427 "value" : ["mpls", "tc"]
2428 },
2429 {
2430 "type" : "hexstr",
2431 "value" : "0x00"
2432 }
2433 ],
2434 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002435 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002436 "line" : 49,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002437 "column" : 8,
2438 "source_fragment" : "hdr.mpls.tc = tc; ..."
2439 }
2440 },
2441 {
2442 "op" : "assign",
2443 "parameters" : [
2444 {
2445 "type" : "field",
2446 "value" : ["mpls", "bos"]
2447 },
2448 {
2449 "type" : "hexstr",
2450 "value" : "0x01"
2451 }
2452 ],
2453 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002454 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002455 "line" : 50,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002456 "column" : 8,
2457 "source_fragment" : "hdr.mpls.bos = 1w1"
2458 }
2459 },
2460 {
2461 "op" : "assign",
2462 "parameters" : [
2463 {
2464 "type" : "field",
2465 "value" : ["mpls", "ttl"]
2466 },
2467 {
2468 "type" : "hexstr",
2469 "value" : "0x40"
2470 }
2471 ],
2472 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002473 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002474 "line" : 113,
Yi Tseng47eac892018-07-11 02:17:04 +08002475 "column" : 32,
2476 "source_fragment" : "64; ..."
2477 }
2478 }
2479 ]
2480 },
2481 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002482 "name" : "FabricIngress.next.l3_routing_vlan",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002483 "id" : 31,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002484 "runtime_data" : [
2485 {
2486 "name" : "port_num",
2487 "bitwidth" : 9
2488 },
2489 {
2490 "name" : "smac",
2491 "bitwidth" : 48
2492 },
2493 {
2494 "name" : "dmac",
2495 "bitwidth" : 48
2496 },
2497 {
2498 "name" : "new_vlan_id",
2499 "bitwidth" : 12
2500 }
2501 ],
2502 "primitives" : [
2503 {
2504 "op" : "assign",
2505 "parameters" : [
2506 {
2507 "type" : "field",
2508 "value" : ["ethernet", "src_addr"]
2509 },
2510 {
2511 "type" : "runtime_data",
2512 "value" : 1
2513 }
2514 ],
2515 "source_info" : {
2516 "filename" : "include/control/next.p4",
2517 "line" : 37,
2518 "column" : 8,
2519 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2520 }
2521 },
2522 {
2523 "op" : "assign",
2524 "parameters" : [
2525 {
2526 "type" : "field",
2527 "value" : ["ethernet", "dst_addr"]
2528 },
2529 {
2530 "type" : "runtime_data",
2531 "value" : 2
2532 }
2533 ],
2534 "source_info" : {
2535 "filename" : "include/control/next.p4",
2536 "line" : 41,
2537 "column" : 8,
2538 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2539 }
2540 },
2541 {
2542 "op" : "assign",
2543 "parameters" : [
2544 {
2545 "type" : "field",
2546 "value" : ["vlan_tag", "vlan_id"]
2547 },
2548 {
2549 "type" : "runtime_data",
2550 "value" : 3
2551 }
2552 ],
2553 "source_info" : {
2554 "filename" : "include/control/next.p4",
2555 "line" : 90,
2556 "column" : 8,
2557 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
2558 }
2559 },
2560 {
2561 "op" : "assign",
2562 "parameters" : [
2563 {
2564 "type" : "field",
2565 "value" : ["standard_metadata", "egress_spec"]
2566 },
2567 {
2568 "type" : "runtime_data",
2569 "value" : 0
2570 }
2571 ],
2572 "source_info" : {
2573 "filename" : "include/control/next.p4",
2574 "line" : 85,
2575 "column" : 8,
2576 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2577 }
2578 }
2579 ]
2580 },
2581 {
2582 "name" : "FabricIngress.next.l3_routing_hashed",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002583 "id" : 32,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002584 "runtime_data" : [
2585 {
2586 "name" : "port_num",
2587 "bitwidth" : 9
2588 },
2589 {
2590 "name" : "smac",
2591 "bitwidth" : 48
2592 },
2593 {
2594 "name" : "dmac",
2595 "bitwidth" : 48
2596 }
2597 ],
2598 "primitives" : [
2599 {
2600 "op" : "assign",
2601 "parameters" : [
2602 {
2603 "type" : "field",
2604 "value" : ["ethernet", "src_addr"]
2605 },
2606 {
2607 "type" : "runtime_data",
2608 "value" : 1
2609 }
2610 ],
2611 "source_info" : {
2612 "filename" : "include/control/next.p4",
2613 "line" : 37,
2614 "column" : 8,
2615 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2616 }
2617 },
2618 {
2619 "op" : "assign",
2620 "parameters" : [
2621 {
2622 "type" : "field",
2623 "value" : ["ethernet", "dst_addr"]
2624 },
2625 {
2626 "type" : "runtime_data",
2627 "value" : 2
2628 }
2629 ],
2630 "source_info" : {
2631 "filename" : "include/control/next.p4",
2632 "line" : 41,
2633 "column" : 8,
2634 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2635 }
2636 },
2637 {
2638 "op" : "assign",
2639 "parameters" : [
2640 {
2641 "type" : "field",
2642 "value" : ["standard_metadata", "egress_spec"]
2643 },
2644 {
2645 "type" : "runtime_data",
2646 "value" : 0
2647 }
2648 ],
2649 "source_info" : {
2650 "filename" : "include/control/next.p4",
2651 "line" : 149,
2652 "column" : 8,
2653 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2654 }
2655 }
2656 ]
2657 },
2658 {
2659 "name" : "FabricIngress.next.mpls_routing_v4_hashed",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002660 "id" : 33,
Yi Tseng47eac892018-07-11 02:17:04 +08002661 "runtime_data" : [
2662 {
2663 "name" : "port_num",
2664 "bitwidth" : 9
2665 },
2666 {
2667 "name" : "smac",
2668 "bitwidth" : 48
2669 },
2670 {
2671 "name" : "dmac",
2672 "bitwidth" : 48
2673 },
2674 {
2675 "name" : "label",
2676 "bitwidth" : 20
2677 }
2678 ],
2679 "primitives" : [
2680 {
2681 "op" : "assign",
2682 "parameters" : [
2683 {
2684 "type" : "field",
2685 "value" : ["ethernet", "src_addr"]
2686 },
2687 {
2688 "type" : "runtime_data",
2689 "value" : 1
2690 }
2691 ],
2692 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002693 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002694 "line" : 37,
2695 "column" : 8,
2696 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2697 }
2698 },
2699 {
2700 "op" : "assign",
2701 "parameters" : [
2702 {
2703 "type" : "field",
2704 "value" : ["ethernet", "dst_addr"]
2705 },
2706 {
2707 "type" : "runtime_data",
2708 "value" : 2
2709 }
2710 ],
2711 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002712 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002713 "line" : 41,
2714 "column" : 8,
2715 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2716 }
2717 },
2718 {
2719 "op" : "assign",
2720 "parameters" : [
2721 {
2722 "type" : "field",
2723 "value" : ["standard_metadata", "egress_spec"]
2724 },
2725 {
2726 "type" : "runtime_data",
2727 "value" : 0
2728 }
2729 ],
2730 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002731 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002732 "line" : 149,
2733 "column" : 8,
2734 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2735 }
2736 },
2737 {
2738 "op" : "add_header",
2739 "parameters" : [
2740 {
2741 "type" : "header",
2742 "value" : "mpls"
2743 }
2744 ],
2745 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002746 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002747 "line" : 46,
2748 "column" : 8,
2749 "source_fragment" : "hdr.mpls.setValid()"
2750 }
2751 },
2752 {
2753 "op" : "assign",
2754 "parameters" : [
2755 {
2756 "type" : "field",
2757 "value" : ["vlan_tag", "ether_type"]
2758 },
2759 {
2760 "type" : "hexstr",
2761 "value" : "0x8847"
2762 }
2763 ],
2764 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002765 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002766 "line" : 90,
Yi Tseng47eac892018-07-11 02:17:04 +08002767 "column" : 31,
2768 "source_fragment" : "0x8847; ..."
2769 }
2770 },
2771 {
2772 "op" : "assign",
2773 "parameters" : [
2774 {
2775 "type" : "field",
2776 "value" : ["mpls", "label"]
2777 },
2778 {
2779 "type" : "runtime_data",
2780 "value" : 3
2781 }
2782 ],
2783 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002784 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002785 "line" : 48,
2786 "column" : 8,
2787 "source_fragment" : "hdr.mpls.label = label; ..."
2788 }
2789 },
2790 {
2791 "op" : "assign",
2792 "parameters" : [
2793 {
2794 "type" : "field",
2795 "value" : ["mpls", "tc"]
2796 },
2797 {
2798 "type" : "hexstr",
2799 "value" : "0x00"
2800 }
2801 ],
2802 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002803 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002804 "line" : 49,
2805 "column" : 8,
2806 "source_fragment" : "hdr.mpls.tc = tc; ..."
2807 }
2808 },
2809 {
2810 "op" : "assign",
2811 "parameters" : [
2812 {
2813 "type" : "field",
2814 "value" : ["mpls", "bos"]
2815 },
2816 {
2817 "type" : "hexstr",
2818 "value" : "0x01"
2819 }
2820 ],
2821 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002822 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002823 "line" : 50,
2824 "column" : 8,
2825 "source_fragment" : "hdr.mpls.bos = 1w1"
2826 }
2827 },
2828 {
2829 "op" : "assign",
2830 "parameters" : [
2831 {
2832 "type" : "field",
2833 "value" : ["mpls", "ttl"]
2834 },
2835 {
2836 "type" : "hexstr",
2837 "value" : "0x40"
2838 }
2839 ],
2840 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002841 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002842 "line" : 113,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002843 "column" : 32,
2844 "source_fragment" : "64; ..."
2845 }
2846 }
2847 ]
2848 },
2849 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002850 "name" : "FabricIngress.next.mpls_routing_v6_hashed",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002851 "id" : 34,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002852 "runtime_data" : [
2853 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002854 "name" : "port_num",
2855 "bitwidth" : 9
2856 },
2857 {
2858 "name" : "smac",
2859 "bitwidth" : 48
2860 },
2861 {
2862 "name" : "dmac",
2863 "bitwidth" : 48
2864 },
2865 {
2866 "name" : "label",
2867 "bitwidth" : 20
2868 }
2869 ],
2870 "primitives" : [
2871 {
2872 "op" : "assign",
2873 "parameters" : [
2874 {
2875 "type" : "field",
2876 "value" : ["ethernet", "src_addr"]
2877 },
2878 {
2879 "type" : "runtime_data",
2880 "value" : 1
2881 }
2882 ],
2883 "source_info" : {
2884 "filename" : "include/control/next.p4",
2885 "line" : 37,
2886 "column" : 8,
2887 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2888 }
2889 },
2890 {
2891 "op" : "assign",
2892 "parameters" : [
2893 {
2894 "type" : "field",
2895 "value" : ["ethernet", "dst_addr"]
2896 },
2897 {
2898 "type" : "runtime_data",
2899 "value" : 2
2900 }
2901 ],
2902 "source_info" : {
2903 "filename" : "include/control/next.p4",
2904 "line" : 41,
2905 "column" : 8,
2906 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2907 }
2908 },
2909 {
2910 "op" : "assign",
2911 "parameters" : [
2912 {
2913 "type" : "field",
2914 "value" : ["standard_metadata", "egress_spec"]
2915 },
2916 {
2917 "type" : "runtime_data",
2918 "value" : 0
2919 }
2920 ],
2921 "source_info" : {
2922 "filename" : "include/control/next.p4",
2923 "line" : 149,
2924 "column" : 8,
2925 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2926 }
2927 },
2928 {
2929 "op" : "add_header",
2930 "parameters" : [
2931 {
2932 "type" : "header",
2933 "value" : "mpls"
2934 }
2935 ],
2936 "source_info" : {
2937 "filename" : "include/control/next.p4",
2938 "line" : 46,
2939 "column" : 8,
2940 "source_fragment" : "hdr.mpls.setValid()"
2941 }
2942 },
2943 {
2944 "op" : "assign",
2945 "parameters" : [
2946 {
2947 "type" : "field",
2948 "value" : ["vlan_tag", "ether_type"]
2949 },
2950 {
2951 "type" : "hexstr",
2952 "value" : "0x8847"
2953 }
2954 ],
2955 "source_info" : {
2956 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002957 "line" : 90,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002958 "column" : 31,
2959 "source_fragment" : "0x8847; ..."
2960 }
2961 },
2962 {
2963 "op" : "assign",
2964 "parameters" : [
2965 {
2966 "type" : "field",
2967 "value" : ["mpls", "label"]
2968 },
2969 {
2970 "type" : "runtime_data",
2971 "value" : 3
2972 }
2973 ],
2974 "source_info" : {
2975 "filename" : "include/control/next.p4",
2976 "line" : 48,
2977 "column" : 8,
2978 "source_fragment" : "hdr.mpls.label = label; ..."
2979 }
2980 },
2981 {
2982 "op" : "assign",
2983 "parameters" : [
2984 {
2985 "type" : "field",
2986 "value" : ["mpls", "tc"]
2987 },
2988 {
2989 "type" : "hexstr",
2990 "value" : "0x00"
2991 }
2992 ],
2993 "source_info" : {
2994 "filename" : "include/control/next.p4",
2995 "line" : 49,
2996 "column" : 8,
2997 "source_fragment" : "hdr.mpls.tc = tc; ..."
2998 }
2999 },
3000 {
3001 "op" : "assign",
3002 "parameters" : [
3003 {
3004 "type" : "field",
3005 "value" : ["mpls", "bos"]
3006 },
3007 {
3008 "type" : "hexstr",
3009 "value" : "0x01"
3010 }
3011 ],
3012 "source_info" : {
3013 "filename" : "include/control/next.p4",
3014 "line" : 50,
3015 "column" : 8,
3016 "source_fragment" : "hdr.mpls.bos = 1w1"
3017 }
3018 },
3019 {
3020 "op" : "assign",
3021 "parameters" : [
3022 {
3023 "type" : "field",
3024 "value" : ["mpls", "ttl"]
3025 },
3026 {
3027 "type" : "hexstr",
3028 "value" : "0x40"
3029 }
3030 ],
3031 "source_info" : {
3032 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003033 "line" : 113,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003034 "column" : 32,
3035 "source_fragment" : "64; ..."
3036 }
3037 }
3038 ]
3039 },
3040 {
3041 "name" : "FabricIngress.next.set_mcast_group",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003042 "id" : 35,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003043 "runtime_data" : [
3044 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00003045 "name" : "gid",
3046 "bitwidth" : 16
3047 }
3048 ],
3049 "primitives" : [
3050 {
3051 "op" : "assign",
3052 "parameters" : [
3053 {
3054 "type" : "field",
3055 "value" : ["standard_metadata", "mcast_grp"]
3056 },
3057 {
3058 "type" : "runtime_data",
3059 "value" : 0
3060 }
3061 ],
3062 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003063 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003064 "line" : 202,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003065 "column" : 8,
3066 "source_fragment" : "standard_metadata.mcast_grp = gid"
3067 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003068 },
3069 {
3070 "op" : "assign",
3071 "parameters" : [
3072 {
3073 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003074 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003075 },
3076 {
3077 "type" : "expression",
3078 "value" : {
3079 "type" : "expression",
3080 "value" : {
3081 "op" : "b2d",
3082 "left" : null,
3083 "right" : {
3084 "type" : "bool",
3085 "value" : true
3086 }
3087 }
3088 }
3089 }
3090 ],
3091 "source_info" : {
3092 "filename" : "include/control/next.p4",
3093 "line" : 203,
3094 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003095 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003096 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00003097 }
3098 ]
3099 },
3100 {
3101 "name" : "act",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003102 "id" : 36,
3103 "runtime_data" : [],
3104 "primitives" : [
3105 {
3106 "op" : "assign",
3107 "parameters" : [
3108 {
3109 "type" : "field",
3110 "value" : ["scalars", "spgw_normalizer_hasReturned_0"]
3111 },
3112 {
3113 "type" : "expression",
3114 "value" : {
3115 "type" : "expression",
3116 "value" : {
3117 "op" : "b2d",
3118 "left" : null,
3119 "right" : {
3120 "type" : "bool",
3121 "value" : true
3122 }
3123 }
3124 }
3125 }
3126 ],
3127 "source_info" : {
3128 "filename" : "include/spgw.p4",
3129 "line" : 30,
3130 "column" : 32,
3131 "source_fragment" : "return"
3132 }
3133 }
3134 ]
3135 },
3136 {
3137 "name" : "act_0",
3138 "id" : 37,
3139 "runtime_data" : [],
3140 "primitives" : [
3141 {
3142 "op" : "remove_header",
3143 "parameters" : [
3144 {
3145 "type" : "header",
3146 "value" : "gtpu_ipv4"
3147 }
3148 ],
3149 "source_info" : {
3150 "filename" : "fabric.p4",
3151 "line" : 52,
3152 "column" : 50,
3153 "source_fragment" : "hdr.gtpu_ipv4"
3154 }
3155 },
3156 {
3157 "op" : "remove_header",
3158 "parameters" : [
3159 {
3160 "type" : "header",
3161 "value" : "gtpu_udp"
3162 }
3163 ],
3164 "source_info" : {
3165 "filename" : "fabric.p4",
3166 "line" : 52,
3167 "column" : 65,
3168 "source_fragment" : "hdr.gtpu_udp"
3169 }
3170 },
3171 {
3172 "op" : "assign",
3173 "parameters" : [
3174 {
3175 "type" : "field",
3176 "value" : ["scalars", "spgw_normalizer_hasReturned_0"]
3177 },
3178 {
3179 "type" : "expression",
3180 "value" : {
3181 "type" : "expression",
3182 "value" : {
3183 "op" : "b2d",
3184 "left" : null,
3185 "right" : {
3186 "type" : "bool",
3187 "value" : false
3188 }
3189 }
3190 }
3191 }
3192 ]
3193 }
3194 ]
3195 },
3196 {
3197 "name" : "act_1",
3198 "id" : 38,
3199 "runtime_data" : [],
3200 "primitives" : [
3201 {
3202 "op" : "assign_header",
3203 "parameters" : [
3204 {
3205 "type" : "header",
3206 "value" : "udp"
3207 },
3208 {
3209 "type" : "header",
3210 "value" : "inner_udp"
3211 }
3212 ],
3213 "source_info" : {
3214 "filename" : "include/spgw.p4",
3215 "line" : 35,
3216 "column" : 16,
3217 "source_fragment" : "= inner_udp; ..."
3218 }
3219 }
3220 ]
3221 },
3222 {
3223 "name" : "act_2",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003224 "id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003225 "runtime_data" : [],
3226 "primitives" : [
3227 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003228 "op" : "remove_header",
3229 "parameters" : [
3230 {
3231 "type" : "header",
3232 "value" : "udp"
3233 }
3234 ],
3235 "source_info" : {
3236 "filename" : "include/spgw.p4",
3237 "line" : 37,
3238 "column" : 12,
3239 "source_fragment" : "udp.setInvalid()"
3240 }
3241 }
3242 ]
3243 },
3244 {
3245 "name" : "act_3",
3246 "id" : 40,
3247 "runtime_data" : [],
3248 "primitives" : [
3249 {
3250 "op" : "assign_header",
3251 "parameters" : [
3252 {
3253 "type" : "header",
3254 "value" : "gtpu_ipv4"
3255 },
3256 {
3257 "type" : "header",
3258 "value" : "ipv4"
3259 }
3260 ],
3261 "source_info" : {
3262 "filename" : "include/spgw.p4",
3263 "line" : 31,
3264 "column" : 18,
3265 "source_fragment" : "= ipv4; ..."
3266 }
3267 },
3268 {
3269 "op" : "assign_header",
3270 "parameters" : [
3271 {
3272 "type" : "header",
3273 "value" : "ipv4"
3274 },
3275 {
3276 "type" : "header",
3277 "value" : "inner_ipv4"
3278 }
3279 ],
3280 "source_info" : {
3281 "filename" : "include/spgw.p4",
3282 "line" : 32,
3283 "column" : 13,
3284 "source_fragment" : "= inner_ipv4; ..."
3285 }
3286 },
3287 {
3288 "op" : "assign_header",
3289 "parameters" : [
3290 {
3291 "type" : "header",
3292 "value" : "gtpu_udp"
3293 },
3294 {
3295 "type" : "header",
3296 "value" : "udp"
3297 }
3298 ],
3299 "source_info" : {
3300 "filename" : "include/spgw.p4",
3301 "line" : 33,
3302 "column" : 17,
3303 "source_fragment" : "= udp; ..."
3304 }
3305 }
3306 ]
3307 },
3308 {
3309 "name" : "act_4",
3310 "id" : 41,
3311 "runtime_data" : [],
3312 "primitives" : [
3313 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003314 "op" : "assign",
3315 "parameters" : [
3316 {
3317 "type" : "field",
3318 "value" : ["standard_metadata", "egress_spec"]
3319 },
3320 {
3321 "type" : "field",
3322 "value" : ["packet_out", "egress_port"]
3323 }
3324 ],
3325 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003326 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003327 "line" : 26,
3328 "column" : 12,
3329 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
3330 }
3331 },
3332 {
3333 "op" : "remove_header",
3334 "parameters" : [
3335 {
3336 "type" : "header",
3337 "value" : "packet_out"
3338 }
3339 ],
3340 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003341 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003342 "line" : 27,
3343 "column" : 12,
3344 "source_fragment" : "hdr.packet_out.setInvalid()"
3345 }
3346 }
3347 ]
3348 },
3349 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003350 "name" : "act_5",
3351 "id" : 42,
3352 "runtime_data" : [],
3353 "primitives" : [
3354 {
3355 "op" : "assign",
3356 "parameters" : [
3357 {
3358 "type" : "field",
3359 "value" : ["scalars", "spgw_ingress_tmp_1"]
3360 },
3361 {
3362 "type" : "expression",
3363 "value" : {
3364 "type" : "expression",
3365 "value" : {
3366 "op" : "b2d",
3367 "left" : null,
3368 "right" : {
3369 "type" : "bool",
3370 "value" : true
3371 }
3372 }
3373 }
3374 }
3375 ]
3376 }
3377 ]
3378 },
3379 {
3380 "name" : "act_6",
3381 "id" : 43,
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" : false
3401 }
3402 }
3403 }
3404 }
3405 ]
3406 }
3407 ]
3408 },
3409 {
3410 "name" : "act_7",
3411 "id" : 44,
3412 "runtime_data" : [],
3413 "primitives" : [
3414 {
3415 "op" : "assign",
3416 "parameters" : [
3417 {
3418 "type" : "field",
3419 "value" : ["userMetadata.spgw", "direction"]
3420 },
3421 {
3422 "type" : "hexstr",
3423 "value" : "0x01"
3424 }
3425 ],
3426 "source_info" : {
3427 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003428 "line" : 119,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003429 "column" : 36,
3430 "source_fragment" : "2w1; ..."
3431 }
3432 }
3433 ]
3434 },
3435 {
3436 "name" : "act_8",
3437 "id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003438 "runtime_data" : [],
3439 "primitives" : [
3440 {
3441 "op" : "assign",
3442 "parameters" : [
3443 {
3444 "type" : "field",
3445 "value" : ["scalars", "spgw_ingress_tmp_2"]
3446 },
3447 {
3448 "type" : "expression",
3449 "value" : {
3450 "type" : "expression",
3451 "value" : {
3452 "op" : "b2d",
3453 "left" : null,
3454 "right" : {
3455 "type" : "bool",
3456 "value" : true
3457 }
3458 }
3459 }
3460 }
3461 ]
3462 }
3463 ]
3464 },
3465 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003466 "name" : "act_9",
3467 "id" : 46,
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" : false
3487 }
3488 }
3489 }
3490 }
3491 ]
3492 }
3493 ]
3494 },
3495 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003496 "name" : "act_10",
3497 "id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003498 "runtime_data" : [],
3499 "primitives" : [
3500 {
3501 "op" : "assign",
3502 "parameters" : [
3503 {
3504 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003505 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003506 },
3507 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003508 "type" : "hexstr",
3509 "value" : "0x02"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003510 }
3511 ],
3512 "source_info" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003513 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003514 "line" : 120,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003515 "column" : 38,
3516 "source_fragment" : "2w2; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003517 }
3518 }
3519 ]
3520 },
3521 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003522 "name" : "act_11",
3523 "id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003524 "runtime_data" : [],
3525 "primitives" : [
3526 {
3527 "op" : "assign",
3528 "parameters" : [
3529 {
3530 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003531 "value" : ["userMetadata.spgw", "direction"]
3532 },
3533 {
3534 "type" : "hexstr",
3535 "value" : "0x00"
3536 }
3537 ],
3538 "source_info" : {
3539 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003540 "line" : 118,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003541 "column" : 37,
3542 "source_fragment" : "2w0; ..."
3543 }
3544 },
3545 {
3546 "op" : "assign",
3547 "parameters" : [
3548 {
3549 "type" : "field",
3550 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003551 },
3552 {
3553 "type" : "expression",
3554 "value" : {
3555 "type" : "expression",
3556 "value" : {
3557 "op" : "b2d",
3558 "left" : null,
3559 "right" : {
3560 "type" : "bool",
3561 "value" : true
3562 }
3563 }
3564 }
3565 }
3566 ],
3567 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003568 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07003569 "line" : 153,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003570 "column" : 12,
3571 "source_fragment" : "return"
3572 }
3573 }
3574 ]
3575 },
3576 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003577 "name" : "act_12",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003578 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003579 "runtime_data" : [],
3580 "primitives" : [
3581 {
3582 "op" : "assign",
3583 "parameters" : [
3584 {
3585 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003586 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003587 },
3588 {
3589 "type" : "expression",
3590 "value" : {
3591 "type" : "expression",
3592 "value" : {
3593 "op" : "b2d",
3594 "left" : null,
3595 "right" : {
3596 "type" : "bool",
3597 "value" : false
3598 }
3599 }
3600 }
3601 }
3602 ]
3603 }
3604 ]
3605 },
3606 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003607 "name" : "act_13",
3608 "id" : 50,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003609 "runtime_data" : [],
3610 "primitives" : [
3611 {
3612 "op" : "assign",
3613 "parameters" : [
3614 {
3615 "type" : "field",
3616 "value" : ["userMetadata.spgw", "ipv4_len"]
3617 },
3618 {
3619 "type" : "field",
3620 "value" : ["ipv4", "total_len"]
3621 }
3622 ],
3623 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003624 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07003625 "line" : 170,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003626 "column" : 8,
3627 "source_fragment" : "spgw_meta.ipv4_len = ipv4.total_len"
3628 }
3629 }
3630 ]
3631 },
3632 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003633 "name" : "act_14",
3634 "id" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003635 "runtime_data" : [],
3636 "primitives" : [
3637 {
3638 "op" : "assign",
3639 "parameters" : [
3640 {
3641 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003642 "value" : ["scalars", "filtering_tmp_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003643 },
3644 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003645 "type" : "expression",
3646 "value" : {
3647 "type" : "expression",
3648 "value" : {
3649 "op" : "b2d",
3650 "left" : null,
3651 "right" : {
3652 "type" : "bool",
3653 "value" : true
3654 }
3655 }
3656 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003657 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003658 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003659 }
3660 ]
3661 },
3662 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003663 "name" : "act_15",
3664 "id" : 52,
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 {
3675 "type" : "expression",
3676 "value" : {
3677 "type" : "expression",
3678 "value" : {
3679 "op" : "b2d",
3680 "left" : null,
3681 "right" : {
3682 "type" : "bool",
3683 "value" : false
3684 }
3685 }
3686 }
3687 }
3688 ]
3689 }
3690 ]
3691 },
3692 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003693 "name" : "act_16",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003694 "id" : 53,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003695 "runtime_data" : [],
3696 "primitives" : [
3697 {
3698 "op" : "assign",
3699 "parameters" : [
3700 {
3701 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003702 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003703 },
3704 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003705 "type" : "hexstr",
3706 "value" : "0x07"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003707 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003708 ],
3709 "source_info" : {
3710 "filename" : "include/control/../define.p4",
3711 "line" : 109,
3712 "column" : 31,
3713 "source_fragment" : "7; ..."
3714 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003715 }
3716 ]
3717 },
3718 {
3719 "name" : "act_17",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003720 "id" : 54,
3721 "runtime_data" : [],
3722 "primitives" : [
3723 {
3724 "op" : "assign",
3725 "parameters" : [
3726 {
3727 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003728 "value" : ["vlan_tag", "ether_type"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003729 },
3730 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003731 "type" : "hexstr",
3732 "value" : "0x0800"
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003733 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003734 ],
3735 "source_info" : {
3736 "filename" : "include/control/../define.p4",
3737 "line" : 92,
3738 "column" : 31,
3739 "source_fragment" : "0x0800; ..."
3740 }
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003741 }
3742 ]
3743 },
3744 {
3745 "name" : "act_18",
3746 "id" : 55,
3747 "runtime_data" : [],
3748 "primitives" : [
3749 {
3750 "op" : "assign",
3751 "parameters" : [
3752 {
3753 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003754 "value" : ["scalars", "next_hasReturned_0"]
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003755 },
3756 {
3757 "type" : "expression",
3758 "value" : {
3759 "type" : "expression",
3760 "value" : {
3761 "op" : "b2d",
3762 "left" : null,
3763 "right" : {
3764 "type" : "bool",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003765 "value" : false
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003766 }
3767 }
3768 }
3769 }
3770 ]
3771 }
3772 ]
3773 },
3774 {
3775 "name" : "act_19",
3776 "id" : 56,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003777 "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_tmp_4"]
3785 },
3786 {
3787 "type" : "expression",
3788 "value" : {
3789 "type" : "expression",
3790 "value" : {
3791 "op" : "b2d",
3792 "left" : null,
3793 "right" : {
3794 "type" : "bool",
3795 "value" : true
3796 }
3797 }
3798 }
3799 }
3800 ]
3801 }
3802 ]
3803 },
3804 {
3805 "name" : "act_20",
3806 "id" : 57,
3807 "runtime_data" : [],
3808 "primitives" : [
3809 {
3810 "op" : "assign",
3811 "parameters" : [
3812 {
3813 "type" : "field",
3814 "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" : false
3826 }
3827 }
3828 }
3829 }
3830 ]
3831 }
3832 ]
3833 },
3834 {
3835 "name" : "act_21",
3836 "id" : 58,
3837 "runtime_data" : [],
3838 "primitives" : [
3839 {
3840 "op" : "assign",
3841 "parameters" : [
3842 {
3843 "type" : "field",
3844 "value" : ["scalars", "next_tmp_3"]
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" : true
3856 }
3857 }
3858 }
3859 }
3860 ]
3861 }
3862 ]
3863 },
3864 {
3865 "name" : "act_22",
3866 "id" : 59,
3867 "runtime_data" : [],
3868 "primitives" : [
3869 {
3870 "op" : "assign",
3871 "parameters" : [
3872 {
3873 "type" : "field",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003874 "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" : false
3886 }
3887 }
3888 }
3889 }
3890 ]
3891 }
3892 ]
3893 },
3894 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003895 "name" : "act_23",
3896 "id" : 60,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003897 "runtime_data" : [],
3898 "primitives" : [
3899 {
3900 "op" : "assign",
3901 "parameters" : [
3902 {
3903 "type" : "field",
3904 "value" : ["scalars", "next_tmp_2"]
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" : true
3916 }
3917 }
3918 }
3919 }
3920 ]
3921 }
3922 ]
3923 },
3924 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003925 "name" : "act_24",
3926 "id" : 61,
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" : false
3946 }
3947 }
3948 }
3949 }
3950 ]
3951 }
3952 ]
3953 },
3954 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003955 "name" : "act_25",
3956 "id" : 62,
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_hasReturned_0"]
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" : true
3976 }
3977 }
3978 }
3979 }
3980 ],
3981 "source_info" : {
3982 "filename" : "include/control/next.p4",
3983 "line" : 223,
3984 "column" : 20,
3985 "source_fragment" : "return"
3986 }
3987 }
3988 ]
3989 },
3990 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003991 "name" : "act_26",
3992 "id" : 63,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003993 "runtime_data" : [],
3994 "primitives" : [
3995 {
3996 "op" : "assign",
3997 "parameters" : [
3998 {
3999 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004000 "value" : ["ipv4", "ttl"]
4001 },
4002 {
4003 "type" : "expression",
4004 "value" : {
4005 "type" : "expression",
4006 "value" : {
4007 "op" : "&",
4008 "left" : {
4009 "type" : "expression",
4010 "value" : {
4011 "op" : "+",
4012 "left" : {
4013 "type" : "field",
4014 "value" : ["ipv4", "ttl"]
4015 },
4016 "right" : {
4017 "type" : "hexstr",
4018 "value" : "0xff"
4019 }
4020 }
4021 },
4022 "right" : {
4023 "type" : "hexstr",
4024 "value" : "0xff"
4025 }
4026 }
4027 }
4028 }
4029 ],
4030 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004031 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004032 "line" : 230,
4033 "column" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004034 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
4035 }
4036 }
4037 ]
4038 },
4039 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004040 "name" : "act_27",
4041 "id" : 64,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004042 "runtime_data" : [],
4043 "primitives" : [
4044 {
4045 "op" : "assign",
4046 "parameters" : [
4047 {
4048 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004049 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004050 },
4051 {
4052 "type" : "expression",
4053 "value" : {
4054 "type" : "expression",
4055 "value" : {
4056 "op" : "&",
4057 "left" : {
4058 "type" : "field",
4059 "value" : ["standard_metadata", "egress_spec"]
4060 },
4061 "right" : {
4062 "type" : "hexstr",
4063 "value" : "0xffffffff"
4064 }
4065 }
4066 }
4067 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004068 ],
4069 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004070 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004071 "line" : 28,
4072 "column" : 38,
4073 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
4074 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004075 },
4076 {
4077 "op" : "count",
4078 "parameters" : [
4079 {
4080 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004081 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004082 },
4083 {
4084 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004085 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004086 }
4087 ],
4088 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004089 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004090 "line" : 28,
4091 "column" : 12,
4092 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
4093 }
4094 }
4095 ]
4096 },
4097 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004098 "name" : "act_28",
4099 "id" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004100 "runtime_data" : [],
4101 "primitives" : [
4102 {
4103 "op" : "assign",
4104 "parameters" : [
4105 {
4106 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004107 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004108 },
4109 {
4110 "type" : "expression",
4111 "value" : {
4112 "type" : "expression",
4113 "value" : {
4114 "op" : "&",
4115 "left" : {
4116 "type" : "field",
4117 "value" : ["standard_metadata", "ingress_port"]
4118 },
4119 "right" : {
4120 "type" : "hexstr",
4121 "value" : "0xffffffff"
4122 }
4123 }
4124 }
4125 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004126 ],
4127 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004128 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004129 "line" : 31,
4130 "column" : 39,
4131 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
4132 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004133 },
4134 {
4135 "op" : "count",
4136 "parameters" : [
4137 {
4138 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004139 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004140 },
4141 {
4142 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004143 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004144 }
4145 ],
4146 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004147 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004148 "line" : 31,
4149 "column" : 12,
4150 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
4151 }
4152 }
4153 ]
4154 },
4155 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004156 "name" : "nop",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004157 "id" : 66,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004158 "runtime_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004159 "primitives" : []
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004160 },
4161 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004162 "name" : "drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004163 "id" : 67,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004164 "runtime_data" : [],
4165 "primitives" : [
4166 {
4167 "op" : "drop",
4168 "parameters" : [],
4169 "source_info" : {
4170 "filename" : "include/control/../action.p4",
4171 "line" : 24,
4172 "column" : 4,
4173 "source_fragment" : "mark_to_drop()"
4174 }
4175 },
4176 {
4177 "op" : "exit",
4178 "parameters" : [],
4179 "source_info" : {
4180 "filename" : "include/control/../action.p4",
4181 "line" : 25,
4182 "column" : 4,
4183 "source_fragment" : "exit"
4184 }
4185 }
4186 ]
4187 },
4188 {
4189 "name" : "drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004190 "id" : 68,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004191 "runtime_data" : [],
4192 "primitives" : [
4193 {
4194 "op" : "drop",
4195 "parameters" : [],
4196 "source_info" : {
4197 "filename" : "include/control/../action.p4",
4198 "line" : 24,
4199 "column" : 4,
4200 "source_fragment" : "mark_to_drop()"
4201 }
4202 },
4203 {
4204 "op" : "exit",
4205 "parameters" : [],
4206 "source_info" : {
4207 "filename" : "include/control/../action.p4",
4208 "line" : 25,
4209 "column" : 4,
4210 "source_fragment" : "exit"
4211 }
4212 }
4213 ]
4214 },
4215 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004216 "name" : "FabricEgress.spgw_egress.gtpu_encap",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004217 "id" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004218 "runtime_data" : [],
4219 "primitives" : [
4220 {
4221 "op" : "add_header",
4222 "parameters" : [
4223 {
4224 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004225 "value" : "gtpu_ipv4"
4226 }
4227 ],
4228 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004229 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004230 "line" : 185,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004231 "column" : 8,
4232 "source_fragment" : "gtpu_ipv4.setValid()"
4233 }
4234 },
4235 {
4236 "op" : "assign",
4237 "parameters" : [
4238 {
4239 "type" : "field",
4240 "value" : ["gtpu_ipv4", "version"]
4241 },
4242 {
4243 "type" : "hexstr",
4244 "value" : "0x04"
4245 }
4246 ],
4247 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004248 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004249 "line" : 186,
Yi Tseng3d3956d2018-01-31 17:28:05 -08004250 "column" : 8,
4251 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004252 }
4253 },
4254 {
4255 "op" : "assign",
4256 "parameters" : [
4257 {
4258 "type" : "field",
4259 "value" : ["gtpu_ipv4", "ihl"]
4260 },
4261 {
4262 "type" : "hexstr",
4263 "value" : "0x05"
4264 }
4265 ],
4266 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004267 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004268 "line" : 101,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004269 "column" : 28,
4270 "source_fragment" : "5; ..."
4271 }
4272 },
4273 {
4274 "op" : "assign",
4275 "parameters" : [
4276 {
4277 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004278 "value" : ["gtpu_ipv4", "dscp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004279 },
4280 {
4281 "type" : "hexstr",
4282 "value" : "0x00"
4283 }
4284 ],
4285 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004286 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004287 "line" : 188,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004288 "column" : 8,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004289 "source_fragment" : "gtpu_ipv4.dscp = 0"
4290 }
4291 },
4292 {
4293 "op" : "assign",
4294 "parameters" : [
4295 {
4296 "type" : "field",
4297 "value" : ["gtpu_ipv4", "ecn"]
4298 },
4299 {
4300 "type" : "hexstr",
4301 "value" : "0x00"
4302 }
4303 ],
4304 "source_info" : {
4305 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004306 "line" : 189,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004307 "column" : 8,
4308 "source_fragment" : "gtpu_ipv4.ecn = 0"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004309 }
4310 },
4311 {
4312 "op" : "assign",
4313 "parameters" : [
4314 {
4315 "type" : "field",
4316 "value" : ["gtpu_ipv4", "total_len"]
4317 },
4318 {
4319 "type" : "expression",
4320 "value" : {
4321 "type" : "expression",
4322 "value" : {
4323 "op" : "&",
4324 "left" : {
4325 "type" : "expression",
4326 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004327 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004328 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004329 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004330 "value" : ["ipv4", "total_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004331 },
4332 "right" : {
4333 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004334 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004335 }
4336 }
4337 },
4338 "right" : {
4339 "type" : "hexstr",
4340 "value" : "0xffff"
4341 }
4342 }
4343 }
4344 }
4345 ],
4346 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004347 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004348 "line" : 190,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004349 "column" : 8,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004350 "source_fragment" : "gtpu_ipv4.total_len = ipv4.total_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08004351 }
4352 },
4353 {
4354 "op" : "assign",
4355 "parameters" : [
4356 {
4357 "type" : "field",
4358 "value" : ["gtpu_ipv4", "identification"]
4359 },
4360 {
4361 "type" : "hexstr",
4362 "value" : "0x1513"
4363 }
4364 ],
4365 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004366 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004367 "line" : 192,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004368 "column" : 8,
4369 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
4370 }
4371 },
4372 {
4373 "op" : "assign",
4374 "parameters" : [
4375 {
4376 "type" : "field",
4377 "value" : ["gtpu_ipv4", "flags"]
4378 },
4379 {
4380 "type" : "hexstr",
4381 "value" : "0x00"
4382 }
4383 ],
4384 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004385 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004386 "line" : 193,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004387 "column" : 8,
4388 "source_fragment" : "gtpu_ipv4.flags = 0"
4389 }
4390 },
4391 {
4392 "op" : "assign",
4393 "parameters" : [
4394 {
4395 "type" : "field",
4396 "value" : ["gtpu_ipv4", "frag_offset"]
4397 },
4398 {
4399 "type" : "hexstr",
4400 "value" : "0x0000"
4401 }
4402 ],
4403 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004404 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004405 "line" : 194,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004406 "column" : 8,
4407 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
4408 }
4409 },
4410 {
4411 "op" : "assign",
4412 "parameters" : [
4413 {
4414 "type" : "field",
4415 "value" : ["gtpu_ipv4", "ttl"]
4416 },
4417 {
4418 "type" : "hexstr",
4419 "value" : "0x40"
4420 }
4421 ],
4422 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004423 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004424 "line" : 114,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004425 "column" : 32,
4426 "source_fragment" : "64; ..."
4427 }
4428 },
4429 {
4430 "op" : "assign",
4431 "parameters" : [
4432 {
4433 "type" : "field",
4434 "value" : ["gtpu_ipv4", "protocol"]
4435 },
4436 {
4437 "type" : "hexstr",
4438 "value" : "0x11"
4439 }
4440 ],
4441 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004442 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004443 "line" : 98,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004444 "column" : 25,
4445 "source_fragment" : "17; ..."
4446 }
4447 },
4448 {
4449 "op" : "assign",
4450 "parameters" : [
4451 {
4452 "type" : "field",
4453 "value" : ["gtpu_ipv4", "dst_addr"]
4454 },
4455 {
4456 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004457 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004458 }
4459 ],
4460 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004461 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004462 "line" : 197,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004463 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004464 "source_fragment" : "gtpu_ipv4.dst_addr = spgw_meta.s1u_enb_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004465 }
4466 },
4467 {
4468 "op" : "assign",
4469 "parameters" : [
4470 {
4471 "type" : "field",
4472 "value" : ["gtpu_ipv4", "src_addr"]
4473 },
4474 {
4475 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004476 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004477 }
4478 ],
4479 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004480 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004481 "line" : 198,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004482 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004483 "source_fragment" : "gtpu_ipv4.src_addr = spgw_meta.s1u_sgw_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004484 }
4485 },
4486 {
4487 "op" : "assign",
4488 "parameters" : [
4489 {
4490 "type" : "field",
4491 "value" : ["gtpu_ipv4", "hdr_checksum"]
4492 },
4493 {
4494 "type" : "hexstr",
4495 "value" : "0x0000"
4496 }
4497 ],
4498 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004499 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004500 "line" : 199,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004501 "column" : 8,
4502 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
4503 }
4504 },
4505 {
4506 "op" : "add_header",
4507 "parameters" : [
4508 {
4509 "type" : "header",
4510 "value" : "gtpu_udp"
4511 }
4512 ],
4513 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004514 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004515 "line" : 201,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004516 "column" : 8,
4517 "source_fragment" : "gtpu_udp.setValid()"
4518 }
4519 },
4520 {
4521 "op" : "assign",
4522 "parameters" : [
4523 {
4524 "type" : "field",
4525 "value" : ["gtpu_udp", "src_port"]
4526 },
4527 {
4528 "type" : "hexstr",
4529 "value" : "0x0868"
4530 }
4531 ],
4532 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004533 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004534 "line" : 202,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004535 "column" : 8,
4536 "source_fragment" : "gtpu_udp.src_port = 2152"
4537 }
4538 },
4539 {
4540 "op" : "assign",
4541 "parameters" : [
4542 {
4543 "type" : "field",
4544 "value" : ["gtpu_udp", "dst_port"]
4545 },
4546 {
4547 "type" : "hexstr",
4548 "value" : "0x0868"
4549 }
4550 ],
4551 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004552 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004553 "line" : 203,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004554 "column" : 8,
4555 "source_fragment" : "gtpu_udp.dst_port = 2152"
4556 }
4557 },
4558 {
4559 "op" : "assign",
4560 "parameters" : [
4561 {
4562 "type" : "field",
4563 "value" : ["gtpu_udp", "len"]
4564 },
4565 {
4566 "type" : "expression",
4567 "value" : {
4568 "type" : "expression",
4569 "value" : {
4570 "op" : "&",
4571 "left" : {
4572 "type" : "expression",
4573 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004574 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004575 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004576 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004577 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004578 },
4579 "right" : {
4580 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004581 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004582 }
4583 }
4584 },
4585 "right" : {
4586 "type" : "hexstr",
4587 "value" : "0xffff"
4588 }
4589 }
4590 }
4591 }
4592 ],
4593 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004594 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004595 "line" : 204,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004596 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004597 "source_fragment" : "gtpu_udp.len = spgw_meta.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004598 }
4599 },
4600 {
4601 "op" : "assign",
4602 "parameters" : [
4603 {
4604 "type" : "field",
4605 "value" : ["gtpu_udp", "checksum"]
4606 },
4607 {
4608 "type" : "hexstr",
4609 "value" : "0x0000"
4610 }
4611 ],
4612 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004613 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004614 "line" : 206,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004615 "column" : 8,
4616 "source_fragment" : "gtpu_udp.checksum = 0"
4617 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08004618 },
4619 {
4620 "op" : "add_header",
4621 "parameters" : [
4622 {
4623 "type" : "header",
4624 "value" : "gtpu"
4625 }
4626 ],
4627 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004628 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004629 "line" : 208,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004630 "column" : 8,
4631 "source_fragment" : "gtpu.setValid()"
4632 }
4633 },
4634 {
4635 "op" : "assign",
4636 "parameters" : [
4637 {
4638 "type" : "field",
4639 "value" : ["gtpu", "version"]
4640 },
4641 {
4642 "type" : "hexstr",
4643 "value" : "0x01"
4644 }
4645 ],
4646 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004647 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004648 "line" : 209,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004649 "column" : 8,
4650 "source_fragment" : "gtpu.version = 0x01"
4651 }
4652 },
4653 {
4654 "op" : "assign",
4655 "parameters" : [
4656 {
4657 "type" : "field",
4658 "value" : ["gtpu", "pt"]
4659 },
4660 {
4661 "type" : "hexstr",
4662 "value" : "0x01"
4663 }
4664 ],
4665 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004666 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004667 "line" : 210,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004668 "column" : 8,
4669 "source_fragment" : "gtpu.pt = 0x01"
4670 }
4671 },
4672 {
4673 "op" : "assign",
4674 "parameters" : [
4675 {
4676 "type" : "field",
4677 "value" : ["gtpu", "spare"]
4678 },
4679 {
4680 "type" : "hexstr",
4681 "value" : "0x00"
4682 }
4683 ],
4684 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004685 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004686 "line" : 211,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004687 "column" : 8,
4688 "source_fragment" : "gtpu.spare = 0"
4689 }
4690 },
4691 {
4692 "op" : "assign",
4693 "parameters" : [
4694 {
4695 "type" : "field",
4696 "value" : ["gtpu", "ex_flag"]
4697 },
4698 {
4699 "type" : "hexstr",
4700 "value" : "0x00"
4701 }
4702 ],
4703 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004704 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004705 "line" : 212,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004706 "column" : 8,
4707 "source_fragment" : "gtpu.ex_flag = 0"
4708 }
4709 },
4710 {
4711 "op" : "assign",
4712 "parameters" : [
4713 {
4714 "type" : "field",
4715 "value" : ["gtpu", "seq_flag"]
4716 },
4717 {
4718 "type" : "hexstr",
4719 "value" : "0x00"
4720 }
4721 ],
4722 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004723 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004724 "line" : 213,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004725 "column" : 8,
4726 "source_fragment" : "gtpu.seq_flag = 0"
4727 }
4728 },
4729 {
4730 "op" : "assign",
4731 "parameters" : [
4732 {
4733 "type" : "field",
4734 "value" : ["gtpu", "npdu_flag"]
4735 },
4736 {
4737 "type" : "hexstr",
4738 "value" : "0x00"
4739 }
4740 ],
4741 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004742 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004743 "line" : 214,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004744 "column" : 8,
4745 "source_fragment" : "gtpu.npdu_flag = 0"
4746 }
4747 },
4748 {
4749 "op" : "assign",
4750 "parameters" : [
4751 {
4752 "type" : "field",
4753 "value" : ["gtpu", "msgtype"]
4754 },
4755 {
4756 "type" : "hexstr",
4757 "value" : "0xff"
4758 }
4759 ],
4760 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004761 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004762 "line" : 215,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004763 "column" : 8,
4764 "source_fragment" : "gtpu.msgtype = 0xff"
4765 }
4766 },
4767 {
4768 "op" : "assign",
4769 "parameters" : [
4770 {
4771 "type" : "field",
4772 "value" : ["gtpu", "msglen"]
4773 },
4774 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004775 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004776 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004777 }
4778 ],
4779 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004780 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004781 "line" : 216,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004782 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004783 "source_fragment" : "gtpu.msglen = spgw_meta.ipv4_len"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004784 }
4785 },
4786 {
4787 "op" : "assign",
4788 "parameters" : [
4789 {
4790 "type" : "field",
4791 "value" : ["gtpu", "teid"]
4792 },
4793 {
4794 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004795 "value" : ["userMetadata.spgw", "teid"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004796 }
4797 ],
4798 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004799 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004800 "line" : 217,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004801 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004802 "source_fragment" : "gtpu.teid = spgw_meta.teid"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004803 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004804 }
4805 ]
4806 },
4807 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004808 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004809 "id" : 70,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004810 "runtime_data" : [],
4811 "primitives" : [
4812 {
4813 "op" : "assign",
4814 "parameters" : [
4815 {
4816 "type" : "field",
4817 "value" : ["ethernet", "ether_type"]
4818 },
4819 {
4820 "type" : "field",
4821 "value" : ["vlan_tag", "ether_type"]
4822 }
4823 ],
4824 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004825 "filename" : "include/control/packetio.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08004826 "line" : 38,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004827 "column" : 8,
4828 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4829 }
4830 },
4831 {
4832 "op" : "remove_header",
4833 "parameters" : [
4834 {
4835 "type" : "header",
4836 "value" : "vlan_tag"
4837 }
4838 ],
4839 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004840 "filename" : "include/control/packetio.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08004841 "line" : 39,
4842 "column" : 8,
4843 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4844 }
4845 }
4846 ]
4847 },
4848 {
4849 "name" : "FabricEgress.egress_next.pop_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004850 "id" : 71,
Yi Tseng47eac892018-07-11 02:17:04 +08004851 "runtime_data" : [],
4852 "primitives" : [
4853 {
4854 "op" : "assign",
4855 "parameters" : [
4856 {
4857 "type" : "field",
4858 "value" : ["ethernet", "ether_type"]
4859 },
4860 {
4861 "type" : "field",
4862 "value" : ["vlan_tag", "ether_type"]
4863 }
4864 ],
4865 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004866 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004867 "line" : 253,
Yi Tseng47eac892018-07-11 02:17:04 +08004868 "column" : 8,
4869 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4870 }
4871 },
4872 {
4873 "op" : "remove_header",
4874 "parameters" : [
4875 {
4876 "type" : "header",
4877 "value" : "vlan_tag"
4878 }
4879 ],
4880 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004881 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004882 "line" : 254,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004883 "column" : 8,
4884 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4885 }
4886 }
4887 ]
4888 },
4889 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004890 "name" : "act_29",
4891 "id" : 72,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004892 "runtime_data" : [],
4893 "primitives" : [
4894 {
4895 "op" : "add_header",
4896 "parameters" : [
4897 {
4898 "type" : "header",
4899 "value" : "packet_in"
4900 }
4901 ],
4902 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004903 "filename" : "include/control/packetio.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004904 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004905 "column" : 12,
4906 "source_fragment" : "hdr.packet_in.setValid()"
4907 }
4908 },
4909 {
4910 "op" : "assign",
4911 "parameters" : [
4912 {
4913 "type" : "field",
4914 "value" : ["packet_in", "ingress_port"]
4915 },
4916 {
4917 "type" : "field",
4918 "value" : ["standard_metadata", "ingress_port"]
4919 }
4920 ],
4921 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004922 "filename" : "include/control/packetio.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004923 "line" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004924 "column" : 12,
4925 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4926 }
4927 }
4928 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004929 }
4930 ],
4931 "pipelines" : [
4932 {
4933 "name" : "ingress",
4934 "id" : 0,
4935 "source_info" : {
4936 "filename" : "fabric.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004937 "line" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004938 "column" : 8,
4939 "source_fragment" : "FabricIngress"
4940 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004941 "init_table" : "tbl_act",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004942 "tables" : [
4943 {
4944 "name" : "tbl_act",
4945 "id" : 0,
4946 "key" : [],
4947 "match_type" : "exact",
4948 "type" : "simple",
4949 "max_size" : 1024,
4950 "with_counters" : false,
4951 "support_timeout" : false,
4952 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004953 "action_ids" : [37],
4954 "actions" : ["act_0"],
4955 "base_default_next" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004956 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004957 "act_0" : "node_3"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004958 },
4959 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004960 "action_id" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004961 "action_const" : true,
4962 "action_data" : [],
4963 "action_entry_const" : true
4964 }
4965 },
4966 {
4967 "name" : "tbl_act_0",
4968 "id" : 1,
4969 "key" : [],
4970 "match_type" : "exact",
4971 "type" : "simple",
4972 "max_size" : 1024,
4973 "with_counters" : false,
4974 "support_timeout" : false,
4975 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004976 "action_ids" : [36],
4977 "actions" : ["act"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004978 "base_default_next" : "node_5",
4979 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004980 "act" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004981 },
4982 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004983 "action_id" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004984 "action_const" : true,
4985 "action_data" : [],
4986 "action_entry_const" : true
4987 }
4988 },
4989 {
4990 "name" : "tbl_act_1",
4991 "id" : 2,
4992 "key" : [],
4993 "match_type" : "exact",
4994 "type" : "simple",
4995 "max_size" : 1024,
4996 "with_counters" : false,
4997 "support_timeout" : false,
4998 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004999 "action_ids" : [40],
5000 "actions" : ["act_3"],
5001 "base_default_next" : "node_7",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005002 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005003 "act_3" : "node_7"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005004 },
5005 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005006 "action_id" : 40,
5007 "action_const" : true,
5008 "action_data" : [],
5009 "action_entry_const" : true
5010 }
5011 },
5012 {
5013 "name" : "tbl_act_2",
5014 "id" : 3,
5015 "key" : [],
5016 "match_type" : "exact",
5017 "type" : "simple",
5018 "max_size" : 1024,
5019 "with_counters" : false,
5020 "support_timeout" : false,
5021 "direct_meters" : null,
5022 "action_ids" : [38],
5023 "actions" : ["act_1"],
5024 "base_default_next" : "node_10",
5025 "next_tables" : {
5026 "act_1" : "node_10"
5027 },
5028 "default_entry" : {
5029 "action_id" : 38,
5030 "action_const" : true,
5031 "action_data" : [],
5032 "action_entry_const" : true
5033 }
5034 },
5035 {
5036 "name" : "tbl_act_3",
5037 "id" : 4,
5038 "key" : [],
5039 "match_type" : "exact",
5040 "type" : "simple",
5041 "max_size" : 1024,
5042 "with_counters" : false,
5043 "support_timeout" : false,
5044 "direct_meters" : null,
5045 "action_ids" : [39],
5046 "actions" : ["act_2"],
5047 "base_default_next" : "node_10",
5048 "next_tables" : {
5049 "act_2" : "node_10"
5050 },
5051 "default_entry" : {
5052 "action_id" : 39,
5053 "action_const" : true,
5054 "action_data" : [],
5055 "action_entry_const" : true
5056 }
5057 },
5058 {
5059 "name" : "tbl_act_4",
5060 "id" : 5,
5061 "key" : [],
5062 "match_type" : "exact",
5063 "type" : "simple",
5064 "max_size" : 1024,
5065 "with_counters" : false,
5066 "support_timeout" : false,
5067 "direct_meters" : null,
5068 "action_ids" : [41],
5069 "actions" : ["act_4"],
5070 "base_default_next" : null,
5071 "next_tables" : {
5072 "act_4" : null
5073 },
5074 "default_entry" : {
5075 "action_id" : 41,
5076 "action_const" : true,
5077 "action_data" : [],
5078 "action_entry_const" : true
5079 }
5080 },
5081 {
5082 "name" : "tbl_act_5",
5083 "id" : 6,
5084 "key" : [],
5085 "match_type" : "exact",
5086 "type" : "simple",
5087 "max_size" : 1024,
5088 "with_counters" : false,
5089 "support_timeout" : false,
5090 "direct_meters" : null,
5091 "action_ids" : [49],
5092 "actions" : ["act_12"],
5093 "base_default_next" : "node_13",
5094 "next_tables" : {
5095 "act_12" : "node_13"
5096 },
5097 "default_entry" : {
5098 "action_id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005099 "action_const" : true,
5100 "action_data" : [],
5101 "action_entry_const" : true
5102 }
5103 },
5104 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005105 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005106 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005107 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005108 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005109 "line" : 79,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005110 "column" : 10,
5111 "source_fragment" : "s1u_filter_table"
5112 },
5113 "key" : [
5114 {
5115 "match_type" : "exact",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005116 "name" : "gtpu_ipv4.dst_addr",
5117 "target" : ["gtpu_ipv4", "dst_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005118 "mask" : null
5119 }
5120 ],
5121 "match_type" : "exact",
5122 "type" : "simple",
5123 "max_size" : 1024,
5124 "with_counters" : false,
5125 "support_timeout" : false,
5126 "direct_meters" : null,
5127 "action_ids" : [1],
5128 "actions" : ["NoAction"],
5129 "base_default_next" : null,
5130 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005131 "__HIT__" : "tbl_act_6",
5132 "__MISS__" : "tbl_act_7"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005133 },
5134 "default_entry" : {
5135 "action_id" : 1,
5136 "action_const" : false,
5137 "action_data" : [],
5138 "action_entry_const" : false
5139 }
5140 },
5141 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005142 "name" : "tbl_act_6",
5143 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005144 "key" : [],
5145 "match_type" : "exact",
5146 "type" : "simple",
5147 "max_size" : 1024,
5148 "with_counters" : false,
5149 "support_timeout" : false,
5150 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005151 "action_ids" : [42],
5152 "actions" : ["act_5"],
5153 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005154 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005155 "act_5" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005156 },
5157 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005158 "action_id" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005159 "action_const" : true,
5160 "action_data" : [],
5161 "action_entry_const" : true
5162 }
5163 },
5164 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005165 "name" : "tbl_act_7",
5166 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005167 "key" : [],
5168 "match_type" : "exact",
5169 "type" : "simple",
5170 "max_size" : 1024,
5171 "with_counters" : false,
5172 "support_timeout" : false,
5173 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005174 "action_ids" : [43],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005175 "actions" : ["act_6"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005176 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005177 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005178 "act_6" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005179 },
5180 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005181 "action_id" : 43,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005182 "action_const" : true,
5183 "action_data" : [],
5184 "action_entry_const" : true
5185 }
5186 },
5187 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005188 "name" : "tbl_drop_now",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005189 "id" : 10,
5190 "key" : [],
5191 "match_type" : "exact",
5192 "type" : "simple",
5193 "max_size" : 1024,
5194 "with_counters" : false,
5195 "support_timeout" : false,
5196 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005197 "action_ids" : [9],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005198 "actions" : ["drop_now"],
5199 "base_default_next" : "tbl_act_8",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005200 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005201 "drop_now" : "tbl_act_8"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005202 },
5203 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005204 "action_id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005205 "action_const" : true,
5206 "action_data" : [],
5207 "action_entry_const" : true
5208 }
5209 },
5210 {
5211 "name" : "tbl_act_8",
5212 "id" : 11,
5213 "key" : [],
5214 "match_type" : "exact",
5215 "type" : "simple",
5216 "max_size" : 1024,
5217 "with_counters" : false,
5218 "support_timeout" : false,
5219 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005220 "action_ids" : [44],
5221 "actions" : ["act_7"],
5222 "base_default_next" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005223 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005224 "act_7" : "tbl_spgw_ingress_gtpu_decap"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005225 },
5226 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005227 "action_id" : 44,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005228 "action_const" : true,
5229 "action_data" : [],
5230 "action_entry_const" : true
5231 }
5232 },
5233 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005234 "name" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005235 "id" : 12,
5236 "key" : [],
5237 "match_type" : "exact",
5238 "type" : "simple",
5239 "max_size" : 1024,
5240 "with_counters" : false,
5241 "support_timeout" : false,
5242 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005243 "action_ids" : [10],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005244 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005245 "base_default_next" : "node_27",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005246 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005247 "FabricIngress.spgw_ingress.gtpu_decap" : "node_27"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005248 },
5249 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005250 "action_id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005251 "action_const" : true,
5252 "action_data" : [],
5253 "action_entry_const" : true
5254 }
5255 },
5256 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005257 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005258 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005259 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005260 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005261 "line" : 68,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005262 "column" : 10,
5263 "source_fragment" : "dl_sess_lookup"
5264 },
5265 "key" : [
5266 {
5267 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005268 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005269 "target" : ["ipv4", "dst_addr"],
5270 "mask" : null
5271 }
5272 ],
5273 "match_type" : "exact",
5274 "type" : "simple",
5275 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005276 "with_counters" : true,
5277 "support_timeout" : false,
5278 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005279 "action_ids" : [11, 0],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005280 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "NoAction"],
5281 "base_default_next" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005282 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005283 "__HIT__" : "tbl_act_9",
5284 "__MISS__" : "tbl_act_10"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005285 },
5286 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005287 "action_id" : 0,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005288 "action_const" : false,
5289 "action_data" : [],
5290 "action_entry_const" : false
5291 }
5292 },
5293 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005294 "name" : "tbl_act_9",
5295 "id" : 14,
5296 "key" : [],
5297 "match_type" : "exact",
5298 "type" : "simple",
5299 "max_size" : 1024,
5300 "with_counters" : false,
5301 "support_timeout" : false,
5302 "direct_meters" : null,
5303 "action_ids" : [45],
5304 "actions" : ["act_8"],
5305 "base_default_next" : "node_24",
5306 "next_tables" : {
5307 "act_8" : "node_24"
5308 },
5309 "default_entry" : {
5310 "action_id" : 45,
5311 "action_const" : true,
5312 "action_data" : [],
5313 "action_entry_const" : true
5314 }
5315 },
5316 {
5317 "name" : "tbl_act_10",
5318 "id" : 15,
5319 "key" : [],
5320 "match_type" : "exact",
5321 "type" : "simple",
5322 "max_size" : 1024,
5323 "with_counters" : false,
5324 "support_timeout" : false,
5325 "direct_meters" : null,
5326 "action_ids" : [46],
5327 "actions" : ["act_9"],
5328 "base_default_next" : "node_24",
5329 "next_tables" : {
5330 "act_9" : "node_24"
5331 },
5332 "default_entry" : {
5333 "action_id" : 46,
5334 "action_const" : true,
5335 "action_data" : [],
5336 "action_entry_const" : true
5337 }
5338 },
5339 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005340 "name" : "tbl_act_11",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005341 "id" : 16,
5342 "key" : [],
5343 "match_type" : "exact",
5344 "type" : "simple",
5345 "max_size" : 1024,
5346 "with_counters" : false,
5347 "support_timeout" : false,
5348 "direct_meters" : null,
5349 "action_ids" : [47],
5350 "actions" : ["act_10"],
5351 "base_default_next" : "node_27",
5352 "next_tables" : {
5353 "act_10" : "node_27"
5354 },
5355 "default_entry" : {
5356 "action_id" : 47,
5357 "action_const" : true,
5358 "action_data" : [],
5359 "action_entry_const" : true
5360 }
5361 },
5362 {
5363 "name" : "tbl_act_12",
5364 "id" : 17,
5365 "key" : [],
5366 "match_type" : "exact",
5367 "type" : "simple",
5368 "max_size" : 1024,
5369 "with_counters" : false,
5370 "support_timeout" : false,
5371 "direct_meters" : null,
5372 "action_ids" : [48],
5373 "actions" : ["act_11"],
5374 "base_default_next" : "node_27",
5375 "next_tables" : {
5376 "act_11" : "node_27"
5377 },
5378 "default_entry" : {
5379 "action_id" : 48,
5380 "action_const" : true,
5381 "action_data" : [],
5382 "action_entry_const" : true
5383 }
5384 },
5385 {
5386 "name" : "tbl_act_13",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005387 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005388 "key" : [],
5389 "match_type" : "exact",
5390 "type" : "simple",
5391 "max_size" : 1024,
5392 "with_counters" : false,
5393 "support_timeout" : false,
5394 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005395 "action_ids" : [50],
5396 "actions" : ["act_13"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005397 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
5398 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005399 "act_13" : "FabricIngress.filtering.ingress_port_vlan"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005400 },
5401 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005402 "action_id" : 50,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005403 "action_const" : true,
5404 "action_data" : [],
5405 "action_entry_const" : true
5406 }
5407 },
5408 {
5409 "name" : "FabricIngress.filtering.ingress_port_vlan",
5410 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005411 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005412 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005413 "line" : 66,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005414 "column" : 10,
5415 "source_fragment" : "ingress_port_vlan"
5416 },
5417 "key" : [
5418 {
5419 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005420 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005421 "target" : ["standard_metadata", "ingress_port"],
5422 "mask" : null
5423 },
5424 {
5425 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005426 "name" : "hdr.vlan_tag.is_valid",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005427 "target" : ["vlan_tag", "$valid$"],
5428 "mask" : null
5429 },
5430 {
5431 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005432 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005433 "target" : ["vlan_tag", "vlan_id"],
5434 "mask" : null
5435 }
5436 ],
5437 "match_type" : "ternary",
5438 "type" : "simple",
5439 "max_size" : 1024,
5440 "with_counters" : true,
5441 "support_timeout" : false,
5442 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005443 "action_ids" : [14, 13, 12, 15],
5444 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "FabricIngress.filtering.drop", "FabricIngress.filtering.nop_ingress_port_vlan"],
5445 "base_default_next" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005446 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005447 "__HIT__" : "tbl_act_14",
5448 "__MISS__" : "tbl_act_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005449 },
5450 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005451 "action_id" : 14,
5452 "action_const" : true,
5453 "action_data" : ["0xffe"],
5454 "action_entry_const" : true
5455 }
5456 },
5457 {
5458 "name" : "tbl_act_14",
5459 "id" : 20,
5460 "key" : [],
5461 "match_type" : "exact",
5462 "type" : "simple",
5463 "max_size" : 1024,
5464 "with_counters" : false,
5465 "support_timeout" : false,
5466 "direct_meters" : null,
5467 "action_ids" : [51],
5468 "actions" : ["act_14"],
5469 "base_default_next" : "node_32",
5470 "next_tables" : {
5471 "act_14" : "node_32"
5472 },
5473 "default_entry" : {
5474 "action_id" : 51,
5475 "action_const" : true,
5476 "action_data" : [],
5477 "action_entry_const" : true
5478 }
5479 },
5480 {
5481 "name" : "tbl_act_15",
5482 "id" : 21,
5483 "key" : [],
5484 "match_type" : "exact",
5485 "type" : "simple",
5486 "max_size" : 1024,
5487 "with_counters" : false,
5488 "support_timeout" : false,
5489 "direct_meters" : null,
5490 "action_ids" : [52],
5491 "actions" : ["act_15"],
5492 "base_default_next" : "node_32",
5493 "next_tables" : {
5494 "act_15" : "node_32"
5495 },
5496 "default_entry" : {
5497 "action_id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005498 "action_const" : true,
5499 "action_data" : [],
5500 "action_entry_const" : true
5501 }
5502 },
5503 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005504 "name" : "FabricIngress.filtering.fwd_classifier",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005505 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005506 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005507 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005508 "line" : 103,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005509 "column" : 10,
5510 "source_fragment" : "fwd_classifier"
5511 },
5512 "key" : [
5513 {
5514 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005515 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005516 "target" : ["standard_metadata", "ingress_port"],
5517 "mask" : null
5518 },
5519 {
Charles Chan384aea22018-08-23 22:08:02 -07005520 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005521 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005522 "target" : ["ethernet", "dst_addr"],
5523 "mask" : null
5524 },
5525 {
5526 "match_type" : "exact",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005527 "name" : "hdr.vlan_tag.ether_type",
5528 "target" : ["vlan_tag", "ether_type"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005529 "mask" : null
5530 }
5531 ],
Charles Chan384aea22018-08-23 22:08:02 -07005532 "match_type" : "ternary",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005533 "type" : "simple",
5534 "max_size" : 1024,
5535 "with_counters" : true,
5536 "support_timeout" : false,
5537 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005538 "action_ids" : [16],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005539 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005540 "base_default_next" : "node_35",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005541 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005542 "FabricIngress.filtering.set_forwarding_type" : "node_35"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005543 },
5544 "default_entry" : {
Charles Chancf696e52018-08-16 16:25:13 -07005545 "action_id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005546 "action_const" : true,
5547 "action_data" : ["0x0"],
5548 "action_entry_const" : true
5549 }
5550 },
5551 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005552 "name" : "tbl_act_16",
5553 "id" : 23,
5554 "key" : [],
5555 "match_type" : "exact",
5556 "type" : "simple",
5557 "max_size" : 1024,
5558 "with_counters" : false,
5559 "support_timeout" : false,
5560 "direct_meters" : null,
5561 "action_ids" : [53],
5562 "actions" : ["act_16"],
5563 "base_default_next" : "node_35",
5564 "next_tables" : {
5565 "act_16" : "node_35"
5566 },
5567 "default_entry" : {
5568 "action_id" : 53,
5569 "action_const" : true,
5570 "action_data" : [],
5571 "action_entry_const" : true
5572 }
5573 },
5574 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005575 "name" : "FabricIngress.forwarding.bridging",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005576 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005577 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005578 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005579 "line" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005580 "column" : 10,
5581 "source_fragment" : "bridging"
5582 },
5583 "key" : [
5584 {
5585 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005586 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005587 "target" : ["vlan_tag", "vlan_id"],
5588 "mask" : null
5589 },
5590 {
5591 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005592 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005593 "target" : ["ethernet", "dst_addr"],
5594 "mask" : null
5595 }
5596 ],
5597 "match_type" : "ternary",
5598 "type" : "simple",
5599 "max_size" : 1024,
5600 "with_counters" : true,
5601 "support_timeout" : false,
5602 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005603 "action_ids" : [17, 2],
Yi Tseng47eac892018-07-11 02:17:04 +08005604 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005605 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005606 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005607 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005608 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005609 },
5610 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005611 "action_id" : 2,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005612 "action_const" : false,
5613 "action_data" : [],
5614 "action_entry_const" : false
5615 }
5616 },
5617 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005618 "name" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005619 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005620 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005621 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005622 "line" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005623 "column" : 10,
5624 "source_fragment" : "mpls"
5625 },
5626 "key" : [
5627 {
5628 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005629 "name" : "hdr.mpls.label",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005630 "target" : ["mpls", "label"],
5631 "mask" : null
5632 }
5633 ],
5634 "match_type" : "exact",
5635 "type" : "simple",
5636 "max_size" : 1024,
5637 "with_counters" : true,
5638 "support_timeout" : false,
5639 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005640 "action_ids" : [18, 3],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005641 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005642 "base_default_next" : "tbl_act_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005643 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005644 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_17",
5645 "NoAction" : "tbl_act_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005646 },
5647 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005648 "action_id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005649 "action_const" : false,
5650 "action_data" : [],
5651 "action_entry_const" : false
5652 }
5653 },
5654 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005655 "name" : "tbl_act_17",
5656 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005657 "key" : [],
5658 "match_type" : "exact",
5659 "type" : "simple",
5660 "max_size" : 1024,
5661 "with_counters" : false,
5662 "support_timeout" : false,
5663 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005664 "action_ids" : [54],
5665 "actions" : ["act_17"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005666 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005667 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005668 "act_17" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005669 },
5670 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005671 "action_id" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005672 "action_const" : true,
5673 "action_data" : [],
5674 "action_entry_const" : true
5675 }
5676 },
5677 {
Charles Chan384aea22018-08-23 22:08:02 -07005678 "name" : "FabricIngress.forwarding.routing_v4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005679 "id" : 27,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005680 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005681 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005682 "line" : 87,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005683 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07005684 "source_fragment" : "routing_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005685 },
5686 "key" : [
5687 {
5688 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005689 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005690 "target" : ["ipv4", "dst_addr"],
5691 "mask" : null
5692 }
5693 ],
5694 "match_type" : "lpm",
5695 "type" : "simple",
5696 "max_size" : 1024,
5697 "with_counters" : true,
5698 "support_timeout" : false,
5699 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005700 "action_ids" : [19, 4],
Charles Chan384aea22018-08-23 22:08:02 -07005701 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005702 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005703 "next_tables" : {
Charles Chan384aea22018-08-23 22:08:02 -07005704 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005705 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005706 },
5707 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005708 "action_id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005709 "action_const" : false,
5710 "action_data" : [],
5711 "action_entry_const" : false
5712 }
5713 },
5714 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005715 "name" : "FabricIngress.forwarding.acl",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005716 "id" : 28,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005717 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005718 "filename" : "include/control/forwarding.p4",
Charles Chancf696e52018-08-16 16:25:13 -07005719 "line" : 131,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005720 "column" : 10,
5721 "source_fragment" : "acl"
5722 },
5723 "key" : [
5724 {
5725 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005726 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005727 "target" : ["standard_metadata", "ingress_port"],
5728 "mask" : null
5729 },
5730 {
5731 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005732 "name" : "fabric_metadata.ip_proto",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005733 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
5734 "mask" : null
5735 },
5736 {
5737 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005738 "name" : "fabric_metadata.l4_src_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005739 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
5740 "mask" : null
5741 },
5742 {
5743 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005744 "name" : "fabric_metadata.l4_dst_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005745 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
5746 "mask" : null
5747 },
5748 {
5749 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005750 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005751 "target" : ["ethernet", "dst_addr"],
5752 "mask" : null
5753 },
5754 {
5755 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005756 "name" : "hdr.ethernet.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005757 "target" : ["ethernet", "src_addr"],
5758 "mask" : null
5759 },
5760 {
5761 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005762 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005763 "target" : ["vlan_tag", "vlan_id"],
5764 "mask" : null
5765 },
5766 {
5767 "match_type" : "ternary",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005768 "name" : "hdr.vlan_tag.ether_type",
5769 "target" : ["vlan_tag", "ether_type"],
5770 "mask" : null
5771 },
5772 {
5773 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005774 "name" : "hdr.ipv4.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005775 "target" : ["ipv4", "src_addr"],
5776 "mask" : null
5777 },
5778 {
5779 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005780 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005781 "target" : ["ipv4", "dst_addr"],
5782 "mask" : null
5783 },
5784 {
5785 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005786 "name" : "hdr.icmp.icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005787 "target" : ["icmp", "icmp_type"],
5788 "mask" : null
5789 },
5790 {
5791 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005792 "name" : "hdr.icmp.icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005793 "target" : ["icmp", "icmp_code"],
5794 "mask" : null
5795 }
5796 ],
5797 "match_type" : "ternary",
5798 "type" : "simple",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005799 "max_size" : 128,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005800 "with_counters" : true,
5801 "support_timeout" : false,
5802 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005803 "action_ids" : [20, 21, 22, 23, 24],
5804 "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 -07005805 "base_default_next" : "tbl_act_18",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005806 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005807 "FabricIngress.forwarding.set_next_id_acl" : "tbl_act_18",
5808 "FabricIngress.forwarding.punt_to_cpu" : "tbl_act_18",
5809 "FabricIngress.forwarding.clone_to_cpu" : "tbl_act_18",
5810 "FabricIngress.forwarding.drop" : "tbl_act_18",
5811 "FabricIngress.forwarding.nop_acl" : "tbl_act_18"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005812 },
5813 "default_entry" : {
Charles Chancf696e52018-08-16 16:25:13 -07005814 "action_id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005815 "action_const" : true,
5816 "action_data" : [],
5817 "action_entry_const" : true
5818 }
5819 },
5820 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005821 "name" : "tbl_act_18",
5822 "id" : 29,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005823 "key" : [],
5824 "match_type" : "exact",
5825 "type" : "simple",
5826 "max_size" : 1024,
5827 "with_counters" : false,
5828 "support_timeout" : false,
5829 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005830 "action_ids" : [55],
5831 "actions" : ["act_18"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005832 "base_default_next" : "FabricIngress.next.vlan_meta",
5833 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005834 "act_18" : "FabricIngress.next.vlan_meta"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005835 },
5836 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005837 "action_id" : 55,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005838 "action_const" : true,
5839 "action_data" : [],
5840 "action_entry_const" : true
5841 }
5842 },
5843 {
5844 "name" : "FabricIngress.next.vlan_meta",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005845 "id" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005846 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005847 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005848 "line" : 65,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005849 "column" : 10,
5850 "source_fragment" : "vlan_meta"
5851 },
5852 "key" : [
5853 {
5854 "match_type" : "exact",
5855 "name" : "fabric_metadata.next_id",
5856 "target" : ["scalars", "fabric_metadata_t.next_id"],
5857 "mask" : null
5858 }
5859 ],
5860 "match_type" : "exact",
5861 "type" : "simple",
5862 "max_size" : 1024,
5863 "with_counters" : true,
5864 "support_timeout" : false,
5865 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005866 "action_ids" : [25, 8],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005867 "actions" : ["FabricIngress.next.set_vlan", "nop"],
5868 "base_default_next" : "FabricIngress.next.simple",
5869 "next_tables" : {
5870 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
5871 "nop" : "FabricIngress.next.simple"
5872 },
5873 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005874 "action_id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005875 "action_const" : false,
5876 "action_data" : [],
5877 "action_entry_const" : false
5878 }
5879 },
5880 {
5881 "name" : "FabricIngress.next.simple",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005882 "id" : 31,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005883 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005884 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005885 "line" : 122,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005886 "column" : 10,
5887 "source_fragment" : "simple"
5888 },
5889 "key" : [
5890 {
5891 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005892 "name" : "fabric_metadata.next_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005893 "target" : ["scalars", "fabric_metadata_t.next_id"],
5894 "mask" : null
5895 }
5896 ],
5897 "match_type" : "exact",
5898 "type" : "simple",
5899 "max_size" : 1024,
5900 "with_counters" : true,
5901 "support_timeout" : false,
5902 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005903 "action_ids" : [26, 27, 28, 29, 30, 31, 5],
Yi Tseng47eac892018-07-11 02:17:04 +08005904 "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 -08005905 "base_default_next" : null,
5906 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005907 "__HIT__" : "tbl_act_19",
5908 "__MISS__" : "tbl_act_20"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005909 },
5910 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005911 "action_id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005912 "action_const" : false,
5913 "action_data" : [],
5914 "action_entry_const" : false
5915 }
5916 },
5917 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005918 "name" : "tbl_act_19",
5919 "id" : 32,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005920 "key" : [],
5921 "match_type" : "exact",
5922 "type" : "simple",
5923 "max_size" : 1024,
5924 "with_counters" : false,
5925 "support_timeout" : false,
5926 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005927 "action_ids" : [56],
5928 "actions" : ["act_19"],
5929 "base_default_next" : "node_48",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005930 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005931 "act_19" : "node_48"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005932 },
5933 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005934 "action_id" : 56,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005935 "action_const" : true,
5936 "action_data" : [],
5937 "action_entry_const" : true
5938 }
5939 },
5940 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005941 "name" : "tbl_act_20",
5942 "id" : 33,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005943 "key" : [],
5944 "match_type" : "exact",
5945 "type" : "simple",
5946 "max_size" : 1024,
5947 "with_counters" : false,
5948 "support_timeout" : false,
5949 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005950 "action_ids" : [57],
5951 "actions" : ["act_20"],
5952 "base_default_next" : "node_48",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005953 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005954 "act_20" : "node_48"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005955 },
5956 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005957 "action_id" : 57,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005958 "action_const" : true,
5959 "action_data" : [],
5960 "action_entry_const" : true
5961 }
5962 },
5963 {
5964 "name" : "FabricIngress.next.hashed",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005965 "id" : 34,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005966 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005967 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005968 "line" : 175,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005969 "column" : 10,
5970 "source_fragment" : "hashed"
5971 },
5972 "key" : [
5973 {
5974 "match_type" : "exact",
5975 "name" : "fabric_metadata.next_id",
5976 "target" : ["scalars", "fabric_metadata_t.next_id"],
5977 "mask" : null
5978 }
5979 ],
5980 "match_type" : "exact",
5981 "type" : "indirect_ws",
5982 "action_profile" : "FabricIngress.next.ecmp_selector",
5983 "max_size" : 1024,
5984 "with_counters" : true,
5985 "support_timeout" : false,
5986 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005987 "action_ids" : [32, 33, 34, 6],
Yi Tseng47eac892018-07-11 02:17:04 +08005988 "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 +02005989 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005990 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005991 "__HIT__" : "tbl_act_21",
5992 "__MISS__" : "tbl_act_22"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005993 }
5994 },
5995 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005996 "name" : "tbl_act_21",
5997 "id" : 35,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005998 "key" : [],
5999 "match_type" : "exact",
6000 "type" : "simple",
6001 "max_size" : 1024,
6002 "with_counters" : false,
6003 "support_timeout" : false,
6004 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006005 "action_ids" : [58],
6006 "actions" : ["act_21"],
6007 "base_default_next" : "node_52",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006008 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006009 "act_21" : "node_52"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006010 },
6011 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006012 "action_id" : 58,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006013 "action_const" : true,
6014 "action_data" : [],
6015 "action_entry_const" : true
6016 }
6017 },
6018 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006019 "name" : "tbl_act_22",
6020 "id" : 36,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006021 "key" : [],
6022 "match_type" : "exact",
6023 "type" : "simple",
6024 "max_size" : 1024,
6025 "with_counters" : false,
6026 "support_timeout" : false,
6027 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006028 "action_ids" : [59],
6029 "actions" : ["act_22"],
6030 "base_default_next" : "node_52",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006031 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006032 "act_22" : "node_52"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006033 },
6034 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006035 "action_id" : 59,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006036 "action_const" : true,
6037 "action_data" : [],
6038 "action_entry_const" : true
Esin Karaman971fb7f2017-12-28 13:44:52 +00006039 }
6040 },
6041 {
6042 "name" : "FabricIngress.next.multicast",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006043 "id" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006044 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006045 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006046 "line" : 207,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006047 "column" : 10,
6048 "source_fragment" : "multicast"
6049 },
6050 "key" : [
6051 {
6052 "match_type" : "exact",
6053 "name" : "fabric_metadata.next_id",
6054 "target" : ["scalars", "fabric_metadata_t.next_id"],
6055 "mask" : null
6056 }
6057 ],
6058 "match_type" : "exact",
6059 "type" : "simple",
6060 "max_size" : 1024,
6061 "with_counters" : true,
6062 "support_timeout" : false,
6063 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006064 "action_ids" : [35, 7],
Esin Karaman971fb7f2017-12-28 13:44:52 +00006065 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006066 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006067 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006068 "__HIT__" : "tbl_act_23",
6069 "__MISS__" : "tbl_act_24"
Esin Karaman971fb7f2017-12-28 13:44:52 +00006070 },
6071 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006072 "action_id" : 7,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006073 "action_const" : false,
6074 "action_data" : [],
6075 "action_entry_const" : false
Yi Tseng27b9bc02018-04-12 14:52:40 +08006076 }
6077 },
6078 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006079 "name" : "tbl_act_23",
6080 "id" : 38,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006081 "key" : [],
6082 "match_type" : "exact",
6083 "type" : "simple",
6084 "max_size" : 1024,
6085 "with_counters" : false,
6086 "support_timeout" : false,
6087 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006088 "action_ids" : [60],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006089 "actions" : ["act_23"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006090 "base_default_next" : "node_56",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006091 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006092 "act_23" : "node_56"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006093 },
6094 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006095 "action_id" : 60,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006096 "action_const" : true,
6097 "action_data" : [],
6098 "action_entry_const" : true
6099 }
6100 },
6101 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006102 "name" : "tbl_act_24",
6103 "id" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006104 "key" : [],
6105 "match_type" : "exact",
6106 "type" : "simple",
6107 "max_size" : 1024,
6108 "with_counters" : false,
6109 "support_timeout" : false,
6110 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006111 "action_ids" : [61],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006112 "actions" : ["act_24"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006113 "base_default_next" : "node_56",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006114 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006115 "act_24" : "node_56"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006116 },
6117 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006118 "action_id" : 61,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006119 "action_const" : true,
6120 "action_data" : [],
6121 "action_entry_const" : true
6122 }
6123 },
6124 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006125 "name" : "tbl_act_25",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006126 "id" : 40,
6127 "key" : [],
6128 "match_type" : "exact",
6129 "type" : "simple",
6130 "max_size" : 1024,
6131 "with_counters" : false,
6132 "support_timeout" : false,
6133 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006134 "action_ids" : [62],
6135 "actions" : ["act_25"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006136 "base_default_next" : "node_58",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006137 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006138 "act_25" : "node_58"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006139 },
6140 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006141 "action_id" : 62,
Carmelo Cascone14cde402018-01-25 01:57:18 -08006142 "action_const" : true,
6143 "action_data" : [],
6144 "action_entry_const" : true
6145 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006146 },
6147 {
6148 "name" : "tbl_act_26",
6149 "id" : 41,
6150 "key" : [],
6151 "match_type" : "exact",
6152 "type" : "simple",
6153 "max_size" : 1024,
6154 "with_counters" : false,
6155 "support_timeout" : false,
6156 "direct_meters" : null,
6157 "action_ids" : [63],
6158 "actions" : ["act_26"],
6159 "base_default_next" : "node_62",
6160 "next_tables" : {
6161 "act_26" : "node_62"
6162 },
6163 "default_entry" : {
6164 "action_id" : 63,
6165 "action_const" : true,
6166 "action_data" : [],
6167 "action_entry_const" : true
6168 }
6169 },
6170 {
6171 "name" : "tbl_act_27",
6172 "id" : 42,
6173 "key" : [],
6174 "match_type" : "exact",
6175 "type" : "simple",
6176 "max_size" : 1024,
6177 "with_counters" : false,
6178 "support_timeout" : false,
6179 "direct_meters" : null,
6180 "action_ids" : [64],
6181 "actions" : ["act_27"],
6182 "base_default_next" : "node_64",
6183 "next_tables" : {
6184 "act_27" : "node_64"
6185 },
6186 "default_entry" : {
6187 "action_id" : 64,
6188 "action_const" : true,
6189 "action_data" : [],
6190 "action_entry_const" : true
6191 }
6192 },
6193 {
6194 "name" : "tbl_act_28",
6195 "id" : 43,
6196 "key" : [],
6197 "match_type" : "exact",
6198 "type" : "simple",
6199 "max_size" : 1024,
6200 "with_counters" : false,
6201 "support_timeout" : false,
6202 "direct_meters" : null,
6203 "action_ids" : [65],
6204 "actions" : ["act_28"],
6205 "base_default_next" : null,
6206 "next_tables" : {
6207 "act_28" : null
6208 },
6209 "default_entry" : {
6210 "action_id" : 65,
6211 "action_const" : true,
6212 "action_data" : [],
6213 "action_entry_const" : true
6214 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006215 }
6216 ],
6217 "action_profiles" : [
6218 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006219 "name" : "FabricIngress.next.ecmp_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006220 "id" : 0,
6221 "max_size" : 64,
6222 "selector" : {
6223 "algo" : "crc16",
6224 "input" : [
6225 {
6226 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08006227 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006228 },
6229 {
6230 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08006231 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006232 },
6233 {
6234 "type" : "field",
6235 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
6236 },
6237 {
6238 "type" : "field",
6239 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
6240 },
6241 {
6242 "type" : "field",
6243 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
6244 }
6245 ]
6246 }
6247 }
6248 ],
6249 "conditionals" : [
6250 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006251 "name" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006252 "id" : 0,
6253 "source_info" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006254 "filename" : "include/spgw.p4",
6255 "line" : 30,
6256 "column" : 12,
6257 "source_fragment" : "! is_gtpu_encapped"
6258 },
6259 "expression" : {
6260 "type" : "expression",
6261 "value" : {
6262 "op" : "not",
6263 "left" : null,
6264 "right" : {
6265 "type" : "expression",
6266 "value" : {
6267 "op" : "d2b",
6268 "left" : null,
6269 "right" : {
6270 "type" : "field",
6271 "value" : ["gtpu", "$valid$"]
6272 }
6273 }
6274 }
6275 }
6276 },
6277 "true_next" : "tbl_act_0",
6278 "false_next" : "node_5"
6279 },
6280 {
6281 "name" : "node_5",
6282 "id" : 1,
6283 "expression" : {
6284 "type" : "expression",
6285 "value" : {
6286 "op" : "not",
6287 "left" : null,
6288 "right" : {
6289 "type" : "expression",
6290 "value" : {
6291 "op" : "d2b",
6292 "left" : null,
6293 "right" : {
6294 "type" : "field",
6295 "value" : ["scalars", "spgw_normalizer_hasReturned_0"]
6296 }
6297 }
6298 }
6299 }
6300 },
6301 "true_next" : "tbl_act_1",
6302 "false_next" : "node_10"
6303 },
6304 {
6305 "name" : "node_7",
6306 "id" : 2,
6307 "source_info" : {
6308 "filename" : "include/spgw.p4",
6309 "line" : 34,
6310 "column" : 12,
6311 "source_fragment" : "inner_udp.isValid()"
6312 },
6313 "expression" : {
6314 "type" : "expression",
6315 "value" : {
6316 "op" : "d2b",
6317 "left" : null,
6318 "right" : {
6319 "type" : "field",
6320 "value" : ["inner_udp", "$valid$"]
6321 }
6322 }
6323 },
6324 "true_next" : "tbl_act_2",
6325 "false_next" : "tbl_act_3"
6326 },
6327 {
6328 "name" : "node_10",
6329 "id" : 3,
6330 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006331 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006332 "line" : 25,
6333 "column" : 12,
6334 "source_fragment" : "hdr.packet_out.isValid()"
6335 },
6336 "expression" : {
6337 "type" : "expression",
6338 "value" : {
6339 "op" : "d2b",
6340 "left" : null,
6341 "right" : {
6342 "type" : "field",
6343 "value" : ["packet_out", "$valid$"]
6344 }
6345 }
6346 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006347 "true_next" : "tbl_act_4",
6348 "false_next" : "tbl_act_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006349 },
6350 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006351 "name" : "node_13",
6352 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006353 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006354 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006355 "line" : 139,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006356 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006357 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006358 },
6359 "expression" : {
6360 "type" : "expression",
6361 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006362 "op" : "d2b",
6363 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006364 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006365 "type" : "field",
6366 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006367 }
6368 }
6369 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006370 "true_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
6371 "false_next" : "FabricIngress.spgw_ingress.dl_sess_lookup"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006372 },
6373 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006374 "name" : "node_17",
6375 "id" : 5,
6376 "source_info" : {
6377 "filename" : "include/spgw.p4",
6378 "line" : 143,
6379 "column" : 16,
6380 "source_fragment" : "!s1u_filter_table.apply().hit"
6381 },
6382 "expression" : {
6383 "type" : "expression",
6384 "value" : {
6385 "op" : "not",
6386 "left" : null,
6387 "right" : {
6388 "type" : "expression",
6389 "value" : {
6390 "op" : "d2b",
6391 "left" : null,
6392 "right" : {
6393 "type" : "field",
6394 "value" : ["scalars", "spgw_ingress_tmp_1"]
6395 }
6396 }
6397 }
6398 }
6399 },
6400 "true_next" : "tbl_drop_now",
6401 "false_next" : "tbl_act_8"
6402 },
6403 {
6404 "name" : "node_24",
6405 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006406 "expression" : {
6407 "type" : "expression",
6408 "value" : {
6409 "op" : "d2b",
6410 "left" : null,
6411 "right" : {
6412 "type" : "field",
6413 "value" : ["scalars", "spgw_ingress_tmp_2"]
6414 }
6415 }
6416 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006417 "true_next" : "tbl_act_11",
6418 "false_next" : "tbl_act_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006419 },
6420 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006421 "name" : "node_27",
6422 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006423 "expression" : {
6424 "type" : "expression",
6425 "value" : {
6426 "op" : "not",
6427 "left" : null,
6428 "right" : {
6429 "type" : "expression",
6430 "value" : {
6431 "op" : "d2b",
6432 "left" : null,
6433 "right" : {
6434 "type" : "field",
6435 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
6436 }
6437 }
6438 }
6439 }
6440 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006441 "true_next" : "tbl_act_13",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006442 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006443 },
6444 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006445 "name" : "node_32",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006446 "id" : 8,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006447 "expression" : {
6448 "type" : "expression",
6449 "value" : {
6450 "op" : "d2b",
6451 "left" : null,
6452 "right" : {
6453 "type" : "field",
6454 "value" : ["scalars", "filtering_tmp_0"]
6455 }
6456 }
6457 },
6458 "true_next" : "FabricIngress.filtering.fwd_classifier",
6459 "false_next" : "tbl_act_16"
6460 },
6461 {
6462 "name" : "node_35",
6463 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006464 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006465 "filename" : "include/control/forwarding.p4",
Charles Chan384aea22018-08-23 22:08:02 -07006466 "line" : 186,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006467 "column" : 11,
6468 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
6469 },
6470 "expression" : {
6471 "type" : "expression",
6472 "value" : {
6473 "op" : "==",
6474 "left" : {
6475 "type" : "field",
6476 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6477 },
6478 "right" : {
6479 "type" : "hexstr",
6480 "value" : "0x00"
6481 }
6482 }
6483 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006484 "true_next" : "FabricIngress.forwarding.bridging",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006485 "false_next" : "node_37"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006486 },
6487 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006488 "name" : "node_37",
6489 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006490 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006491 "filename" : "include/control/forwarding.p4",
Charles Chan384aea22018-08-23 22:08:02 -07006492 "line" : 187,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006493 "column" : 17,
6494 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
6495 },
6496 "expression" : {
6497 "type" : "expression",
6498 "value" : {
6499 "op" : "==",
6500 "left" : {
6501 "type" : "field",
6502 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6503 },
6504 "right" : {
6505 "type" : "hexstr",
6506 "value" : "0x01"
6507 }
6508 }
6509 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006510 "true_next" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006511 "false_next" : "node_40"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006512 },
6513 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006514 "name" : "node_40",
6515 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006516 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006517 "filename" : "include/control/forwarding.p4",
Charles Chan384aea22018-08-23 22:08:02 -07006518 "line" : 193,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006519 "column" : 17,
6520 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
6521 },
6522 "expression" : {
6523 "type" : "expression",
6524 "value" : {
6525 "op" : "==",
6526 "left" : {
6527 "type" : "field",
6528 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6529 },
6530 "right" : {
6531 "type" : "hexstr",
6532 "value" : "0x02"
6533 }
6534 }
6535 },
Charles Chan384aea22018-08-23 22:08:02 -07006536 "true_next" : "FabricIngress.forwarding.routing_v4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006537 "false_next" : "FabricIngress.forwarding.acl"
6538 },
6539 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006540 "name" : "node_48",
6541 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006542 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006543 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08006544 "line" : 219,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006545 "column" : 12,
6546 "source_fragment" : "!simple.apply().hit"
6547 },
6548 "expression" : {
6549 "type" : "expression",
6550 "value" : {
6551 "op" : "not",
6552 "left" : null,
6553 "right" : {
6554 "type" : "expression",
6555 "value" : {
6556 "op" : "d2b",
6557 "left" : null,
6558 "right" : {
6559 "type" : "field",
6560 "value" : ["scalars", "next_tmp_4"]
6561 }
6562 }
6563 }
6564 }
6565 },
6566 "true_next" : "FabricIngress.next.hashed",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006567 "false_next" : "node_58"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006568 },
6569 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006570 "name" : "node_52",
6571 "id" : 13,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006572 "source_info" : {
6573 "filename" : "include/control/next.p4",
6574 "line" : 220,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006575 "column" : 16,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006576 "source_fragment" : "!hashed.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_3"]
6591 }
6592 }
6593 }
6594 }
6595 },
6596 "true_next" : "FabricIngress.next.multicast",
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_56",
6601 "id" : 14,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006602 "source_info" : {
6603 "filename" : "include/control/next.p4",
6604 "line" : 221,
6605 "column" : 20,
6606 "source_fragment" : "!multicast.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_2"]
6621 }
6622 }
6623 }
6624 }
6625 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006626 "true_next" : "tbl_act_25",
6627 "false_next" : "node_58"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006628 },
6629 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006630 "name" : "node_58",
6631 "id" : 15,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006632 "expression" : {
6633 "type" : "expression",
6634 "value" : {
6635 "op" : "not",
6636 "left" : null,
6637 "right" : {
6638 "type" : "expression",
6639 "value" : {
6640 "op" : "d2b",
6641 "left" : null,
6642 "right" : {
6643 "type" : "field",
6644 "value" : ["scalars", "next_hasReturned_0"]
6645 }
6646 }
6647 }
6648 }
6649 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006650 "true_next" : "node_59",
6651 "false_next" : "node_62"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006652 },
6653 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006654 "name" : "node_59",
6655 "id" : 16,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006656 "source_info" : {
6657 "filename" : "include/control/next.p4",
6658 "line" : 228,
6659 "column" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006660 "source_fragment" : "!hdr.mpls.isValid()"
6661 },
6662 "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" : ["mpls", "$valid$"]
6675 }
6676 }
6677 }
6678 }
6679 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006680 "true_next" : "node_60",
6681 "false_next" : "node_62"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006682 },
6683 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006684 "name" : "node_60",
6685 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006686 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006687 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006688 "line" : 229,
6689 "column" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006690 "source_fragment" : "hdr.ipv4.isValid()"
6691 },
6692 "expression" : {
6693 "type" : "expression",
6694 "value" : {
6695 "op" : "d2b",
6696 "left" : null,
6697 "right" : {
6698 "type" : "field",
6699 "value" : ["ipv4", "$valid$"]
6700 }
6701 }
6702 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006703 "true_next" : "tbl_act_26",
6704 "false_next" : "node_62"
Yi Tseng27b9bc02018-04-12 14:52:40 +08006705 },
6706 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006707 "name" : "node_62",
6708 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006709 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006710 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006711 "line" : 27,
6712 "column" : 12,
6713 "source_fragment" : "standard_metadata.egress_spec < 511"
6714 },
6715 "expression" : {
6716 "type" : "expression",
6717 "value" : {
6718 "op" : "<",
6719 "left" : {
6720 "type" : "field",
6721 "value" : ["standard_metadata", "egress_spec"]
6722 },
6723 "right" : {
6724 "type" : "hexstr",
6725 "value" : "0x01ff"
6726 }
6727 }
6728 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006729 "true_next" : "tbl_act_27",
6730 "false_next" : "node_64"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006731 },
6732 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006733 "name" : "node_64",
6734 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006735 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006736 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006737 "line" : 30,
6738 "column" : 12,
6739 "source_fragment" : "standard_metadata.ingress_port < 511"
6740 },
6741 "expression" : {
6742 "type" : "expression",
6743 "value" : {
6744 "op" : "<",
6745 "left" : {
6746 "type" : "field",
6747 "value" : ["standard_metadata", "ingress_port"]
6748 },
6749 "right" : {
6750 "type" : "hexstr",
6751 "value" : "0x01ff"
6752 }
6753 }
6754 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006755 "false_next" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006756 "true_next" : "tbl_act_28"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006757 }
6758 ]
6759 },
6760 {
6761 "name" : "egress",
6762 "id" : 1,
6763 "source_info" : {
6764 "filename" : "fabric.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006765 "line" : 80,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006766 "column" : 8,
6767 "source_fragment" : "FabricEgress"
6768 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006769 "init_table" : "node_68",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006770 "tables" : [
6771 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006772 "name" : "tbl_drop_now_0",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006773 "id" : 44,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006774 "key" : [],
6775 "match_type" : "exact",
6776 "type" : "simple",
6777 "max_size" : 1024,
6778 "with_counters" : false,
6779 "support_timeout" : false,
6780 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006781 "action_ids" : [67],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006782 "actions" : ["drop_now"],
6783 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6784 "next_tables" : {
6785 "drop_now" : "FabricEgress.egress_next.egress_vlan"
6786 },
6787 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006788 "action_id" : 67,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006789 "action_const" : true,
6790 "action_data" : [],
6791 "action_entry_const" : true
6792 }
6793 },
6794 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006795 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006796 "id" : 45,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006797 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006798 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006799 "line" : 258,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006800 "column" : 10,
6801 "source_fragment" : "egress_vlan"
6802 },
6803 "key" : [
6804 {
6805 "match_type" : "exact",
6806 "name" : "hdr.vlan_tag.vlan_id",
6807 "target" : ["vlan_tag", "vlan_id"],
6808 "mask" : null
6809 },
6810 {
6811 "match_type" : "exact",
6812 "name" : "standard_metadata.egress_port",
6813 "target" : ["standard_metadata", "egress_port"],
6814 "mask" : null
6815 }
6816 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006817 "match_type" : "exact",
6818 "type" : "simple",
6819 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08006820 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006821 "support_timeout" : false,
6822 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006823 "action_ids" : [71, 66],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006824 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006825 "base_default_next" : "node_71",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006826 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006827 "FabricEgress.egress_next.pop_vlan" : "node_71",
6828 "nop" : "node_71"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006829 },
6830 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006831 "action_id" : 66,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006832 "action_const" : false,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006833 "action_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006834 "action_entry_const" : false
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006835 }
6836 },
6837 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006838 "name" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006839 "id" : 46,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006840 "key" : [],
6841 "match_type" : "exact",
6842 "type" : "simple",
6843 "max_size" : 1024,
6844 "with_counters" : false,
6845 "support_timeout" : false,
6846 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006847 "action_ids" : [70],
6848 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
6849 "base_default_next" : "node_74",
6850 "next_tables" : {
6851 "FabricEgress.pkt_io_egress.pop_vlan" : "node_74"
6852 },
6853 "default_entry" : {
6854 "action_id" : 70,
6855 "action_const" : true,
6856 "action_data" : [],
6857 "action_entry_const" : true
6858 }
6859 },
6860 {
6861 "name" : "tbl_drop_now_1",
6862 "id" : 47,
6863 "key" : [],
6864 "match_type" : "exact",
6865 "type" : "simple",
6866 "max_size" : 1024,
6867 "with_counters" : false,
6868 "support_timeout" : false,
6869 "direct_meters" : null,
6870 "action_ids" : [68],
6871 "actions" : ["drop_now"],
6872 "base_default_next" : "tbl_act_29",
6873 "next_tables" : {
6874 "drop_now" : "tbl_act_29"
6875 },
6876 "default_entry" : {
6877 "action_id" : 68,
6878 "action_const" : true,
6879 "action_data" : [],
6880 "action_entry_const" : true
6881 }
6882 },
6883 {
6884 "name" : "tbl_act_29",
6885 "id" : 48,
6886 "key" : [],
6887 "match_type" : "exact",
6888 "type" : "simple",
6889 "max_size" : 1024,
6890 "with_counters" : false,
6891 "support_timeout" : false,
6892 "direct_meters" : null,
6893 "action_ids" : [72],
6894 "actions" : ["act_29"],
6895 "base_default_next" : "node_77",
6896 "next_tables" : {
6897 "act_29" : "node_77"
6898 },
6899 "default_entry" : {
6900 "action_id" : 72,
6901 "action_const" : true,
6902 "action_data" : [],
6903 "action_entry_const" : true
6904 }
6905 },
6906 {
6907 "name" : "tbl_spgw_egress_gtpu_encap",
6908 "id" : 49,
6909 "key" : [],
6910 "match_type" : "exact",
6911 "type" : "simple",
6912 "max_size" : 1024,
6913 "with_counters" : false,
6914 "support_timeout" : false,
6915 "direct_meters" : null,
6916 "action_ids" : [69],
Yi Tseng27b9bc02018-04-12 14:52:40 +08006917 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006918 "base_default_next" : null,
6919 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006920 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006921 },
6922 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006923 "action_id" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006924 "action_const" : true,
6925 "action_data" : [],
6926 "action_entry_const" : true
6927 }
6928 }
6929 ],
6930 "action_profiles" : [],
6931 "conditionals" : [
6932 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006933 "name" : "node_68",
6934 "id" : 20,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006935 "source_info" : {
6936 "filename" : "include/control/next.p4",
6937 "line" : 272,
6938 "column" : 12,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006939 "source_fragment" : "fabric_metadata.is_multicast == true ..."
Carmelo Casconea5400af2018-07-17 22:11:54 +02006940 },
6941 "expression" : {
6942 "type" : "expression",
6943 "value" : {
6944 "op" : "and",
6945 "left" : {
6946 "type" : "expression",
6947 "value" : {
6948 "op" : "==",
6949 "left" : {
6950 "type" : "expression",
6951 "value" : {
6952 "op" : "d2b",
6953 "left" : null,
6954 "right" : {
6955 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006956 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02006957 }
6958 }
6959 },
6960 "right" : {
6961 "type" : "bool",
6962 "value" : true
6963 }
6964 }
6965 },
6966 "right" : {
6967 "type" : "expression",
6968 "value" : {
6969 "op" : "==",
6970 "left" : {
6971 "type" : "field",
6972 "value" : ["standard_metadata", "ingress_port"]
6973 },
6974 "right" : {
6975 "type" : "field",
6976 "value" : ["standard_metadata", "egress_port"]
6977 }
6978 }
6979 }
6980 }
6981 },
6982 "true_next" : "tbl_drop_now_0",
6983 "false_next" : "FabricEgress.egress_next.egress_vlan"
6984 },
6985 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006986 "name" : "node_71",
6987 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006988 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006989 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006990 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006991 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08006992 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006993 },
6994 "expression" : {
6995 "type" : "expression",
6996 "value" : {
6997 "op" : "==",
6998 "left" : {
6999 "type" : "field",
7000 "value" : ["standard_metadata", "egress_port"]
7001 },
7002 "right" : {
7003 "type" : "hexstr",
7004 "value" : "0x00ff"
7005 }
7006 }
7007 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007008 "true_next" : "node_72",
7009 "false_next" : "node_77"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007010 },
7011 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007012 "name" : "node_72",
7013 "id" : 22,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007014 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007015 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007016 "line" : 43,
7017 "column" : 16,
Carmelo Cascone228092b2018-06-15 20:41:10 +02007018 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in == true"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007019 },
7020 "expression" : {
7021 "type" : "expression",
7022 "value" : {
7023 "op" : "and",
7024 "left" : {
7025 "type" : "expression",
7026 "value" : {
7027 "op" : "d2b",
7028 "left" : null,
7029 "right" : {
7030 "type" : "field",
7031 "value" : ["vlan_tag", "$valid$"]
7032 }
7033 }
7034 },
7035 "right" : {
7036 "type" : "expression",
7037 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02007038 "op" : "==",
7039 "left" : {
7040 "type" : "expression",
7041 "value" : {
7042 "op" : "d2b",
7043 "left" : null,
7044 "right" : {
7045 "type" : "field",
7046 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
7047 }
7048 }
7049 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007050 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02007051 "type" : "bool",
7052 "value" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007053 }
7054 }
7055 }
7056 }
7057 },
7058 "true_next" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007059 "false_next" : "node_74"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02007060 },
7061 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007062 "name" : "node_74",
7063 "id" : 23,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02007064 "source_info" : {
7065 "filename" : "include/control/packetio.p4",
7066 "line" : 46,
7067 "column" : 16,
7068 "source_fragment" : "fabric_metadata.is_multicast == true && ..."
7069 },
7070 "expression" : {
7071 "type" : "expression",
7072 "value" : {
7073 "op" : "and",
7074 "left" : {
7075 "type" : "expression",
7076 "value" : {
7077 "op" : "==",
7078 "left" : {
7079 "type" : "expression",
7080 "value" : {
7081 "op" : "d2b",
7082 "left" : null,
7083 "right" : {
7084 "type" : "field",
7085 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
7086 }
7087 }
7088 },
7089 "right" : {
7090 "type" : "bool",
7091 "value" : true
7092 }
7093 }
7094 },
7095 "right" : {
7096 "type" : "expression",
7097 "value" : {
7098 "op" : "==",
7099 "left" : {
7100 "type" : "expression",
7101 "value" : {
7102 "op" : "d2b",
7103 "left" : null,
7104 "right" : {
7105 "type" : "field",
7106 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
7107 }
7108 }
7109 },
7110 "right" : {
7111 "type" : "bool",
7112 "value" : false
7113 }
7114 }
7115 }
7116 }
7117 },
7118 "true_next" : "tbl_drop_now_1",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007119 "false_next" : "tbl_act_29"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007120 },
7121 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07007122 "name" : "node_77",
7123 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007124 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007125 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07007126 "line" : 221,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007127 "column" : 12,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007128 "source_fragment" : "spgw_meta.direction == SPGW_DIR_DOWNLINK"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007129 },
7130 "expression" : {
7131 "type" : "expression",
7132 "value" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007133 "op" : "==",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007134 "left" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007135 "type" : "field",
7136 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007137 },
7138 "right" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07007139 "type" : "hexstr",
7140 "value" : "0x02"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007141 }
7142 }
7143 },
7144 "false_next" : null,
7145 "true_next" : "tbl_spgw_egress_gtpu_encap"
7146 }
7147 ]
7148 }
7149 ],
7150 "checksums" : [
7151 {
7152 "name" : "cksum",
7153 "id" : 0,
7154 "target" : ["ipv4", "hdr_checksum"],
7155 "type" : "generic",
7156 "calculation" : "calc",
7157 "if_cond" : {
7158 "type" : "expression",
7159 "value" : {
7160 "op" : "d2b",
7161 "left" : null,
7162 "right" : {
7163 "type" : "field",
7164 "value" : ["ipv4", "$valid$"]
7165 }
7166 }
7167 }
7168 },
7169 {
7170 "name" : "cksum_0",
7171 "id" : 1,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007172 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007173 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007174 "calculation" : "calc_0",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007175 "if_cond" : {
7176 "type" : "expression",
7177 "value" : {
7178 "op" : "d2b",
7179 "left" : null,
7180 "right" : {
7181 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007182 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007183 }
7184 }
7185 }
7186 },
7187 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007188 "name" : "cksum_1",
7189 "id" : 2,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007190 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007191 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007192 "calculation" : "calc_1",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007193 "if_cond" : {
7194 "type" : "expression",
7195 "value" : {
7196 "op" : "d2b",
7197 "left" : null,
7198 "right" : {
7199 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007200 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007201 }
7202 }
7203 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007204 }
7205 ],
7206 "force_arith" : [],
7207 "extern_instances" : [],
7208 "field_aliases" : [
7209 [
7210 "queueing_metadata.enq_timestamp",
7211 ["standard_metadata", "enq_timestamp"]
7212 ],
7213 [
7214 "queueing_metadata.enq_qdepth",
7215 ["standard_metadata", "enq_qdepth"]
7216 ],
7217 [
7218 "queueing_metadata.deq_timedelta",
7219 ["standard_metadata", "deq_timedelta"]
7220 ],
7221 [
7222 "queueing_metadata.deq_qdepth",
7223 ["standard_metadata", "deq_qdepth"]
7224 ],
7225 [
7226 "intrinsic_metadata.ingress_global_timestamp",
7227 ["standard_metadata", "ingress_global_timestamp"]
7228 ],
7229 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08007230 "intrinsic_metadata.egress_global_timestamp",
7231 ["standard_metadata", "egress_global_timestamp"]
7232 ],
7233 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007234 "intrinsic_metadata.lf_field_list",
7235 ["standard_metadata", "lf_field_list"]
7236 ],
7237 [
7238 "intrinsic_metadata.mcast_grp",
7239 ["standard_metadata", "mcast_grp"]
7240 ],
7241 [
7242 "intrinsic_metadata.resubmit_flag",
7243 ["standard_metadata", "resubmit_flag"]
7244 ],
7245 [
7246 "intrinsic_metadata.egress_rid",
7247 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08007248 ],
7249 [
7250 "intrinsic_metadata.recirculate_flag",
7251 ["standard_metadata", "recirculate_flag"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007252 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007253 ],
7254 "program" : "fabric.p4",
7255 "__meta__" : {
7256 "version" : [2, 18],
7257 "compiler" : "https://github.com/p4lang/p4c"
7258 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007259}