blob: ebf574325373e113856d9d1e921b4861363595c6 [file] [log] [blame]
Yi Tsengbe342052017-11-03 10:21:23 -07001{
Yi Tseng1d842672017-11-28 16:06:52 -08002 "program" : "p4c-out/bmv2/fabric.p4i",
Yi Tsengbe342052017-11-03 10:21:23 -07003 "__meta__" : {
4 "version" : [2, 7],
5 "compiler" : "https://github.com/p4lang/p4c"
6 },
7 "header_types" : [
8 {
9 "name" : "scalars_0",
10 "id" : 0,
11 "fields" : [
Yi Tsengc6844f52017-12-19 11:58:25 -080012 ["tmp", 4, false],
13 ["tmp_0", 32, false],
Yi Tsengbe342052017-11-03 10:21:23 -070014 ["tmp_1", 32, false],
Yi Tseng1d842672017-11-28 16:06:52 -080015 ["next_tmp_0", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070016 ["fabric_metadata_t.fwd_type", 3, false],
17 ["fabric_metadata_t.next_id", 32, false],
Yi Tseng20f9e7b2018-05-24 23:27:39 +080018 ["fabric_metadata_t.pop_vlan_when_packet_in", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070019 ["fabric_metadata_t.ip_proto", 8, false],
20 ["fabric_metadata_t.l4_src_port", 16, false],
Yi Tsengf55eaa82017-11-29 15:51:28 -080021 ["fabric_metadata_t.l4_dst_port", 16, false],
Yi Tseng1d842672017-11-28 16:06:52 -080022 ["fabric_metadata_t.original_ether_type", 16, false],
Yi Tsengc6844f52017-12-19 11:58:25 -080023 ["_padding_0", 7, false]
24 ]
25 },
26 {
27 "name" : "ethernet_t",
28 "id" : 1,
29 "fields" : [
30 ["dst_addr", 48, false],
31 ["src_addr", 48, false],
32 ["ether_type", 16, false]
33 ]
34 },
35 {
36 "name" : "vlan_tag_t",
37 "id" : 2,
38 "fields" : [
39 ["pri", 3, false],
40 ["cfi", 1, false],
41 ["vlan_id", 12, false],
42 ["ether_type", 16, false]
43 ]
44 },
45 {
46 "name" : "mpls_t",
47 "id" : 3,
48 "fields" : [
49 ["label", 20, false],
50 ["tc", 3, false],
51 ["bos", 1, false],
52 ["ttl", 8, false]
Yi Tsengbe342052017-11-03 10:21:23 -070053 ]
54 },
55 {
56 "name" : "ipv4_t",
Yi Tsengc6844f52017-12-19 11:58:25 -080057 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -070058 "fields" : [
59 ["version", 4, false],
60 ["ihl", 4, false],
61 ["diffserv", 8, false],
62 ["total_len", 16, false],
63 ["identification", 16, false],
64 ["flags", 3, false],
65 ["frag_offset", 13, false],
66 ["ttl", 8, false],
67 ["protocol", 8, false],
68 ["hdr_checksum", 16, false],
69 ["src_addr", 32, false],
70 ["dst_addr", 32, false]
71 ]
72 },
73 {
Yi Tseng27b9bc02018-04-12 14:52:40 +080074 "name" : "ipv6_t",
Carmelo Casconeb531b682018-01-30 17:55:56 -080075 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -070076 "fields" : [
Yi Tseng27b9bc02018-04-12 14:52:40 +080077 ["version", 4, false],
78 ["traffic_class", 8, false],
79 ["flow_label", 20, false],
80 ["payload_len", 16, false],
81 ["next_hdr", 8, false],
82 ["hop_limit", 8, false],
83 ["src_addr", 128, false],
84 ["dst_addr", 128, false]
85 ]
86 },
87 {
88 "name" : "arp_t",
89 "id" : 6,
90 "fields" : [
Yi Tsengbe342052017-11-03 10:21:23 -070091 ["hw_type", 16, false],
92 ["proto_type", 16, false],
93 ["hw_addr_len", 8, false],
94 ["proto_addr_len", 8, false],
95 ["opcode", 16, false]
96 ]
97 },
98 {
99 "name" : "tcp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800100 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700101 "fields" : [
102 ["src_port", 16, false],
103 ["dst_port", 16, false],
104 ["seq_no", 32, false],
105 ["ack_no", 32, false],
106 ["data_offset", 4, false],
107 ["res", 3, false],
108 ["ecn", 3, false],
109 ["ctrl", 6, false],
110 ["window", 16, false],
111 ["checksum", 16, false],
112 ["urgent_ptr", 16, false]
113 ]
114 },
115 {
116 "name" : "udp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800117 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700118 "fields" : [
119 ["src_port", 16, false],
120 ["dst_port", 16, false],
121 ["len", 16, false],
122 ["checksum", 16, false]
123 ]
124 },
125 {
126 "name" : "icmp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800127 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700128 "fields" : [
129 ["icmp_type", 8, false],
130 ["icmp_code", 8, false],
Yi Tsengf73a5532017-11-17 15:58:57 -0800131 ["checksum", 16, false],
132 ["identifier", 16, false],
133 ["sequence_number", 16, false],
134 ["timestamp", 64, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700135 ]
136 },
137 {
138 "name" : "packet_out_header_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800139 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700140 "fields" : [
141 ["egress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800142 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700143 ]
144 },
145 {
146 "name" : "packet_in_header_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800147 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700148 "fields" : [
149 ["ingress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800150 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700151 ]
152 },
153 {
154 "name" : "standard_metadata",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800155 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -0700156 "fields" : [
157 ["ingress_port", 9, false],
158 ["egress_spec", 9, false],
159 ["egress_port", 9, false],
160 ["clone_spec", 32, false],
161 ["instance_type", 32, false],
162 ["drop", 1, false],
163 ["recirculate_port", 16, false],
164 ["packet_length", 32, false],
165 ["enq_timestamp", 32, false],
166 ["enq_qdepth", 19, false],
167 ["deq_timedelta", 32, false],
168 ["deq_qdepth", 19, false],
169 ["ingress_global_timestamp", 48, false],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800170 ["egress_global_timestamp", 48, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700171 ["lf_field_list", 32, false],
172 ["mcast_grp", 16, false],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800173 ["resubmit_flag", 32, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700174 ["egress_rid", 16, false],
175 ["checksum_error", 1, false],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800176 ["recirculate_flag", 32, false],
177 ["_padding", 5, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700178 ]
179 }
180 ],
181 "headers" : [
182 {
Yi Tsengbe342052017-11-03 10:21:23 -0700183 "name" : "scalars",
Yi Tsengc6844f52017-12-19 11:58:25 -0800184 "id" : 0,
Yi Tsengbe342052017-11-03 10:21:23 -0700185 "header_type" : "scalars_0",
186 "metadata" : true,
187 "pi_omit" : true
188 },
189 {
190 "name" : "standard_metadata",
Yi Tsengc6844f52017-12-19 11:58:25 -0800191 "id" : 1,
Yi Tsengbe342052017-11-03 10:21:23 -0700192 "header_type" : "standard_metadata",
193 "metadata" : true,
194 "pi_omit" : true
195 },
196 {
197 "name" : "ethernet",
Yi Tsengc6844f52017-12-19 11:58:25 -0800198 "id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -0700199 "header_type" : "ethernet_t",
200 "metadata" : false,
201 "pi_omit" : true
202 },
203 {
204 "name" : "vlan_tag",
Yi Tsengc6844f52017-12-19 11:58:25 -0800205 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -0700206 "header_type" : "vlan_tag_t",
207 "metadata" : false,
208 "pi_omit" : true
209 },
210 {
Yi Tsengbe342052017-11-03 10:21:23 -0700211 "name" : "mpls",
Yi Tsengbd46d052018-01-22 17:18:16 -0800212 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700213 "header_type" : "mpls_t",
214 "metadata" : false,
215 "pi_omit" : true
216 },
217 {
218 "name" : "ipv4",
Yi Tsengbd46d052018-01-22 17:18:16 -0800219 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700220 "header_type" : "ipv4_t",
221 "metadata" : false,
222 "pi_omit" : true
223 },
224 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800225 "name" : "ipv6",
Carmelo Casconeb531b682018-01-30 17:55:56 -0800226 "id" : 6,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800227 "header_type" : "ipv6_t",
228 "metadata" : false,
229 "pi_omit" : true
230 },
231 {
232 "name" : "arp",
233 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700234 "header_type" : "arp_t",
235 "metadata" : false,
236 "pi_omit" : true
237 },
238 {
239 "name" : "tcp",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800240 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700241 "header_type" : "tcp_t",
242 "metadata" : false,
243 "pi_omit" : true
244 },
245 {
246 "name" : "udp",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800247 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700248 "header_type" : "udp_t",
249 "metadata" : false,
250 "pi_omit" : true
251 },
252 {
253 "name" : "icmp",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800254 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700255 "header_type" : "icmp_t",
256 "metadata" : false,
257 "pi_omit" : true
258 },
259 {
260 "name" : "packet_out",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800261 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700262 "header_type" : "packet_out_header_t",
263 "metadata" : false,
264 "pi_omit" : true
265 },
266 {
267 "name" : "packet_in",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800268 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -0700269 "header_type" : "packet_in_header_t",
270 "metadata" : false,
271 "pi_omit" : true
272 }
273 ],
274 "header_stacks" : [],
275 "header_union_types" : [],
276 "header_unions" : [],
277 "header_union_stacks" : [],
278 "field_lists" : [],
279 "errors" : [
Yi Tseng27b9bc02018-04-12 14:52:40 +0800280 ["NoError", 0],
281 ["PacketTooShort", 1],
282 ["NoMatch", 2],
283 ["StackOutOfBounds", 3],
284 ["HeaderTooShort", 4],
285 ["ParserTimeout", 5]
Yi Tsengbe342052017-11-03 10:21:23 -0700286 ],
287 "enums" : [],
288 "parsers" : [
289 {
290 "name" : "parser",
291 "id" : 0,
292 "init_state" : "start",
293 "parse_states" : [
294 {
295 "name" : "start",
296 "id" : 0,
297 "parser_ops" : [],
298 "transitions" : [
299 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800300 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700301 "value" : "0x00ff",
302 "mask" : null,
303 "next_state" : "parse_packet_out"
304 },
305 {
306 "value" : "default",
307 "mask" : null,
308 "next_state" : "parse_ethernet"
309 }
310 ],
311 "transition_key" : [
312 {
313 "type" : "field",
314 "value" : ["standard_metadata", "ingress_port"]
315 }
316 ]
317 },
318 {
319 "name" : "parse_packet_out",
320 "id" : 1,
321 "parser_ops" : [
322 {
323 "parameters" : [
324 {
325 "type" : "regular",
326 "value" : "packet_out"
327 }
328 ],
329 "op" : "extract"
330 }
331 ],
332 "transitions" : [
333 {
334 "value" : "default",
335 "mask" : null,
336 "next_state" : "parse_ethernet"
337 }
338 ],
339 "transition_key" : []
340 },
341 {
342 "name" : "parse_ethernet",
343 "id" : 2,
344 "parser_ops" : [
345 {
346 "parameters" : [
347 {
348 "type" : "regular",
349 "value" : "ethernet"
350 }
351 ],
352 "op" : "extract"
Yi Tseng1d842672017-11-28 16:06:52 -0800353 },
354 {
355 "parameters" : [
356 {
357 "type" : "field",
358 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
359 },
360 {
361 "type" : "field",
362 "value" : ["ethernet", "ether_type"]
363 }
364 ],
365 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700366 }
367 ],
368 "transitions" : [
369 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800370 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700371 "value" : "0x8100",
372 "mask" : null,
373 "next_state" : "parse_vlan_tag"
374 },
375 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800376 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700377 "value" : "0x8847",
378 "mask" : null,
379 "next_state" : "parse_mpls"
380 },
381 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800382 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700383 "value" : "0x0806",
384 "mask" : null,
385 "next_state" : "parse_arp"
386 },
387 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800388 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700389 "value" : "0x0800",
390 "mask" : null,
391 "next_state" : "parse_ipv4"
392 },
393 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800394 "type" : "hexstr",
395 "value" : "0x86dd",
396 "mask" : null,
397 "next_state" : "parse_ipv6"
398 },
399 {
Yi Tsengbe342052017-11-03 10:21:23 -0700400 "value" : "default",
401 "mask" : null,
402 "next_state" : null
403 }
404 ],
405 "transition_key" : [
406 {
407 "type" : "field",
408 "value" : ["ethernet", "ether_type"]
409 }
410 ]
411 },
412 {
413 "name" : "parse_vlan_tag",
414 "id" : 3,
415 "parser_ops" : [
416 {
417 "parameters" : [
418 {
419 "type" : "regular",
420 "value" : "vlan_tag"
421 }
422 ],
423 "op" : "extract"
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800424 },
425 {
426 "parameters" : [
427 {
428 "type" : "field",
429 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
430 },
431 {
432 "type" : "field",
433 "value" : ["vlan_tag", "ether_type"]
434 }
435 ],
436 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700437 }
438 ],
439 "transitions" : [
440 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800441 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700442 "value" : "0x0806",
443 "mask" : null,
444 "next_state" : "parse_arp"
445 },
446 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800447 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700448 "value" : "0x0800",
449 "mask" : null,
450 "next_state" : "parse_ipv4"
451 },
452 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800453 "type" : "hexstr",
454 "value" : "0x86dd",
455 "mask" : null,
456 "next_state" : "parse_ipv6"
457 },
458 {
459 "type" : "hexstr",
Yi Tsengbd46d052018-01-22 17:18:16 -0800460 "value" : "0x8847",
Yi Tsengbe342052017-11-03 10:21:23 -0700461 "mask" : null,
Yi Tsengbd46d052018-01-22 17:18:16 -0800462 "next_state" : "parse_mpls"
Yi Tsengbe342052017-11-03 10:21:23 -0700463 },
464 {
465 "value" : "default",
466 "mask" : null,
467 "next_state" : null
468 }
469 ],
470 "transition_key" : [
471 {
472 "type" : "field",
473 "value" : ["vlan_tag", "ether_type"]
474 }
475 ]
476 },
477 {
478 "name" : "parse_mpls",
Yi Tsengbd46d052018-01-22 17:18:16 -0800479 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700480 "parser_ops" : [
481 {
482 "parameters" : [
483 {
484 "type" : "regular",
485 "value" : "mpls"
486 }
487 ],
488 "op" : "extract"
489 },
490 {
491 "parameters" : [
492 {
493 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -0800494 "value" : ["scalars", "tmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700495 },
496 {
497 "type" : "lookahead",
Yi Tsengc6844f52017-12-19 11:58:25 -0800498 "value" : [0, 4]
Yi Tsengbe342052017-11-03 10:21:23 -0700499 }
500 ],
501 "op" : "set"
502 }
503 ],
504 "transitions" : [
505 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800506 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700507 "value" : "0x04",
508 "mask" : null,
509 "next_state" : "parse_ipv4"
510 },
511 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800512 "type" : "hexstr",
513 "value" : "0x06",
514 "mask" : null,
515 "next_state" : "parse_ipv6"
516 },
517 {
Yi Tsengbe342052017-11-03 10:21:23 -0700518 "value" : "default",
519 "mask" : null,
520 "next_state" : "parse_ethernet"
521 }
522 ],
523 "transition_key" : [
524 {
525 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -0800526 "value" : ["scalars", "tmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700527 }
528 ]
529 },
530 {
531 "name" : "parse_ipv4",
Yi Tsengbd46d052018-01-22 17:18:16 -0800532 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700533 "parser_ops" : [
534 {
535 "parameters" : [
536 {
537 "type" : "regular",
538 "value" : "ipv4"
539 }
540 ],
541 "op" : "extract"
542 },
543 {
544 "parameters" : [
545 {
546 "type" : "field",
547 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
548 },
549 {
550 "type" : "field",
551 "value" : ["ipv4", "protocol"]
552 }
553 ],
554 "op" : "set"
555 }
556 ],
557 "transitions" : [
558 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800559 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700560 "value" : "0x06",
561 "mask" : null,
562 "next_state" : "parse_tcp"
563 },
564 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800565 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700566 "value" : "0x11",
567 "mask" : null,
568 "next_state" : "parse_udp"
569 },
570 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800571 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700572 "value" : "0x01",
573 "mask" : null,
574 "next_state" : "parse_icmp"
575 },
576 {
577 "value" : "default",
578 "mask" : null,
579 "next_state" : null
580 }
581 ],
582 "transition_key" : [
583 {
584 "type" : "field",
585 "value" : ["ipv4", "protocol"]
586 }
587 ]
588 },
589 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800590 "name" : "parse_ipv6",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -0800591 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -0700592 "parser_ops" : [
593 {
594 "parameters" : [
595 {
596 "type" : "regular",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800597 "value" : "ipv6"
598 }
599 ],
600 "op" : "extract"
601 },
602 {
603 "parameters" : [
604 {
605 "type" : "field",
606 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
607 },
608 {
609 "type" : "field",
610 "value" : ["ipv6", "next_hdr"]
611 }
612 ],
613 "op" : "set"
614 }
615 ],
616 "transitions" : [
617 {
618 "type" : "hexstr",
619 "value" : "0x06",
620 "mask" : null,
621 "next_state" : "parse_tcp"
622 },
623 {
624 "type" : "hexstr",
625 "value" : "0x11",
626 "mask" : null,
627 "next_state" : "parse_udp"
628 },
629 {
630 "type" : "hexstr",
631 "value" : "0x3a",
632 "mask" : null,
633 "next_state" : "parse_icmp"
634 },
635 {
636 "value" : "default",
637 "mask" : null,
638 "next_state" : null
639 }
640 ],
641 "transition_key" : [
642 {
643 "type" : "field",
644 "value" : ["ipv6", "next_hdr"]
645 }
646 ]
647 },
648 {
649 "name" : "parse_arp",
650 "id" : 7,
651 "parser_ops" : [
652 {
653 "parameters" : [
654 {
655 "type" : "regular",
Yi Tsengbe342052017-11-03 10:21:23 -0700656 "value" : "arp"
657 }
658 ],
659 "op" : "extract"
660 }
661 ],
662 "transitions" : [
663 {
664 "value" : "default",
665 "mask" : null,
666 "next_state" : null
667 }
668 ],
669 "transition_key" : []
670 },
671 {
672 "name" : "parse_tcp",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800673 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700674 "parser_ops" : [
675 {
676 "parameters" : [
677 {
678 "type" : "regular",
679 "value" : "tcp"
680 }
681 ],
682 "op" : "extract"
683 },
684 {
685 "parameters" : [
686 {
687 "type" : "field",
688 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
689 },
690 {
691 "type" : "field",
692 "value" : ["tcp", "src_port"]
693 }
694 ],
695 "op" : "set"
696 },
697 {
698 "parameters" : [
699 {
700 "type" : "field",
701 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
702 },
703 {
704 "type" : "field",
705 "value" : ["tcp", "dst_port"]
706 }
707 ],
708 "op" : "set"
709 }
710 ],
711 "transitions" : [
712 {
713 "value" : "default",
714 "mask" : null,
715 "next_state" : null
716 }
717 ],
718 "transition_key" : []
719 },
720 {
721 "name" : "parse_udp",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800722 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700723 "parser_ops" : [
724 {
725 "parameters" : [
726 {
727 "type" : "regular",
728 "value" : "udp"
729 }
730 ],
731 "op" : "extract"
732 },
733 {
734 "parameters" : [
735 {
736 "type" : "field",
737 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
738 },
739 {
740 "type" : "field",
741 "value" : ["udp", "src_port"]
742 }
743 ],
744 "op" : "set"
745 },
746 {
747 "parameters" : [
748 {
749 "type" : "field",
750 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
751 },
752 {
753 "type" : "field",
754 "value" : ["udp", "dst_port"]
755 }
756 ],
757 "op" : "set"
758 }
759 ],
760 "transitions" : [
761 {
762 "value" : "default",
763 "mask" : null,
764 "next_state" : null
765 }
766 ],
767 "transition_key" : []
768 },
769 {
770 "name" : "parse_icmp",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800771 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700772 "parser_ops" : [
773 {
774 "parameters" : [
775 {
776 "type" : "regular",
777 "value" : "icmp"
778 }
779 ],
780 "op" : "extract"
781 }
782 ],
783 "transitions" : [
784 {
785 "value" : "default",
786 "mask" : null,
787 "next_state" : null
788 }
789 ],
790 "transition_key" : []
791 }
792 ]
793 }
794 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800795 "parse_vsets" : [],
Yi Tsengbe342052017-11-03 10:21:23 -0700796 "deparsers" : [
797 {
798 "name" : "deparser",
799 "id" : 0,
800 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800801 "filename" : "./include/parser.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800802 "line" : 165,
Yi Tsengbe342052017-11-03 10:21:23 -0700803 "column" : 8,
804 "source_fragment" : "FabricDeparser"
805 },
Yi Tseng27b9bc02018-04-12 14:52:40 +0800806 "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "ipv4", "ipv6", "tcp", "udp", "icmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700807 }
808 ],
809 "meter_arrays" : [],
810 "counter_arrays" : [
811 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800812 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Yi Tseng1d842672017-11-28 16:06:52 -0800813 "id" : 0,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800814 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800815 "binding" : "FabricIngress.filtering.ingress_port_vlan"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800816 },
817 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800818 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800819 "id" : 1,
820 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800821 "binding" : "FabricIngress.filtering.fwd_classifier"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800822 },
823 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800824 "name" : "FabricIngress.forwarding.bridging_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800825 "id" : 2,
826 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800827 "binding" : "FabricIngress.forwarding.bridging"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800828 },
829 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800830 "name" : "FabricIngress.forwarding.mpls_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800831 "id" : 3,
832 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800833 "binding" : "FabricIngress.forwarding.mpls"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800834 },
835 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800836 "name" : "FabricIngress.forwarding.unicast_v4_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800837 "id" : 4,
838 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800839 "binding" : "FabricIngress.forwarding.unicast_v4"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800840 },
841 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800842 "name" : "FabricIngress.forwarding.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800843 "id" : 5,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800844 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800845 "binding" : "FabricIngress.forwarding.acl"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800846 },
847 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800848 "name" : "FabricIngress.forwarding.multicast_v4_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800849 "id" : 6,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800850 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800851 "binding" : "FabricIngress.forwarding.multicast_v4"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800852 },
853 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800854 "name" : "FabricIngress.forwarding.unicast_v6_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800855 "id" : 7,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800856 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800857 "binding" : "FabricIngress.forwarding.unicast_v6"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800858 },
859 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800860 "name" : "FabricIngress.forwarding.multicast_v6_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800861 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800862 "is_direct" : true,
863 "binding" : "FabricIngress.forwarding.multicast_v6"
864 },
865 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800866 "name" : "FabricIngress.next.vlan_meta_counter",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800867 "id" : 9,
868 "is_direct" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800869 "binding" : "FabricIngress.next.vlan_meta"
870 },
871 {
872 "name" : "FabricIngress.next.simple_counter",
873 "id" : 10,
874 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800875 "binding" : "FabricIngress.next.simple"
876 },
877 {
878 "name" : "FabricIngress.next.hashed_counter",
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800879 "id" : 11,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800880 "is_direct" : true,
881 "binding" : "FabricIngress.next.hashed"
882 },
883 {
884 "name" : "FabricIngress.next.multicast_counter",
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800885 "id" : 12,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800886 "is_direct" : true,
887 "binding" : "FabricIngress.next.multicast"
888 },
889 {
890 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800891 "id" : 13,
Yi Tsengbe342052017-11-03 10:21:23 -0700892 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800893 "filename" : "./include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -0700894 "line" : 23,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800895 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700896 "source_fragment" : "egress_port_counter"
897 },
898 "size" : 511,
899 "is_direct" : false
900 },
901 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800902 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800903 "id" : 14,
Yi Tsengbe342052017-11-03 10:21:23 -0700904 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800905 "filename" : "./include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -0700906 "line" : 24,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800907 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700908 "source_fragment" : "ingress_port_counter"
909 },
910 "size" : 511,
911 "is_direct" : false
912 }
913 ],
914 "register_arrays" : [],
915 "calculations" : [
916 {
917 "name" : "calc",
918 "id" : 0,
919 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800920 "filename" : "./include/checksum.p4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -0800921 "line" : 56,
Yi Tsengbe342052017-11-03 10:21:23 -0700922 "column" : 8,
923 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
924 },
925 "algo" : "csum16",
926 "input" : [
927 {
928 "type" : "field",
929 "value" : ["ipv4", "version"]
930 },
931 {
932 "type" : "field",
933 "value" : ["ipv4", "ihl"]
934 },
935 {
936 "type" : "field",
937 "value" : ["ipv4", "diffserv"]
938 },
939 {
940 "type" : "field",
941 "value" : ["ipv4", "total_len"]
942 },
943 {
944 "type" : "field",
945 "value" : ["ipv4", "identification"]
946 },
947 {
948 "type" : "field",
949 "value" : ["ipv4", "flags"]
950 },
951 {
952 "type" : "field",
953 "value" : ["ipv4", "frag_offset"]
954 },
955 {
956 "type" : "field",
957 "value" : ["ipv4", "ttl"]
958 },
959 {
960 "type" : "field",
961 "value" : ["ipv4", "protocol"]
962 },
963 {
964 "type" : "field",
965 "value" : ["ipv4", "src_addr"]
966 },
967 {
968 "type" : "field",
969 "value" : ["ipv4", "dst_addr"]
970 }
971 ]
972 },
973 {
974 "name" : "calc_0",
975 "id" : 1,
976 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800977 "filename" : "./include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800978 "line" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -0700979 "column" : 8,
980 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
981 },
982 "algo" : "csum16",
983 "input" : [
984 {
985 "type" : "field",
986 "value" : ["ipv4", "version"]
987 },
988 {
989 "type" : "field",
990 "value" : ["ipv4", "ihl"]
991 },
992 {
993 "type" : "field",
994 "value" : ["ipv4", "diffserv"]
995 },
996 {
997 "type" : "field",
998 "value" : ["ipv4", "total_len"]
999 },
1000 {
1001 "type" : "field",
1002 "value" : ["ipv4", "identification"]
1003 },
1004 {
1005 "type" : "field",
1006 "value" : ["ipv4", "flags"]
1007 },
1008 {
1009 "type" : "field",
1010 "value" : ["ipv4", "frag_offset"]
1011 },
1012 {
1013 "type" : "field",
1014 "value" : ["ipv4", "ttl"]
1015 },
1016 {
1017 "type" : "field",
1018 "value" : ["ipv4", "protocol"]
1019 },
1020 {
1021 "type" : "field",
1022 "value" : ["ipv4", "src_addr"]
1023 },
1024 {
1025 "type" : "field",
1026 "value" : ["ipv4", "dst_addr"]
1027 }
1028 ]
Yi Tsengbe342052017-11-03 10:21:23 -07001029 }
1030 ],
1031 "learn_lists" : [],
1032 "actions" : [
1033 {
1034 "name" : "nop",
1035 "id" : 0,
1036 "runtime_data" : [],
1037 "primitives" : []
1038 },
1039 {
1040 "name" : "nop",
1041 "id" : 1,
1042 "runtime_data" : [],
1043 "primitives" : []
1044 },
1045 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001046 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001047 "id" : 2,
1048 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001049 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001050 },
1051 {
Yi Tseng1d842672017-11-28 16:06:52 -08001052 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -07001053 "id" : 3,
1054 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001055 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001056 },
1057 {
1058 "name" : "NoAction",
1059 "id" : 4,
1060 "runtime_data" : [],
1061 "primitives" : []
1062 },
1063 {
1064 "name" : "NoAction",
1065 "id" : 5,
1066 "runtime_data" : [],
1067 "primitives" : []
1068 },
1069 {
1070 "name" : "NoAction",
1071 "id" : 6,
1072 "runtime_data" : [],
1073 "primitives" : []
1074 },
1075 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001076 "name" : "NoAction",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001077 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -07001078 "runtime_data" : [],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001079 "primitives" : []
1080 },
1081 {
1082 "name" : "NoAction",
1083 "id" : 8,
1084 "runtime_data" : [],
1085 "primitives" : []
1086 },
1087 {
1088 "name" : "NoAction",
1089 "id" : 9,
1090 "runtime_data" : [],
1091 "primitives" : []
1092 },
1093 {
1094 "name" : "NoAction",
1095 "id" : 10,
1096 "runtime_data" : [],
1097 "primitives" : []
1098 },
1099 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001100 "name" : "NoAction",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001101 "id" : 11,
1102 "runtime_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001103 "primitives" : []
1104 },
1105 {
1106 "name" : "FabricIngress.filtering.drop",
1107 "id" : 12,
1108 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001109 "primitives" : [
1110 {
1111 "op" : "drop",
1112 "parameters" : [],
1113 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001114 "filename" : "./include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001115 "line" : 31,
Yi Tseng1d842672017-11-28 16:06:52 -08001116 "column" : 8,
1117 "source_fragment" : "mark_to_drop()"
1118 }
1119 }
1120 ]
Yi Tsengbe342052017-11-03 10:21:23 -07001121 },
1122 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001123 "name" : "FabricIngress.filtering.set_vlan",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001124 "id" : 13,
Yi Tsengbe342052017-11-03 10:21:23 -07001125 "runtime_data" : [
1126 {
1127 "name" : "new_vlan_id",
1128 "bitwidth" : 12
1129 }
1130 ],
1131 "primitives" : [
1132 {
1133 "op" : "assign",
1134 "parameters" : [
1135 {
1136 "type" : "field",
1137 "value" : ["vlan_tag", "vlan_id"]
1138 },
1139 {
1140 "type" : "runtime_data",
1141 "value" : 0
1142 }
1143 ],
1144 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001145 "filename" : "./include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001146 "line" : 35,
Yi Tsengbe342052017-11-03 10:21:23 -07001147 "column" : 8,
1148 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1149 }
1150 }
1151 ]
1152 },
1153 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001154 "name" : "FabricIngress.filtering.push_internal_vlan",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001155 "id" : 14,
Yi Tsengbe342052017-11-03 10:21:23 -07001156 "runtime_data" : [
1157 {
1158 "name" : "new_vlan_id",
1159 "bitwidth" : 12
1160 }
1161 ],
1162 "primitives" : [
1163 {
1164 "op" : "add_header",
1165 "parameters" : [
1166 {
1167 "type" : "header",
1168 "value" : "vlan_tag"
1169 }
1170 ],
1171 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001172 "filename" : "./include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001173 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07001174 "column" : 8,
1175 "source_fragment" : "hdr.vlan_tag.setValid()"
1176 }
1177 },
1178 {
1179 "op" : "assign",
1180 "parameters" : [
1181 {
1182 "type" : "field",
1183 "value" : ["vlan_tag", "cfi"]
1184 },
1185 {
1186 "type" : "hexstr",
1187 "value" : "0x00"
1188 }
1189 ],
1190 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001191 "filename" : "./include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001192 "line" : 42,
Yi Tsengbe342052017-11-03 10:21:23 -07001193 "column" : 8,
1194 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1195 }
1196 },
1197 {
1198 "op" : "assign",
1199 "parameters" : [
1200 {
1201 "type" : "field",
1202 "value" : ["vlan_tag", "pri"]
1203 },
1204 {
1205 "type" : "hexstr",
1206 "value" : "0x00"
1207 }
1208 ],
1209 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001210 "filename" : "./include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001211 "line" : 43,
Yi Tsengbe342052017-11-03 10:21:23 -07001212 "column" : 8,
1213 "source_fragment" : "hdr.vlan_tag.pri = 0"
1214 }
1215 },
1216 {
1217 "op" : "assign",
1218 "parameters" : [
1219 {
1220 "type" : "field",
1221 "value" : ["vlan_tag", "ether_type"]
1222 },
1223 {
Yi Tseng1d842672017-11-28 16:06:52 -08001224 "type" : "field",
1225 "value" : ["ethernet", "ether_type"]
1226 }
1227 ],
1228 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001229 "filename" : "./include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001230 "line" : 44,
Yi Tseng1d842672017-11-28 16:06:52 -08001231 "column" : 8,
1232 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1233 }
1234 },
1235 {
1236 "op" : "assign",
1237 "parameters" : [
1238 {
1239 "type" : "field",
1240 "value" : ["ethernet", "ether_type"]
1241 },
1242 {
Yi Tsengbe342052017-11-03 10:21:23 -07001243 "type" : "hexstr",
1244 "value" : "0x8100"
1245 }
1246 ],
1247 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001248 "filename" : "./include/control/../define.p4",
Yi Tsengf55eaa82017-11-29 15:51:28 -08001249 "line" : 32,
Yi Tsengbe342052017-11-03 10:21:23 -07001250 "column" : 31,
1251 "source_fragment" : "0x8100; ..."
1252 }
1253 },
1254 {
1255 "op" : "assign",
1256 "parameters" : [
1257 {
1258 "type" : "field",
1259 "value" : ["vlan_tag", "vlan_id"]
1260 },
1261 {
1262 "type" : "runtime_data",
1263 "value" : 0
1264 }
1265 ],
1266 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001267 "filename" : "./include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001268 "line" : 35,
Yi Tsengbe342052017-11-03 10:21:23 -07001269 "column" : 8,
1270 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
1271 }
1272 },
1273 {
1274 "op" : "assign",
1275 "parameters" : [
1276 {
1277 "type" : "field",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001278 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
Yi Tsengbe342052017-11-03 10:21:23 -07001279 },
1280 {
1281 "type" : "expression",
1282 "value" : {
1283 "type" : "expression",
1284 "value" : {
1285 "op" : "b2d",
1286 "left" : null,
1287 "right" : {
1288 "type" : "bool",
1289 "value" : true
1290 }
1291 }
1292 }
1293 }
1294 ],
1295 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001296 "filename" : "./include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001297 "line" : 49,
Yi Tsengbe342052017-11-03 10:21:23 -07001298 "column" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001299 "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
Yi Tsengbe342052017-11-03 10:21:23 -07001300 }
1301 }
1302 ]
1303 },
1304 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001305 "name" : "FabricIngress.filtering.set_forwarding_type",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001306 "id" : 15,
Yi Tsengbe342052017-11-03 10:21:23 -07001307 "runtime_data" : [
1308 {
1309 "name" : "fwd_type",
1310 "bitwidth" : 3
1311 }
1312 ],
1313 "primitives" : [
1314 {
1315 "op" : "assign",
1316 "parameters" : [
1317 {
1318 "type" : "field",
1319 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1320 },
1321 {
1322 "type" : "runtime_data",
1323 "value" : 0
1324 }
1325 ],
1326 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001327 "filename" : "./include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001328 "line" : 53,
Yi Tsengbe342052017-11-03 10:21:23 -07001329 "column" : 8,
1330 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1331 }
1332 }
1333 ]
1334 },
1335 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001336 "name" : "FabricIngress.forwarding.drop",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001337 "id" : 16,
Yi Tseng1d842672017-11-28 16:06:52 -08001338 "runtime_data" : [],
1339 "primitives" : [
1340 {
1341 "op" : "drop",
1342 "parameters" : [],
1343 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001344 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001345 "line" : 36,
Yi Tseng1d842672017-11-28 16:06:52 -08001346 "column" : 8,
1347 "source_fragment" : "mark_to_drop()"
1348 }
1349 }
1350 ]
1351 },
1352 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001353 "name" : "FabricIngress.forwarding.set_next_id",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001354 "id" : 17,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001355 "runtime_data" : [
1356 {
1357 "name" : "next_id",
1358 "bitwidth" : 32
1359 }
1360 ],
1361 "primitives" : [
1362 {
1363 "op" : "assign",
1364 "parameters" : [
1365 {
1366 "type" : "field",
1367 "value" : ["scalars", "fabric_metadata_t.next_id"]
1368 },
1369 {
1370 "type" : "runtime_data",
1371 "value" : 0
1372 }
1373 ],
1374 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001375 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001376 "line" : 40,
1377 "column" : 8,
1378 "source_fragment" : "fabric_metadata.next_id = next_id"
1379 }
1380 }
1381 ]
1382 },
1383 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001384 "name" : "FabricIngress.forwarding.set_next_id",
1385 "id" : 18,
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08001386 "runtime_data" : [
1387 {
1388 "name" : "next_id",
1389 "bitwidth" : 32
1390 }
1391 ],
1392 "primitives" : [
1393 {
1394 "op" : "assign",
1395 "parameters" : [
1396 {
1397 "type" : "field",
1398 "value" : ["scalars", "fabric_metadata_t.next_id"]
1399 },
1400 {
1401 "type" : "runtime_data",
1402 "value" : 0
1403 }
1404 ],
1405 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001406 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001407 "line" : 40,
Yi Tsengbe342052017-11-03 10:21:23 -07001408 "column" : 8,
1409 "source_fragment" : "fabric_metadata.next_id = next_id"
1410 }
1411 }
1412 ]
1413 },
1414 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001415 "name" : "FabricIngress.forwarding.set_next_id",
1416 "id" : 19,
1417 "runtime_data" : [
1418 {
1419 "name" : "next_id",
1420 "bitwidth" : 32
1421 }
1422 ],
1423 "primitives" : [
1424 {
1425 "op" : "assign",
1426 "parameters" : [
1427 {
1428 "type" : "field",
1429 "value" : ["scalars", "fabric_metadata_t.next_id"]
1430 },
1431 {
1432 "type" : "runtime_data",
1433 "value" : 0
1434 }
1435 ],
1436 "source_info" : {
1437 "filename" : "./include/control/forwarding.p4",
1438 "line" : 40,
1439 "column" : 8,
1440 "source_fragment" : "fabric_metadata.next_id = next_id"
1441 }
1442 }
1443 ]
1444 },
1445 {
1446 "name" : "FabricIngress.forwarding.set_next_id",
1447 "id" : 20,
1448 "runtime_data" : [
1449 {
1450 "name" : "next_id",
1451 "bitwidth" : 32
1452 }
1453 ],
1454 "primitives" : [
1455 {
1456 "op" : "assign",
1457 "parameters" : [
1458 {
1459 "type" : "field",
1460 "value" : ["scalars", "fabric_metadata_t.next_id"]
1461 },
1462 {
1463 "type" : "runtime_data",
1464 "value" : 0
1465 }
1466 ],
1467 "source_info" : {
1468 "filename" : "./include/control/forwarding.p4",
1469 "line" : 40,
1470 "column" : 8,
1471 "source_fragment" : "fabric_metadata.next_id = next_id"
1472 }
1473 }
1474 ]
1475 },
1476 {
1477 "name" : "FabricIngress.forwarding.set_next_id",
1478 "id" : 21,
1479 "runtime_data" : [
1480 {
1481 "name" : "next_id",
1482 "bitwidth" : 32
1483 }
1484 ],
1485 "primitives" : [
1486 {
1487 "op" : "assign",
1488 "parameters" : [
1489 {
1490 "type" : "field",
1491 "value" : ["scalars", "fabric_metadata_t.next_id"]
1492 },
1493 {
1494 "type" : "runtime_data",
1495 "value" : 0
1496 }
1497 ],
1498 "source_info" : {
1499 "filename" : "./include/control/forwarding.p4",
1500 "line" : 40,
1501 "column" : 8,
1502 "source_fragment" : "fabric_metadata.next_id = next_id"
1503 }
1504 }
1505 ]
1506 },
1507 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001508 "name" : "FabricIngress.forwarding.set_next_id",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001509 "id" : 22,
Yi Tsengbe342052017-11-03 10:21:23 -07001510 "runtime_data" : [
1511 {
1512 "name" : "next_id",
1513 "bitwidth" : 32
1514 }
1515 ],
1516 "primitives" : [
1517 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001518 "op" : "assign",
1519 "parameters" : [
1520 {
1521 "type" : "field",
1522 "value" : ["scalars", "fabric_metadata_t.next_id"]
1523 },
1524 {
1525 "type" : "runtime_data",
1526 "value" : 0
1527 }
1528 ],
1529 "source_info" : {
1530 "filename" : "./include/control/forwarding.p4",
1531 "line" : 40,
1532 "column" : 8,
1533 "source_fragment" : "fabric_metadata.next_id = next_id"
1534 }
1535 }
1536 ]
1537 },
1538 {
1539 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
1540 "id" : 23,
1541 "runtime_data" : [
1542 {
1543 "name" : "next_id",
1544 "bitwidth" : 32
1545 }
1546 ],
1547 "primitives" : [
1548 {
Yi Tsengbe342052017-11-03 10:21:23 -07001549 "op" : "remove_header",
1550 "parameters" : [
1551 {
1552 "type" : "header",
1553 "value" : "mpls"
1554 }
1555 ],
1556 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001557 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001558 "line" : 44,
Yi Tsengbe342052017-11-03 10:21:23 -07001559 "column" : 8,
1560 "source_fragment" : "hdr.mpls.setInvalid()"
1561 }
1562 },
1563 {
1564 "op" : "assign",
1565 "parameters" : [
1566 {
1567 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001568 "value" : ["scalars", "fabric_metadata_t.next_id"]
1569 },
1570 {
1571 "type" : "runtime_data",
1572 "value" : 0
1573 }
1574 ],
1575 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001576 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001577 "line" : 45,
Yi Tsengbe342052017-11-03 10:21:23 -07001578 "column" : 8,
1579 "source_fragment" : "fabric_metadata.next_id = next_id"
1580 }
1581 }
1582 ]
1583 },
1584 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001585 "name" : "FabricIngress.forwarding.duplicate_to_controller",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001586 "id" : 24,
Yi Tsengbe342052017-11-03 10:21:23 -07001587 "runtime_data" : [],
1588 "primitives" : [
1589 {
1590 "op" : "assign",
1591 "parameters" : [
1592 {
1593 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001594 "value" : ["standard_metadata", "egress_spec"]
1595 },
1596 {
1597 "type" : "hexstr",
1598 "value" : "0x00ff"
1599 }
1600 ],
1601 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001602 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001603 "line" : 49,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001604 "column" : 8,
1605 "source_fragment" : "standard_metadata.egress_spec = 255"
Yi Tsengbe342052017-11-03 10:21:23 -07001606 }
1607 }
1608 ]
1609 },
1610 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001611 "name" : "FabricIngress.next.output",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001612 "id" : 25,
Yi Tsengbe342052017-11-03 10:21:23 -07001613 "runtime_data" : [
1614 {
1615 "name" : "port_num",
1616 "bitwidth" : 9
1617 }
1618 ],
1619 "primitives" : [
1620 {
1621 "op" : "assign",
1622 "parameters" : [
1623 {
1624 "type" : "field",
1625 "value" : ["standard_metadata", "egress_spec"]
1626 },
1627 {
1628 "type" : "runtime_data",
1629 "value" : 0
1630 }
1631 ],
1632 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001633 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001634 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07001635 "column" : 8,
1636 "source_fragment" : "standard_metadata.egress_spec = port_num"
1637 }
Yi Tsengbe342052017-11-03 10:21:23 -07001638 }
1639 ]
1640 },
1641 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001642 "name" : "FabricIngress.next.set_vlan",
1643 "id" : 26,
1644 "runtime_data" : [
1645 {
1646 "name" : "new_vlan_id",
1647 "bitwidth" : 12
1648 }
1649 ],
1650 "primitives" : [
1651 {
1652 "op" : "assign",
1653 "parameters" : [
1654 {
1655 "type" : "field",
1656 "value" : ["vlan_tag", "vlan_id"]
1657 },
1658 {
1659 "type" : "runtime_data",
1660 "value" : 0
1661 }
1662 ],
1663 "source_info" : {
1664 "filename" : "./include/control/next.p4",
1665 "line" : 37,
1666 "column" : 8,
1667 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1668 }
1669 }
1670 ]
1671 },
1672 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001673 "name" : "FabricIngress.next.set_vlan_output",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001674 "id" : 27,
Yi Tsengbe342052017-11-03 10:21:23 -07001675 "runtime_data" : [
1676 {
1677 "name" : "new_vlan_id",
1678 "bitwidth" : 12
1679 },
1680 {
1681 "name" : "port_num",
1682 "bitwidth" : 9
1683 }
1684 ],
1685 "primitives" : [
1686 {
1687 "op" : "assign",
1688 "parameters" : [
1689 {
1690 "type" : "field",
1691 "value" : ["vlan_tag", "vlan_id"]
1692 },
1693 {
1694 "type" : "runtime_data",
1695 "value" : 0
1696 }
1697 ],
1698 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001699 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001700 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07001701 "column" : 8,
1702 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1703 }
1704 },
1705 {
1706 "op" : "assign",
1707 "parameters" : [
1708 {
1709 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001710 "value" : ["standard_metadata", "egress_spec"]
1711 },
1712 {
1713 "type" : "runtime_data",
1714 "value" : 1
1715 }
1716 ],
1717 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001718 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001719 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07001720 "column" : 8,
1721 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1722 }
Yi Tsengbe342052017-11-03 10:21:23 -07001723 }
1724 ]
1725 },
1726 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001727 "name" : "FabricIngress.next.l3_routing",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001728 "id" : 28,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001729 "runtime_data" : [
1730 {
1731 "name" : "port_num",
1732 "bitwidth" : 9
1733 },
1734 {
1735 "name" : "smac",
1736 "bitwidth" : 48
1737 },
1738 {
1739 "name" : "dmac",
1740 "bitwidth" : 48
1741 }
1742 ],
1743 "primitives" : [
1744 {
1745 "op" : "assign",
1746 "parameters" : [
1747 {
1748 "type" : "field",
1749 "value" : ["ethernet", "src_addr"]
1750 },
1751 {
1752 "type" : "runtime_data",
1753 "value" : 1
1754 }
1755 ],
1756 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001757 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001758 "line" : 51,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001759 "column" : 8,
1760 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1761 }
1762 },
1763 {
1764 "op" : "assign",
1765 "parameters" : [
1766 {
1767 "type" : "field",
1768 "value" : ["ethernet", "dst_addr"]
1769 },
1770 {
1771 "type" : "runtime_data",
1772 "value" : 2
1773 }
1774 ],
1775 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001776 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001777 "line" : 55,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001778 "column" : 8,
1779 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1780 }
1781 },
1782 {
1783 "op" : "assign",
1784 "parameters" : [
1785 {
1786 "type" : "field",
1787 "value" : ["standard_metadata", "egress_spec"]
1788 },
1789 {
1790 "type" : "runtime_data",
1791 "value" : 0
1792 }
1793 ],
1794 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001795 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001796 "line" : 33,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001797 "column" : 8,
1798 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1799 }
1800 }
1801 ]
1802 },
1803 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001804 "name" : "FabricIngress.next.l3_routing",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001805 "id" : 29,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001806 "runtime_data" : [
1807 {
1808 "name" : "port_num",
1809 "bitwidth" : 9
1810 },
1811 {
1812 "name" : "smac",
1813 "bitwidth" : 48
1814 },
1815 {
1816 "name" : "dmac",
1817 "bitwidth" : 48
1818 }
1819 ],
1820 "primitives" : [
1821 {
1822 "op" : "assign",
1823 "parameters" : [
1824 {
1825 "type" : "field",
1826 "value" : ["ethernet", "src_addr"]
1827 },
1828 {
1829 "type" : "runtime_data",
1830 "value" : 1
1831 }
1832 ],
1833 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001834 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001835 "line" : 51,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001836 "column" : 8,
1837 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1838 }
1839 },
1840 {
1841 "op" : "assign",
1842 "parameters" : [
1843 {
1844 "type" : "field",
1845 "value" : ["ethernet", "dst_addr"]
1846 },
1847 {
1848 "type" : "runtime_data",
1849 "value" : 2
1850 }
1851 ],
1852 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001853 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001854 "line" : 55,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001855 "column" : 8,
1856 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1857 }
1858 },
1859 {
1860 "op" : "assign",
1861 "parameters" : [
1862 {
1863 "type" : "field",
1864 "value" : ["standard_metadata", "egress_spec"]
1865 },
1866 {
1867 "type" : "runtime_data",
1868 "value" : 0
1869 }
1870 ],
1871 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001872 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001873 "line" : 33,
1874 "column" : 8,
1875 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1876 }
1877 }
1878 ]
1879 },
1880 {
1881 "name" : "FabricIngress.next.l3_routing_vlan",
1882 "id" : 30,
1883 "runtime_data" : [
1884 {
1885 "name" : "port_num",
1886 "bitwidth" : 9
1887 },
1888 {
1889 "name" : "smac",
1890 "bitwidth" : 48
1891 },
1892 {
1893 "name" : "dmac",
1894 "bitwidth" : 48
1895 },
1896 {
1897 "name" : "new_vlan_id",
1898 "bitwidth" : 12
1899 }
1900 ],
1901 "primitives" : [
1902 {
1903 "op" : "assign",
1904 "parameters" : [
1905 {
1906 "type" : "field",
1907 "value" : ["ethernet", "src_addr"]
1908 },
1909 {
1910 "type" : "runtime_data",
1911 "value" : 1
1912 }
1913 ],
1914 "source_info" : {
1915 "filename" : "./include/control/next.p4",
1916 "line" : 51,
1917 "column" : 8,
1918 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1919 }
1920 },
1921 {
1922 "op" : "assign",
1923 "parameters" : [
1924 {
1925 "type" : "field",
1926 "value" : ["ethernet", "dst_addr"]
1927 },
1928 {
1929 "type" : "runtime_data",
1930 "value" : 2
1931 }
1932 ],
1933 "source_info" : {
1934 "filename" : "./include/control/next.p4",
1935 "line" : 55,
1936 "column" : 8,
1937 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1938 }
1939 },
1940 {
1941 "op" : "assign",
1942 "parameters" : [
1943 {
1944 "type" : "field",
1945 "value" : ["vlan_tag", "vlan_id"]
1946 },
1947 {
1948 "type" : "runtime_data",
1949 "value" : 3
1950 }
1951 ],
1952 "source_info" : {
1953 "filename" : "./include/control/next.p4",
1954 "line" : 46,
1955 "column" : 8,
1956 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
1957 }
1958 },
1959 {
1960 "op" : "assign",
1961 "parameters" : [
1962 {
1963 "type" : "field",
1964 "value" : ["standard_metadata", "egress_spec"]
1965 },
1966 {
1967 "type" : "runtime_data",
1968 "value" : 0
1969 }
1970 ],
1971 "source_info" : {
1972 "filename" : "./include/control/next.p4",
1973 "line" : 33,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001974 "column" : 8,
1975 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1976 }
1977 }
1978 ]
1979 },
1980 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001981 "name" : "FabricIngress.next.mpls_routing_v4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001982 "id" : 31,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001983 "runtime_data" : [
1984 {
1985 "name" : "port_num",
1986 "bitwidth" : 9
1987 },
1988 {
1989 "name" : "smac",
1990 "bitwidth" : 48
1991 },
1992 {
1993 "name" : "dmac",
1994 "bitwidth" : 48
1995 },
1996 {
1997 "name" : "label",
1998 "bitwidth" : 20
1999 }
2000 ],
2001 "primitives" : [
2002 {
2003 "op" : "assign",
2004 "parameters" : [
2005 {
2006 "type" : "field",
2007 "value" : ["ethernet", "src_addr"]
2008 },
2009 {
2010 "type" : "runtime_data",
2011 "value" : 1
2012 }
2013 ],
2014 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002015 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002016 "line" : 51,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002017 "column" : 8,
2018 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2019 }
2020 },
2021 {
2022 "op" : "assign",
2023 "parameters" : [
2024 {
2025 "type" : "field",
2026 "value" : ["ethernet", "dst_addr"]
2027 },
2028 {
2029 "type" : "runtime_data",
2030 "value" : 2
2031 }
2032 ],
2033 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002034 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002035 "line" : 55,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002036 "column" : 8,
2037 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2038 }
2039 },
2040 {
2041 "op" : "assign",
2042 "parameters" : [
2043 {
2044 "type" : "field",
2045 "value" : ["standard_metadata", "egress_spec"]
2046 },
2047 {
2048 "type" : "runtime_data",
2049 "value" : 0
2050 }
2051 ],
2052 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002053 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002054 "line" : 33,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002055 "column" : 8,
2056 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2057 }
2058 },
2059 {
2060 "op" : "add_header",
2061 "parameters" : [
2062 {
2063 "type" : "header",
2064 "value" : "mpls"
2065 }
2066 ],
2067 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002068 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002069 "line" : 72,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002070 "column" : 8,
2071 "source_fragment" : "hdr.mpls.setValid()"
2072 }
2073 },
2074 {
2075 "op" : "assign",
2076 "parameters" : [
2077 {
2078 "type" : "field",
2079 "value" : ["vlan_tag", "ether_type"]
2080 },
2081 {
2082 "type" : "hexstr",
2083 "value" : "0x8847"
2084 }
2085 ],
2086 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002087 "filename" : "./include/control/../define.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002088 "line" : 33,
2089 "column" : 31,
2090 "source_fragment" : "0x8847; ..."
2091 }
2092 },
2093 {
2094 "op" : "assign",
2095 "parameters" : [
2096 {
2097 "type" : "field",
2098 "value" : ["mpls", "label"]
2099 },
2100 {
2101 "type" : "runtime_data",
2102 "value" : 3
2103 }
2104 ],
2105 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002106 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002107 "line" : 74,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002108 "column" : 8,
2109 "source_fragment" : "hdr.mpls.label = label; ..."
2110 }
2111 },
2112 {
2113 "op" : "assign",
2114 "parameters" : [
2115 {
2116 "type" : "field",
2117 "value" : ["mpls", "tc"]
2118 },
2119 {
2120 "type" : "hexstr",
2121 "value" : "0x00"
2122 }
2123 ],
2124 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002125 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002126 "line" : 75,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002127 "column" : 8,
2128 "source_fragment" : "hdr.mpls.tc = tc; ..."
2129 }
2130 },
2131 {
2132 "op" : "assign",
2133 "parameters" : [
2134 {
2135 "type" : "field",
2136 "value" : ["mpls", "bos"]
2137 },
2138 {
2139 "type" : "hexstr",
2140 "value" : "0x01"
2141 }
2142 ],
2143 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002144 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002145 "line" : 76,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002146 "column" : 8,
2147 "source_fragment" : "hdr.mpls.bos = 1w1"
2148 }
2149 },
2150 {
2151 "op" : "assign",
2152 "parameters" : [
2153 {
2154 "type" : "field",
2155 "value" : ["mpls", "ttl"]
2156 },
2157 {
2158 "type" : "hexstr",
2159 "value" : "0x40"
2160 }
2161 ],
2162 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002163 "filename" : "./include/control/../define.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002164 "line" : 67,
2165 "column" : 32,
2166 "source_fragment" : "64; ..."
2167 }
2168 }
2169 ]
2170 },
2171 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002172 "name" : "FabricIngress.next.mpls_routing_v4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002173 "id" : 32,
Yi Tsengbe342052017-11-03 10:21:23 -07002174 "runtime_data" : [
2175 {
2176 "name" : "port_num",
2177 "bitwidth" : 9
2178 },
2179 {
2180 "name" : "smac",
2181 "bitwidth" : 48
2182 },
2183 {
2184 "name" : "dmac",
2185 "bitwidth" : 48
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002186 },
2187 {
2188 "name" : "label",
2189 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07002190 }
2191 ],
2192 "primitives" : [
2193 {
2194 "op" : "assign",
2195 "parameters" : [
2196 {
2197 "type" : "field",
2198 "value" : ["ethernet", "src_addr"]
2199 },
2200 {
2201 "type" : "runtime_data",
2202 "value" : 1
2203 }
2204 ],
2205 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002206 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002207 "line" : 51,
Yi Tsengbe342052017-11-03 10:21:23 -07002208 "column" : 8,
2209 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2210 }
2211 },
2212 {
2213 "op" : "assign",
2214 "parameters" : [
2215 {
2216 "type" : "field",
2217 "value" : ["ethernet", "dst_addr"]
2218 },
2219 {
2220 "type" : "runtime_data",
2221 "value" : 2
2222 }
2223 ],
2224 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002225 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002226 "line" : 55,
Yi Tsengbe342052017-11-03 10:21:23 -07002227 "column" : 8,
2228 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2229 }
2230 },
2231 {
2232 "op" : "assign",
2233 "parameters" : [
2234 {
2235 "type" : "field",
2236 "value" : ["standard_metadata", "egress_spec"]
2237 },
2238 {
2239 "type" : "runtime_data",
2240 "value" : 0
2241 }
2242 ],
2243 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002244 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002245 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07002246 "column" : 8,
2247 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2248 }
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002249 },
2250 {
2251 "op" : "add_header",
2252 "parameters" : [
2253 {
2254 "type" : "header",
2255 "value" : "mpls"
2256 }
2257 ],
2258 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002259 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002260 "line" : 72,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002261 "column" : 8,
2262 "source_fragment" : "hdr.mpls.setValid()"
2263 }
2264 },
2265 {
2266 "op" : "assign",
2267 "parameters" : [
2268 {
2269 "type" : "field",
2270 "value" : ["vlan_tag", "ether_type"]
2271 },
2272 {
2273 "type" : "hexstr",
2274 "value" : "0x8847"
2275 }
2276 ],
2277 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002278 "filename" : "./include/control/../define.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002279 "line" : 33,
2280 "column" : 31,
2281 "source_fragment" : "0x8847; ..."
2282 }
2283 },
2284 {
2285 "op" : "assign",
2286 "parameters" : [
2287 {
2288 "type" : "field",
2289 "value" : ["mpls", "label"]
2290 },
2291 {
2292 "type" : "runtime_data",
2293 "value" : 3
2294 }
2295 ],
2296 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002297 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002298 "line" : 74,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002299 "column" : 8,
2300 "source_fragment" : "hdr.mpls.label = label; ..."
2301 }
2302 },
2303 {
2304 "op" : "assign",
2305 "parameters" : [
2306 {
2307 "type" : "field",
2308 "value" : ["mpls", "tc"]
2309 },
2310 {
2311 "type" : "hexstr",
2312 "value" : "0x00"
2313 }
2314 ],
2315 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002316 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002317 "line" : 75,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002318 "column" : 8,
2319 "source_fragment" : "hdr.mpls.tc = tc; ..."
2320 }
2321 },
2322 {
2323 "op" : "assign",
2324 "parameters" : [
2325 {
2326 "type" : "field",
2327 "value" : ["mpls", "bos"]
2328 },
2329 {
2330 "type" : "hexstr",
2331 "value" : "0x01"
2332 }
2333 ],
2334 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002335 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002336 "line" : 76,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002337 "column" : 8,
2338 "source_fragment" : "hdr.mpls.bos = 1w1"
2339 }
2340 },
2341 {
2342 "op" : "assign",
2343 "parameters" : [
2344 {
2345 "type" : "field",
2346 "value" : ["mpls", "ttl"]
2347 },
2348 {
2349 "type" : "hexstr",
2350 "value" : "0x40"
2351 }
2352 ],
2353 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002354 "filename" : "./include/control/../define.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002355 "line" : 67,
2356 "column" : 32,
2357 "source_fragment" : "64; ..."
2358 }
Yi Tsengbe342052017-11-03 10:21:23 -07002359 }
2360 ]
2361 },
2362 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002363 "name" : "FabricIngress.next.mpls_routing_v6",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002364 "id" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07002365 "runtime_data" : [
2366 {
2367 "name" : "port_num",
2368 "bitwidth" : 9
2369 },
2370 {
2371 "name" : "smac",
2372 "bitwidth" : 48
2373 },
2374 {
2375 "name" : "dmac",
2376 "bitwidth" : 48
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002377 },
2378 {
2379 "name" : "label",
2380 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07002381 }
2382 ],
2383 "primitives" : [
2384 {
2385 "op" : "assign",
2386 "parameters" : [
2387 {
2388 "type" : "field",
2389 "value" : ["ethernet", "src_addr"]
2390 },
2391 {
2392 "type" : "runtime_data",
2393 "value" : 1
2394 }
2395 ],
2396 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002397 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002398 "line" : 51,
Yi Tsengbe342052017-11-03 10:21:23 -07002399 "column" : 8,
2400 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2401 }
2402 },
2403 {
2404 "op" : "assign",
2405 "parameters" : [
2406 {
2407 "type" : "field",
2408 "value" : ["ethernet", "dst_addr"]
2409 },
2410 {
2411 "type" : "runtime_data",
2412 "value" : 2
2413 }
2414 ],
2415 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002416 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002417 "line" : 55,
Yi Tsengbe342052017-11-03 10:21:23 -07002418 "column" : 8,
2419 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2420 }
2421 },
2422 {
2423 "op" : "assign",
2424 "parameters" : [
2425 {
2426 "type" : "field",
2427 "value" : ["standard_metadata", "egress_spec"]
2428 },
2429 {
2430 "type" : "runtime_data",
2431 "value" : 0
2432 }
2433 ],
2434 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002435 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002436 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07002437 "column" : 8,
2438 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2439 }
Yi Tsengbe342052017-11-03 10:21:23 -07002440 },
2441 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002442 "op" : "add_header",
Yi Tsengbe342052017-11-03 10:21:23 -07002443 "parameters" : [
2444 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002445 "type" : "header",
2446 "value" : "mpls"
Yi Tsengbe342052017-11-03 10:21:23 -07002447 }
2448 ],
2449 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002450 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002451 "line" : 72,
Yi Tsengbe342052017-11-03 10:21:23 -07002452 "column" : 8,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002453 "source_fragment" : "hdr.mpls.setValid()"
2454 }
2455 },
2456 {
2457 "op" : "assign",
2458 "parameters" : [
2459 {
2460 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08002461 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1b154bd2017-11-20 17:48:19 -08002462 },
2463 {
2464 "type" : "hexstr",
2465 "value" : "0x8847"
2466 }
2467 ],
2468 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002469 "filename" : "./include/control/../define.p4",
Yi Tsengf55eaa82017-11-29 15:51:28 -08002470 "line" : 33,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002471 "column" : 31,
2472 "source_fragment" : "0x8847; ..."
2473 }
2474 },
2475 {
2476 "op" : "assign",
2477 "parameters" : [
2478 {
2479 "type" : "field",
2480 "value" : ["mpls", "label"]
2481 },
2482 {
2483 "type" : "runtime_data",
2484 "value" : 3
2485 }
2486 ],
2487 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002488 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002489 "line" : 74,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002490 "column" : 8,
2491 "source_fragment" : "hdr.mpls.label = label; ..."
2492 }
2493 },
2494 {
2495 "op" : "assign",
2496 "parameters" : [
2497 {
2498 "type" : "field",
2499 "value" : ["mpls", "tc"]
2500 },
2501 {
Yi Tseng1d842672017-11-28 16:06:52 -08002502 "type" : "hexstr",
2503 "value" : "0x00"
Yi Tseng1b154bd2017-11-20 17:48:19 -08002504 }
2505 ],
2506 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002507 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002508 "line" : 75,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002509 "column" : 8,
2510 "source_fragment" : "hdr.mpls.tc = tc; ..."
2511 }
2512 },
2513 {
2514 "op" : "assign",
2515 "parameters" : [
2516 {
2517 "type" : "field",
2518 "value" : ["mpls", "bos"]
2519 },
2520 {
2521 "type" : "hexstr",
2522 "value" : "0x01"
2523 }
2524 ],
2525 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002526 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002527 "line" : 76,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002528 "column" : 8,
Yi Tseng1d842672017-11-28 16:06:52 -08002529 "source_fragment" : "hdr.mpls.bos = 1w1"
Yi Tseng1b154bd2017-11-20 17:48:19 -08002530 }
2531 },
2532 {
2533 "op" : "assign",
2534 "parameters" : [
2535 {
2536 "type" : "field",
2537 "value" : ["mpls", "ttl"]
2538 },
2539 {
2540 "type" : "hexstr",
2541 "value" : "0x40"
2542 }
2543 ],
2544 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002545 "filename" : "./include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08002546 "line" : 67,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002547 "column" : 32,
2548 "source_fragment" : "64; ..."
2549 }
2550 }
2551 ]
2552 },
2553 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002554 "name" : "FabricIngress.next.set_mcast_group",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002555 "id" : 34,
Yi Tseng27b9bc02018-04-12 14:52:40 +08002556 "runtime_data" : [
2557 {
2558 "name" : "gid",
2559 "bitwidth" : 16
2560 },
2561 {
2562 "name" : "smac",
2563 "bitwidth" : 48
2564 }
2565 ],
2566 "primitives" : [
2567 {
2568 "op" : "assign",
2569 "parameters" : [
2570 {
2571 "type" : "field",
2572 "value" : ["standard_metadata", "mcast_grp"]
2573 },
2574 {
2575 "type" : "runtime_data",
2576 "value" : 0
2577 }
2578 ],
2579 "source_info" : {
2580 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002581 "line" : 149,
Yi Tseng27b9bc02018-04-12 14:52:40 +08002582 "column" : 8,
2583 "source_fragment" : "standard_metadata.mcast_grp = gid"
2584 }
2585 },
2586 {
2587 "op" : "assign",
2588 "parameters" : [
2589 {
2590 "type" : "field",
2591 "value" : ["ethernet", "src_addr"]
2592 },
2593 {
2594 "type" : "runtime_data",
2595 "value" : 1
2596 }
2597 ],
2598 "source_info" : {
2599 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002600 "line" : 51,
Yi Tseng27b9bc02018-04-12 14:52:40 +08002601 "column" : 8,
2602 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2603 }
2604 }
2605 ]
2606 },
2607 {
Yi Tsengbe342052017-11-03 10:21:23 -07002608 "name" : "act",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002609 "id" : 35,
Yi Tsengbe342052017-11-03 10:21:23 -07002610 "runtime_data" : [],
2611 "primitives" : [
2612 {
2613 "op" : "assign",
2614 "parameters" : [
2615 {
2616 "type" : "field",
2617 "value" : ["standard_metadata", "egress_spec"]
2618 },
2619 {
2620 "type" : "field",
2621 "value" : ["packet_out", "egress_port"]
2622 }
2623 ],
2624 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002625 "filename" : "./include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07002626 "line" : 26,
2627 "column" : 12,
2628 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2629 }
Yi Tseng1d842672017-11-28 16:06:52 -08002630 },
2631 {
2632 "op" : "remove_header",
2633 "parameters" : [
2634 {
2635 "type" : "header",
2636 "value" : "packet_out"
2637 }
2638 ],
2639 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002640 "filename" : "./include/control/packetio.p4",
Yi Tseng1d842672017-11-28 16:06:52 -08002641 "line" : 27,
2642 "column" : 12,
2643 "source_fragment" : "hdr.packet_out.setInvalid()"
2644 }
Yi Tsengbe342052017-11-03 10:21:23 -07002645 }
2646 ]
2647 },
2648 {
2649 "name" : "act_0",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002650 "id" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07002651 "runtime_data" : [],
2652 "primitives" : [
2653 {
2654 "op" : "assign",
2655 "parameters" : [
2656 {
2657 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08002658 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1d842672017-11-28 16:06:52 -08002659 },
2660 {
2661 "type" : "hexstr",
2662 "value" : "0x0800"
2663 }
2664 ],
2665 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002666 "filename" : "./include/control/../define.p4",
Yi Tseng1d842672017-11-28 16:06:52 -08002667 "line" : 35,
2668 "column" : 31,
2669 "source_fragment" : "0x0800; ..."
2670 }
2671 },
2672 {
2673 "op" : "assign",
2674 "parameters" : [
2675 {
2676 "type" : "field",
2677 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
2678 },
2679 {
2680 "type" : "hexstr",
2681 "value" : "0x0800"
2682 }
2683 ],
2684 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002685 "filename" : "./include/control/../define.p4",
Yi Tseng1d842672017-11-28 16:06:52 -08002686 "line" : 35,
2687 "column" : 31,
2688 "source_fragment" : "0x0800; ..."
2689 }
2690 }
2691 ]
2692 },
2693 {
2694 "name" : "act_1",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002695 "id" : 37,
Yi Tseng1d842672017-11-28 16:06:52 -08002696 "runtime_data" : [],
2697 "primitives" : [
2698 {
2699 "op" : "assign",
2700 "parameters" : [
2701 {
2702 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08002703 "value" : ["scalars", "next_tmp_0"]
2704 },
2705 {
2706 "type" : "expression",
2707 "value" : {
2708 "type" : "expression",
2709 "value" : {
2710 "op" : "b2d",
2711 "left" : null,
2712 "right" : {
2713 "type" : "bool",
2714 "value" : true
2715 }
2716 }
2717 }
2718 }
2719 ]
2720 }
2721 ]
2722 },
2723 {
Yi Tsengbd46d052018-01-22 17:18:16 -08002724 "name" : "act_2",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002725 "id" : 38,
Yi Tseng1d842672017-11-28 16:06:52 -08002726 "runtime_data" : [],
2727 "primitives" : [
2728 {
2729 "op" : "assign",
2730 "parameters" : [
2731 {
2732 "type" : "field",
2733 "value" : ["scalars", "next_tmp_0"]
2734 },
2735 {
2736 "type" : "expression",
2737 "value" : {
2738 "type" : "expression",
2739 "value" : {
2740 "op" : "b2d",
2741 "left" : null,
2742 "right" : {
2743 "type" : "bool",
2744 "value" : false
2745 }
2746 }
2747 }
2748 }
2749 ]
2750 }
2751 ]
2752 },
2753 {
Yi Tsengbd46d052018-01-22 17:18:16 -08002754 "name" : "act_3",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002755 "id" : 39,
Yi Tseng1d842672017-11-28 16:06:52 -08002756 "runtime_data" : [],
2757 "primitives" : [
2758 {
2759 "op" : "assign",
2760 "parameters" : [
2761 {
2762 "type" : "field",
2763 "value" : ["ipv4", "ttl"]
2764 },
2765 {
2766 "type" : "expression",
2767 "value" : {
2768 "type" : "expression",
2769 "value" : {
2770 "op" : "&",
2771 "left" : {
2772 "type" : "expression",
2773 "value" : {
2774 "op" : "+",
2775 "left" : {
2776 "type" : "field",
2777 "value" : ["ipv4", "ttl"]
2778 },
2779 "right" : {
2780 "type" : "hexstr",
2781 "value" : "0xff"
2782 }
2783 }
2784 },
2785 "right" : {
2786 "type" : "hexstr",
2787 "value" : "0xff"
2788 }
2789 }
2790 }
2791 }
2792 ],
2793 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002794 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002795 "line" : 171,
Yi Tseng1d842672017-11-28 16:06:52 -08002796 "column" : 20,
2797 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
2798 }
2799 }
2800 ]
2801 },
2802 {
Yi Tsengbd46d052018-01-22 17:18:16 -08002803 "name" : "act_4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002804 "id" : 40,
Yi Tseng27b9bc02018-04-12 14:52:40 +08002805 "runtime_data" : [],
2806 "primitives" : [
2807 {
2808 "op" : "assign",
2809 "parameters" : [
2810 {
2811 "type" : "field",
2812 "value" : ["ipv6", "hop_limit"]
2813 },
2814 {
2815 "type" : "expression",
2816 "value" : {
2817 "type" : "expression",
2818 "value" : {
2819 "op" : "&",
2820 "left" : {
2821 "type" : "expression",
2822 "value" : {
2823 "op" : "+",
2824 "left" : {
2825 "type" : "field",
2826 "value" : ["ipv6", "hop_limit"]
2827 },
2828 "right" : {
2829 "type" : "hexstr",
2830 "value" : "0xff"
2831 }
2832 }
2833 },
2834 "right" : {
2835 "type" : "hexstr",
2836 "value" : "0xff"
2837 }
2838 }
2839 }
2840 }
2841 ],
2842 "source_info" : {
2843 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002844 "line" : 175,
Yi Tseng27b9bc02018-04-12 14:52:40 +08002845 "column" : 20,
2846 "source_fragment" : "hdr.ipv6.hop_limit = hdr.ipv6.hop_limit - 1"
2847 }
2848 }
2849 ]
2850 },
2851 {
2852 "name" : "act_5",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002853 "id" : 41,
Yi Tseng1d842672017-11-28 16:06:52 -08002854 "runtime_data" : [],
2855 "primitives" : [
2856 {
2857 "op" : "assign",
2858 "parameters" : [
2859 {
2860 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08002861 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -07002862 },
2863 {
2864 "type" : "expression",
2865 "value" : {
2866 "type" : "expression",
2867 "value" : {
2868 "op" : "&",
2869 "left" : {
2870 "type" : "field",
2871 "value" : ["standard_metadata", "egress_spec"]
2872 },
2873 "right" : {
2874 "type" : "hexstr",
2875 "value" : "0xffffffff"
2876 }
2877 }
2878 }
2879 }
2880 ]
2881 },
2882 {
2883 "op" : "count",
2884 "parameters" : [
2885 {
2886 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08002887 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Yi Tsengbe342052017-11-03 10:21:23 -07002888 },
2889 {
2890 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08002891 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -07002892 }
2893 ],
2894 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002895 "filename" : "./include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07002896 "line" : 28,
2897 "column" : 12,
2898 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
2899 }
2900 }
2901 ]
2902 },
2903 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002904 "name" : "act_6",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002905 "id" : 42,
Yi Tsengbe342052017-11-03 10:21:23 -07002906 "runtime_data" : [],
2907 "primitives" : [
2908 {
2909 "op" : "assign",
2910 "parameters" : [
2911 {
2912 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08002913 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -07002914 },
2915 {
2916 "type" : "expression",
2917 "value" : {
2918 "type" : "expression",
2919 "value" : {
2920 "op" : "&",
2921 "left" : {
2922 "type" : "field",
2923 "value" : ["standard_metadata", "ingress_port"]
2924 },
2925 "right" : {
2926 "type" : "hexstr",
2927 "value" : "0xffffffff"
2928 }
2929 }
2930 }
2931 }
2932 ]
2933 },
2934 {
2935 "op" : "count",
2936 "parameters" : [
2937 {
2938 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08002939 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Yi Tsengbe342052017-11-03 10:21:23 -07002940 },
2941 {
2942 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08002943 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -07002944 }
2945 ],
2946 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002947 "filename" : "./include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07002948 "line" : 31,
2949 "column" : 12,
2950 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
2951 }
2952 }
2953 ]
2954 },
2955 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002956 "name" : "nop",
2957 "id" : 43,
2958 "runtime_data" : [],
2959 "primitives" : []
2960 },
2961 {
2962 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
2963 "id" : 44,
2964 "runtime_data" : [],
2965 "primitives" : [
2966 {
2967 "op" : "assign",
2968 "parameters" : [
2969 {
2970 "type" : "field",
2971 "value" : ["ethernet", "ether_type"]
2972 },
2973 {
2974 "type" : "field",
2975 "value" : ["vlan_tag", "ether_type"]
2976 }
2977 ],
2978 "source_info" : {
2979 "filename" : "./include/control/packetio.p4",
2980 "line" : 38,
2981 "column" : 8,
2982 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
2983 }
2984 },
2985 {
2986 "op" : "remove_header",
2987 "parameters" : [
2988 {
2989 "type" : "header",
2990 "value" : "vlan_tag"
2991 }
2992 ],
2993 "source_info" : {
2994 "filename" : "./include/control/packetio.p4",
2995 "line" : 39,
2996 "column" : 8,
2997 "source_fragment" : "hdr.vlan_tag.setInvalid()"
2998 }
2999 }
3000 ]
3001 },
3002 {
3003 "name" : "FabricEgress.egress_next.pop_vlan",
3004 "id" : 45,
Yi Tseng1d842672017-11-28 16:06:52 -08003005 "runtime_data" : [],
3006 "primitives" : [
3007 {
3008 "op" : "assign",
3009 "parameters" : [
3010 {
3011 "type" : "field",
3012 "value" : ["ethernet", "ether_type"]
3013 },
3014 {
3015 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08003016 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1d842672017-11-28 16:06:52 -08003017 }
3018 ],
3019 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003020 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003021 "line" : 193,
3022 "column" : 8,
Yi Tsengbd46d052018-01-22 17:18:16 -08003023 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
Yi Tseng1d842672017-11-28 16:06:52 -08003024 }
Yi Tsengbd46d052018-01-22 17:18:16 -08003025 },
Yi Tsengbe342052017-11-03 10:21:23 -07003026 {
3027 "op" : "remove_header",
3028 "parameters" : [
3029 {
3030 "type" : "header",
3031 "value" : "vlan_tag"
3032 }
3033 ],
3034 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003035 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003036 "line" : 194,
3037 "column" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07003038 "source_fragment" : "hdr.vlan_tag.setInvalid()"
3039 }
3040 }
3041 ]
3042 },
3043 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003044 "name" : "act_7",
3045 "id" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07003046 "runtime_data" : [],
3047 "primitives" : [
3048 {
3049 "op" : "add_header",
3050 "parameters" : [
3051 {
3052 "type" : "header",
3053 "value" : "packet_in"
3054 }
3055 ],
3056 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003057 "filename" : "./include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003058 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07003059 "column" : 12,
3060 "source_fragment" : "hdr.packet_in.setValid()"
3061 }
3062 },
3063 {
3064 "op" : "assign",
3065 "parameters" : [
3066 {
3067 "type" : "field",
3068 "value" : ["packet_in", "ingress_port"]
3069 },
3070 {
3071 "type" : "field",
3072 "value" : ["standard_metadata", "ingress_port"]
3073 }
3074 ],
3075 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003076 "filename" : "./include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003077 "line" : 47,
Yi Tsengbe342052017-11-03 10:21:23 -07003078 "column" : 12,
3079 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
3080 }
3081 }
3082 ]
Yi Tsengbe342052017-11-03 10:21:23 -07003083 }
3084 ],
3085 "pipelines" : [
3086 {
3087 "name" : "ingress",
3088 "id" : 0,
3089 "source_info" : {
3090 "filename" : "fabric.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003091 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07003092 "column" : 8,
3093 "source_fragment" : "FabricIngress"
3094 },
3095 "init_table" : "node_2",
3096 "tables" : [
3097 {
3098 "name" : "tbl_act",
3099 "id" : 0,
3100 "key" : [],
3101 "match_type" : "exact",
3102 "type" : "simple",
3103 "max_size" : 1024,
3104 "with_counters" : false,
3105 "support_timeout" : false,
3106 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003107 "action_ids" : [35],
Yi Tsengbe342052017-11-03 10:21:23 -07003108 "actions" : ["act"],
3109 "base_default_next" : null,
3110 "next_tables" : {
3111 "act" : null
3112 },
3113 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003114 "action_id" : 35,
Yi Tsengbe342052017-11-03 10:21:23 -07003115 "action_const" : true,
3116 "action_data" : [],
3117 "action_entry_const" : true
3118 }
3119 },
3120 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003121 "name" : "FabricIngress.filtering.ingress_port_vlan",
Yi Tsengbe342052017-11-03 10:21:23 -07003122 "id" : 1,
3123 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003124 "filename" : "./include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08003125 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07003126 "column" : 10,
3127 "source_fragment" : "ingress_port_vlan"
3128 },
3129 "key" : [
3130 {
3131 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003132 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003133 "target" : ["standard_metadata", "ingress_port"],
3134 "mask" : null
3135 },
3136 {
3137 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003138 "name" : "hdr.vlan_tag.is_valid",
Yi Tsengbe342052017-11-03 10:21:23 -07003139 "target" : ["vlan_tag", "$valid$"],
3140 "mask" : null
3141 },
3142 {
3143 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003144 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003145 "target" : ["vlan_tag", "vlan_id"],
3146 "mask" : null
3147 }
3148 ],
3149 "match_type" : "ternary",
3150 "type" : "simple",
3151 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003152 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003153 "support_timeout" : false,
3154 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003155 "action_ids" : [14, 13, 0, 12],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003156 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "nop", "FabricIngress.filtering.drop"],
3157 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Yi Tsengbe342052017-11-03 10:21:23 -07003158 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003159 "FabricIngress.filtering.push_internal_vlan" : "FabricIngress.filtering.fwd_classifier",
3160 "FabricIngress.filtering.set_vlan" : "FabricIngress.filtering.fwd_classifier",
3161 "nop" : "FabricIngress.filtering.fwd_classifier",
3162 "FabricIngress.filtering.drop" : "FabricIngress.filtering.fwd_classifier"
Yi Tsengbe342052017-11-03 10:21:23 -07003163 },
3164 "default_entry" : {
Yi Tseng3a5731e2018-01-22 11:38:58 -08003165 "action_id" : 0,
Yi Tsengbe342052017-11-03 10:21:23 -07003166 "action_const" : true,
3167 "action_data" : [],
3168 "action_entry_const" : true
3169 }
3170 },
3171 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003172 "name" : "FabricIngress.filtering.fwd_classifier",
Yi Tsengbe342052017-11-03 10:21:23 -07003173 "id" : 2,
3174 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003175 "filename" : "./include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08003176 "line" : 76,
Yi Tsengbe342052017-11-03 10:21:23 -07003177 "column" : 10,
3178 "source_fragment" : "fwd_classifier"
3179 },
3180 "key" : [
3181 {
3182 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003183 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003184 "target" : ["standard_metadata", "ingress_port"],
3185 "mask" : null
3186 },
3187 {
3188 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003189 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003190 "target" : ["ethernet", "dst_addr"],
3191 "mask" : null
3192 },
3193 {
3194 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003195 "name" : "fabric_metadata.original_ether_type",
Yi Tseng1d842672017-11-28 16:06:52 -08003196 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07003197 "mask" : null
3198 }
3199 ],
3200 "match_type" : "exact",
3201 "type" : "simple",
3202 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003203 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003204 "support_timeout" : false,
3205 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003206 "action_ids" : [15],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003207 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07003208 "base_default_next" : "node_6",
3209 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003210 "FabricIngress.filtering.set_forwarding_type" : "node_6"
Yi Tsengbe342052017-11-03 10:21:23 -07003211 },
3212 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003213 "action_id" : 15,
Yi Tsengbe342052017-11-03 10:21:23 -07003214 "action_const" : true,
3215 "action_data" : ["0x0"],
3216 "action_entry_const" : true
3217 }
3218 },
3219 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003220 "name" : "FabricIngress.forwarding.bridging",
Yi Tsengbe342052017-11-03 10:21:23 -07003221 "id" : 3,
3222 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003223 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003224 "line" : 52,
Yi Tsengbe342052017-11-03 10:21:23 -07003225 "column" : 10,
3226 "source_fragment" : "bridging"
3227 },
3228 "key" : [
3229 {
3230 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003231 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003232 "target" : ["vlan_tag", "vlan_id"],
3233 "mask" : null
3234 },
3235 {
3236 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003237 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003238 "target" : ["ethernet", "dst_addr"],
3239 "mask" : null
3240 }
3241 ],
3242 "match_type" : "ternary",
3243 "type" : "simple",
3244 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003245 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003246 "support_timeout" : false,
3247 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003248 "action_ids" : [17, 3],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003249 "actions" : ["FabricIngress.forwarding.set_next_id", "NoAction"],
3250 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003251 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003252 "FabricIngress.forwarding.set_next_id" : "FabricIngress.forwarding.acl",
3253 "NoAction" : "FabricIngress.forwarding.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003254 },
3255 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003256 "action_id" : 3,
Yi Tseng1d842672017-11-28 16:06:52 -08003257 "action_const" : false,
3258 "action_data" : [],
3259 "action_entry_const" : false
3260 }
3261 },
3262 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003263 "name" : "FabricIngress.forwarding.mpls",
Yi Tseng1d842672017-11-28 16:06:52 -08003264 "id" : 4,
3265 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003266 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003267 "line" : 64,
Yi Tseng1d842672017-11-28 16:06:52 -08003268 "column" : 10,
3269 "source_fragment" : "mpls"
3270 },
3271 "key" : [
3272 {
3273 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003274 "name" : "hdr.mpls.label",
Yi Tseng1d842672017-11-28 16:06:52 -08003275 "target" : ["mpls", "label"],
3276 "mask" : null
3277 }
3278 ],
3279 "match_type" : "exact",
3280 "type" : "simple",
3281 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003282 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003283 "support_timeout" : false,
3284 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003285 "action_ids" : [23, 4],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003286 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
Yi Tsengbd46d052018-01-22 17:18:16 -08003287 "base_default_next" : "tbl_act_0",
Yi Tseng1d842672017-11-28 16:06:52 -08003288 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003289 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_0",
Yi Tsengbd46d052018-01-22 17:18:16 -08003290 "NoAction" : "tbl_act_0"
Yi Tseng1d842672017-11-28 16:06:52 -08003291 },
3292 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003293 "action_id" : 4,
Yi Tseng1d842672017-11-28 16:06:52 -08003294 "action_const" : false,
3295 "action_data" : [],
3296 "action_entry_const" : false
3297 }
3298 },
3299 {
3300 "name" : "tbl_act_0",
3301 "id" : 5,
3302 "key" : [],
3303 "match_type" : "exact",
3304 "type" : "simple",
3305 "max_size" : 1024,
3306 "with_counters" : false,
3307 "support_timeout" : false,
3308 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003309 "action_ids" : [36],
Yi Tseng1d842672017-11-28 16:06:52 -08003310 "actions" : ["act_0"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003311 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003312 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003313 "act_0" : "FabricIngress.forwarding.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003314 },
3315 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003316 "action_id" : 36,
Yi Tseng1d842672017-11-28 16:06:52 -08003317 "action_const" : true,
3318 "action_data" : [],
3319 "action_entry_const" : true
3320 }
3321 },
3322 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003323 "name" : "FabricIngress.forwarding.unicast_v4",
Yi Tsengbd46d052018-01-22 17:18:16 -08003324 "id" : 6,
Yi Tseng1d842672017-11-28 16:06:52 -08003325 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003326 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003327 "line" : 75,
Yi Tseng1d842672017-11-28 16:06:52 -08003328 "column" : 10,
3329 "source_fragment" : "unicast_v4"
3330 },
3331 "key" : [
3332 {
3333 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003334 "name" : "hdr.ipv4.dst_addr",
Yi Tseng1d842672017-11-28 16:06:52 -08003335 "target" : ["ipv4", "dst_addr"],
3336 "mask" : null
3337 }
3338 ],
3339 "match_type" : "lpm",
3340 "type" : "simple",
3341 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003342 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003343 "support_timeout" : false,
3344 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003345 "action_ids" : [18, 5],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003346 "actions" : ["FabricIngress.forwarding.set_next_id", "NoAction"],
3347 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tsengbe342052017-11-03 10:21:23 -07003348 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003349 "FabricIngress.forwarding.set_next_id" : "FabricIngress.forwarding.acl",
3350 "NoAction" : "FabricIngress.forwarding.acl"
Yi Tsengbe342052017-11-03 10:21:23 -07003351 },
3352 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003353 "action_id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07003354 "action_const" : false,
3355 "action_data" : [],
3356 "action_entry_const" : false
3357 }
3358 },
3359 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003360 "name" : "FabricIngress.forwarding.multicast_v4",
Yi Tsengbd46d052018-01-22 17:18:16 -08003361 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -07003362 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003363 "filename" : "./include/control/forwarding.p4",
3364 "line" : 89,
3365 "column" : 10,
3366 "source_fragment" : "multicast_v4"
3367 },
3368 "key" : [
3369 {
3370 "match_type" : "exact",
3371 "name" : "hdr.vlan_tag.vlan_id",
3372 "target" : ["vlan_tag", "vlan_id"],
3373 "mask" : null
3374 },
3375 {
3376 "match_type" : "lpm",
3377 "name" : "hdr.ipv4.dst_addr",
3378 "target" : ["ipv4", "dst_addr"],
3379 "mask" : null
3380 }
3381 ],
3382 "match_type" : "lpm",
3383 "type" : "simple",
3384 "max_size" : 1024,
3385 "with_counters" : true,
3386 "support_timeout" : false,
3387 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003388 "action_ids" : [19, 6],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003389 "actions" : ["FabricIngress.forwarding.set_next_id", "NoAction"],
3390 "base_default_next" : "FabricIngress.forwarding.acl",
3391 "next_tables" : {
3392 "FabricIngress.forwarding.set_next_id" : "FabricIngress.forwarding.acl",
3393 "NoAction" : "FabricIngress.forwarding.acl"
3394 },
3395 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003396 "action_id" : 6,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003397 "action_const" : false,
3398 "action_data" : [],
3399 "action_entry_const" : false
3400 }
3401 },
3402 {
3403 "name" : "FabricIngress.forwarding.unicast_v6",
3404 "id" : 8,
3405 "source_info" : {
3406 "filename" : "./include/control/forwarding.p4",
3407 "line" : 105,
3408 "column" : 10,
3409 "source_fragment" : "unicast_v6"
3410 },
3411 "key" : [
3412 {
3413 "match_type" : "lpm",
3414 "name" : "hdr.ipv6.dst_addr",
3415 "target" : ["ipv6", "dst_addr"],
3416 "mask" : null
3417 }
3418 ],
3419 "match_type" : "lpm",
3420 "type" : "simple",
3421 "max_size" : 1024,
3422 "with_counters" : true,
3423 "support_timeout" : false,
3424 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003425 "action_ids" : [20, 7],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003426 "actions" : ["FabricIngress.forwarding.set_next_id", "NoAction"],
3427 "base_default_next" : "FabricIngress.forwarding.acl",
3428 "next_tables" : {
3429 "FabricIngress.forwarding.set_next_id" : "FabricIngress.forwarding.acl",
3430 "NoAction" : "FabricIngress.forwarding.acl"
3431 },
3432 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003433 "action_id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003434 "action_const" : false,
3435 "action_data" : [],
3436 "action_entry_const" : false
3437 }
3438 },
3439 {
3440 "name" : "FabricIngress.forwarding.multicast_v6",
3441 "id" : 9,
3442 "source_info" : {
3443 "filename" : "./include/control/forwarding.p4",
3444 "line" : 119,
3445 "column" : 10,
3446 "source_fragment" : "multicast_v6"
3447 },
3448 "key" : [
3449 {
3450 "match_type" : "exact",
3451 "name" : "hdr.vlan_tag.vlan_id",
3452 "target" : ["vlan_tag", "vlan_id"],
3453 "mask" : null
3454 },
3455 {
3456 "match_type" : "lpm",
3457 "name" : "hdr.ipv6.dst_addr",
3458 "target" : ["ipv6", "dst_addr"],
3459 "mask" : null
3460 }
3461 ],
3462 "match_type" : "lpm",
3463 "type" : "simple",
3464 "max_size" : 1024,
3465 "with_counters" : true,
3466 "support_timeout" : false,
3467 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003468 "action_ids" : [21, 8],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003469 "actions" : ["FabricIngress.forwarding.set_next_id", "NoAction"],
3470 "base_default_next" : "FabricIngress.forwarding.acl",
3471 "next_tables" : {
3472 "FabricIngress.forwarding.set_next_id" : "FabricIngress.forwarding.acl",
3473 "NoAction" : "FabricIngress.forwarding.acl"
3474 },
3475 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003476 "action_id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003477 "action_const" : false,
3478 "action_data" : [],
3479 "action_entry_const" : false
3480 }
3481 },
3482 {
3483 "name" : "FabricIngress.forwarding.acl",
3484 "id" : 10,
3485 "source_info" : {
3486 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003487 "line" : 133,
Yi Tsengbe342052017-11-03 10:21:23 -07003488 "column" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003489 "source_fragment" : "acl"
3490 },
3491 "key" : [
3492 {
3493 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003494 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003495 "target" : ["standard_metadata", "ingress_port"],
3496 "mask" : null
3497 },
3498 {
3499 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003500 "name" : "fabric_metadata.ip_proto",
Yi Tsengbe342052017-11-03 10:21:23 -07003501 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
3502 "mask" : null
3503 },
3504 {
3505 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003506 "name" : "fabric_metadata.l4_src_port",
Yi Tseng1d842672017-11-28 16:06:52 -08003507 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
3508 "mask" : null
3509 },
3510 {
3511 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003512 "name" : "fabric_metadata.l4_dst_port",
Yi Tseng1d842672017-11-28 16:06:52 -08003513 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
3514 "mask" : null
3515 },
3516 {
3517 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003518 "name" : "fabric_metadata.original_ether_type",
Yi Tsengc6844f52017-12-19 11:58:25 -08003519 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
3520 "mask" : null
3521 },
3522 {
3523 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003524 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003525 "target" : ["ethernet", "dst_addr"],
3526 "mask" : null
3527 },
3528 {
3529 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003530 "name" : "hdr.ethernet.src_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003531 "target" : ["ethernet", "src_addr"],
3532 "mask" : null
3533 },
3534 {
3535 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003536 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003537 "target" : ["vlan_tag", "vlan_id"],
3538 "mask" : null
3539 },
3540 {
3541 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003542 "name" : "hdr.ipv4.src_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003543 "target" : ["ipv4", "src_addr"],
3544 "mask" : null
3545 },
3546 {
3547 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003548 "name" : "hdr.ipv4.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003549 "target" : ["ipv4", "dst_addr"],
3550 "mask" : null
3551 },
3552 {
3553 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003554 "name" : "hdr.icmp.icmp_type",
Yi Tsengbe342052017-11-03 10:21:23 -07003555 "target" : ["icmp", "icmp_type"],
3556 "mask" : null
3557 },
3558 {
3559 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003560 "name" : "hdr.icmp.icmp_code",
Yi Tsengbe342052017-11-03 10:21:23 -07003561 "target" : ["icmp", "icmp_code"],
3562 "mask" : null
3563 }
3564 ],
3565 "match_type" : "ternary",
3566 "type" : "simple",
Yi Tseng1d842672017-11-28 16:06:52 -08003567 "max_size" : 256,
Yi Tsengbd46d052018-01-22 17:18:16 -08003568 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003569 "support_timeout" : false,
3570 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003571 "action_ids" : [22, 24, 16, 1],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003572 "actions" : ["FabricIngress.forwarding.set_next_id", "FabricIngress.forwarding.duplicate_to_controller", "FabricIngress.forwarding.drop", "nop"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003573 "base_default_next" : "FabricIngress.next.vlan_meta",
Yi Tsengbe342052017-11-03 10:21:23 -07003574 "next_tables" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003575 "FabricIngress.forwarding.set_next_id" : "FabricIngress.next.vlan_meta",
3576 "FabricIngress.forwarding.duplicate_to_controller" : "FabricIngress.next.vlan_meta",
3577 "FabricIngress.forwarding.drop" : "FabricIngress.next.vlan_meta",
3578 "nop" : "FabricIngress.next.vlan_meta"
Yi Tsengbe342052017-11-03 10:21:23 -07003579 },
3580 "default_entry" : {
3581 "action_id" : 1,
3582 "action_const" : true,
3583 "action_data" : [],
3584 "action_entry_const" : true
3585 }
3586 },
3587 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003588 "name" : "FabricIngress.next.vlan_meta",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003589 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07003590 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003591 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003592 "line" : 96,
3593 "column" : 10,
3594 "source_fragment" : "vlan_meta"
3595 },
3596 "key" : [
3597 {
3598 "match_type" : "exact",
3599 "name" : "fabric_metadata.next_id",
3600 "target" : ["scalars", "fabric_metadata_t.next_id"],
3601 "mask" : null
3602 }
3603 ],
3604 "match_type" : "exact",
3605 "type" : "simple",
3606 "max_size" : 1024,
3607 "with_counters" : true,
3608 "support_timeout" : false,
3609 "direct_meters" : null,
3610 "action_ids" : [26, 2],
3611 "actions" : ["FabricIngress.next.set_vlan", "nop"],
3612 "base_default_next" : "FabricIngress.next.simple",
3613 "next_tables" : {
3614 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
3615 "nop" : "FabricIngress.next.simple"
3616 },
3617 "default_entry" : {
3618 "action_id" : 2,
3619 "action_const" : false,
3620 "action_data" : [],
3621 "action_entry_const" : false
3622 }
3623 },
3624 {
3625 "name" : "FabricIngress.next.simple",
3626 "id" : 12,
3627 "source_info" : {
3628 "filename" : "./include/control/next.p4",
3629 "line" : 109,
Yi Tsengbe342052017-11-03 10:21:23 -07003630 "column" : 10,
3631 "source_fragment" : "simple"
3632 },
3633 "key" : [
3634 {
3635 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003636 "name" : "fabric_metadata.next_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003637 "target" : ["scalars", "fabric_metadata_t.next_id"],
3638 "mask" : null
3639 }
3640 ],
3641 "match_type" : "exact",
3642 "type" : "simple",
3643 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003644 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003645 "support_timeout" : false,
3646 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003647 "action_ids" : [25, 27, 28, 31, 30, 9],
3648 "actions" : ["FabricIngress.next.output", "FabricIngress.next.set_vlan_output", "FabricIngress.next.l3_routing", "FabricIngress.next.mpls_routing_v4", "FabricIngress.next.l3_routing_vlan", "NoAction"],
Yi Tseng1d842672017-11-28 16:06:52 -08003649 "base_default_next" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07003650 "next_tables" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08003651 "__HIT__" : "tbl_act_1",
3652 "__MISS__" : "tbl_act_2"
Yi Tsengbe342052017-11-03 10:21:23 -07003653 },
3654 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003655 "action_id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -07003656 "action_const" : false,
3657 "action_data" : [],
3658 "action_entry_const" : false
3659 }
3660 },
3661 {
Yi Tsengbd46d052018-01-22 17:18:16 -08003662 "name" : "tbl_act_1",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003663 "id" : 13,
3664 "key" : [],
3665 "match_type" : "exact",
3666 "type" : "simple",
3667 "max_size" : 1024,
3668 "with_counters" : false,
3669 "support_timeout" : false,
3670 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003671 "action_ids" : [37],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003672 "actions" : ["act_1"],
3673 "base_default_next" : "node_24",
Yi Tsengbe342052017-11-03 10:21:23 -07003674 "next_tables" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003675 "act_1" : "node_24"
Yi Tsengbe342052017-11-03 10:21:23 -07003676 },
3677 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003678 "action_id" : 37,
3679 "action_const" : true,
3680 "action_data" : [],
3681 "action_entry_const" : true
3682 }
3683 },
3684 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003685 "name" : "tbl_act_2",
3686 "id" : 14,
3687 "key" : [],
3688 "match_type" : "exact",
3689 "type" : "simple",
3690 "max_size" : 1024,
3691 "with_counters" : false,
3692 "support_timeout" : false,
3693 "direct_meters" : null,
3694 "action_ids" : [38],
3695 "actions" : ["act_2"],
3696 "base_default_next" : "node_24",
3697 "next_tables" : {
3698 "act_2" : "node_24"
3699 },
3700 "default_entry" : {
3701 "action_id" : 38,
3702 "action_const" : true,
3703 "action_data" : [],
3704 "action_entry_const" : true
3705 }
3706 },
3707 {
3708 "name" : "tbl_act_3",
3709 "id" : 15,
3710 "key" : [],
3711 "match_type" : "exact",
3712 "type" : "simple",
3713 "max_size" : 1024,
3714 "with_counters" : false,
3715 "support_timeout" : false,
3716 "direct_meters" : null,
3717 "action_ids" : [39],
3718 "actions" : ["act_3"],
3719 "base_default_next" : "FabricIngress.next.hashed",
3720 "next_tables" : {
3721 "act_3" : "FabricIngress.next.hashed"
3722 },
3723 "default_entry" : {
3724 "action_id" : 39,
3725 "action_const" : true,
3726 "action_data" : [],
3727 "action_entry_const" : true
3728 }
3729 },
3730 {
3731 "name" : "tbl_act_4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003732 "id" : 16,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003733 "key" : [],
3734 "match_type" : "exact",
3735 "type" : "simple",
3736 "max_size" : 1024,
3737 "with_counters" : false,
3738 "support_timeout" : false,
3739 "direct_meters" : null,
3740 "action_ids" : [40],
3741 "actions" : ["act_4"],
3742 "base_default_next" : "FabricIngress.next.hashed",
3743 "next_tables" : {
3744 "act_4" : "FabricIngress.next.hashed"
3745 },
3746 "default_entry" : {
3747 "action_id" : 40,
3748 "action_const" : true,
3749 "action_data" : [],
3750 "action_entry_const" : true
3751 }
3752 },
3753 {
3754 "name" : "FabricIngress.next.hashed",
3755 "id" : 17,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003756 "source_info" : {
3757 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003758 "line" : 124,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003759 "column" : 10,
3760 "source_fragment" : "hashed"
3761 },
3762 "key" : [
3763 {
3764 "match_type" : "exact",
3765 "name" : "fabric_metadata.next_id",
3766 "target" : ["scalars", "fabric_metadata_t.next_id"],
3767 "mask" : null
3768 }
3769 ],
3770 "match_type" : "exact",
3771 "type" : "indirect_ws",
3772 "action_profile" : "FabricIngress.next.ecmp_selector",
3773 "max_size" : 1024,
3774 "with_counters" : true,
3775 "support_timeout" : false,
3776 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003777 "action_ids" : [29, 32, 33, 10],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003778 "actions" : ["FabricIngress.next.l3_routing", "FabricIngress.next.mpls_routing_v4", "FabricIngress.next.mpls_routing_v6", "NoAction"],
3779 "base_default_next" : "FabricIngress.next.multicast",
3780 "next_tables" : {
3781 "FabricIngress.next.l3_routing" : "FabricIngress.next.multicast",
3782 "FabricIngress.next.mpls_routing_v4" : "FabricIngress.next.multicast",
3783 "FabricIngress.next.mpls_routing_v6" : "FabricIngress.next.multicast",
3784 "NoAction" : "FabricIngress.next.multicast"
3785 }
3786 },
3787 {
3788 "name" : "FabricIngress.next.multicast",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003789 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003790 "source_info" : {
3791 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003792 "line" : 155,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003793 "column" : 10,
3794 "source_fragment" : "multicast"
3795 },
3796 "key" : [
3797 {
3798 "match_type" : "exact",
3799 "name" : "fabric_metadata.next_id",
3800 "target" : ["scalars", "fabric_metadata_t.next_id"],
3801 "mask" : null
3802 }
3803 ],
3804 "match_type" : "exact",
3805 "type" : "simple",
3806 "max_size" : 1024,
3807 "with_counters" : true,
3808 "support_timeout" : false,
3809 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003810 "action_ids" : [34, 11],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003811 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003812 "base_default_next" : "node_32",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003813 "next_tables" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003814 "FabricIngress.next.set_mcast_group" : "node_32",
3815 "NoAction" : "node_32"
Yi Tseng27b9bc02018-04-12 14:52:40 +08003816 },
3817 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003818 "action_id" : 11,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003819 "action_const" : false,
3820 "action_data" : [],
3821 "action_entry_const" : false
3822 }
3823 },
3824 {
3825 "name" : "tbl_act_5",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003826 "id" : 19,
3827 "key" : [],
3828 "match_type" : "exact",
3829 "type" : "simple",
3830 "max_size" : 1024,
3831 "with_counters" : false,
3832 "support_timeout" : false,
3833 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003834 "action_ids" : [41],
3835 "actions" : ["act_5"],
3836 "base_default_next" : "node_34",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003837 "next_tables" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003838 "act_5" : "node_34"
Yi Tseng27b9bc02018-04-12 14:52:40 +08003839 },
3840 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003841 "action_id" : 41,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003842 "action_const" : true,
3843 "action_data" : [],
3844 "action_entry_const" : true
3845 }
3846 },
3847 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003848 "name" : "tbl_act_6",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003849 "id" : 20,
3850 "key" : [],
3851 "match_type" : "exact",
3852 "type" : "simple",
3853 "max_size" : 1024,
3854 "with_counters" : false,
3855 "support_timeout" : false,
3856 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003857 "action_ids" : [42],
3858 "actions" : ["act_6"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003859 "base_default_next" : null,
3860 "next_tables" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003861 "act_6" : null
Yi Tseng27b9bc02018-04-12 14:52:40 +08003862 },
3863 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003864 "action_id" : 42,
Yi Tseng3a5731e2018-01-22 11:38:58 -08003865 "action_const" : true,
3866 "action_data" : [],
3867 "action_entry_const" : true
3868 }
Yi Tsengbe342052017-11-03 10:21:23 -07003869 }
3870 ],
3871 "action_profiles" : [
3872 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003873 "name" : "FabricIngress.next.ecmp_selector",
Yi Tsengbe342052017-11-03 10:21:23 -07003874 "id" : 0,
3875 "max_size" : 64,
3876 "selector" : {
3877 "algo" : "crc16",
3878 "input" : [
3879 {
3880 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003881 "value" : ["ipv4", "dst_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07003882 },
3883 {
3884 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003885 "value" : ["ipv4", "src_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07003886 },
3887 {
3888 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08003889 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -07003890 },
3891 {
3892 "type" : "field",
3893 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
3894 },
3895 {
3896 "type" : "field",
3897 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
3898 }
3899 ]
3900 }
3901 }
3902 ],
3903 "conditionals" : [
3904 {
3905 "name" : "node_2",
3906 "id" : 0,
3907 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003908 "filename" : "./include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003909 "line" : 25,
3910 "column" : 12,
3911 "source_fragment" : "hdr.packet_out.isValid()"
3912 },
3913 "expression" : {
3914 "type" : "expression",
3915 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08003916 "op" : "d2b",
3917 "left" : null,
3918 "right" : {
Yi Tsengbe342052017-11-03 10:21:23 -07003919 "type" : "field",
3920 "value" : ["packet_out", "$valid$"]
Yi Tsengbe342052017-11-03 10:21:23 -07003921 }
3922 }
3923 },
3924 "true_next" : "tbl_act",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003925 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Yi Tsengbe342052017-11-03 10:21:23 -07003926 },
3927 {
3928 "name" : "node_6",
3929 "id" : 1,
3930 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003931 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003932 "line" : 163,
Yi Tsengbe342052017-11-03 10:21:23 -07003933 "column" : 11,
3934 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
3935 },
3936 "expression" : {
3937 "type" : "expression",
3938 "value" : {
3939 "op" : "==",
3940 "left" : {
3941 "type" : "field",
3942 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3943 },
3944 "right" : {
3945 "type" : "hexstr",
3946 "value" : "0x00"
3947 }
3948 }
3949 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08003950 "true_next" : "FabricIngress.forwarding.bridging",
Yi Tsengbe342052017-11-03 10:21:23 -07003951 "false_next" : "node_8"
3952 },
3953 {
3954 "name" : "node_8",
3955 "id" : 2,
3956 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003957 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003958 "line" : 164,
Yi Tsengbe342052017-11-03 10:21:23 -07003959 "column" : 17,
3960 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
3961 },
3962 "expression" : {
3963 "type" : "expression",
3964 "value" : {
3965 "op" : "==",
3966 "left" : {
3967 "type" : "field",
3968 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3969 },
3970 "right" : {
3971 "type" : "hexstr",
3972 "value" : "0x01"
3973 }
3974 }
3975 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08003976 "true_next" : "FabricIngress.forwarding.mpls",
Yi Tsengbd46d052018-01-22 17:18:16 -08003977 "false_next" : "node_11"
Yi Tsengbe342052017-11-03 10:21:23 -07003978 },
3979 {
Yi Tsengbd46d052018-01-22 17:18:16 -08003980 "name" : "node_11",
Yi Tsengbe342052017-11-03 10:21:23 -07003981 "id" : 3,
3982 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003983 "filename" : "./include/control/forwarding.p4",
3984 "line" : 171,
Yi Tsengbe342052017-11-03 10:21:23 -07003985 "column" : 17,
3986 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
3987 },
3988 "expression" : {
3989 "type" : "expression",
3990 "value" : {
3991 "op" : "==",
3992 "left" : {
3993 "type" : "field",
3994 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3995 },
3996 "right" : {
3997 "type" : "hexstr",
3998 "value" : "0x02"
3999 }
4000 }
4001 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08004002 "true_next" : "FabricIngress.forwarding.unicast_v4",
4003 "false_next" : "node_13"
4004 },
4005 {
4006 "name" : "node_13",
4007 "id" : 4,
4008 "source_info" : {
4009 "filename" : "./include/control/forwarding.p4",
4010 "line" : 173,
4011 "column" : 17,
4012 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_MULTICAST"
4013 },
4014 "expression" : {
4015 "type" : "expression",
4016 "value" : {
4017 "op" : "==",
4018 "left" : {
4019 "type" : "field",
4020 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4021 },
4022 "right" : {
4023 "type" : "hexstr",
4024 "value" : "0x03"
4025 }
4026 }
4027 },
4028 "true_next" : "FabricIngress.forwarding.multicast_v4",
4029 "false_next" : "node_15"
4030 },
4031 {
4032 "name" : "node_15",
4033 "id" : 5,
4034 "source_info" : {
4035 "filename" : "./include/control/forwarding.p4",
4036 "line" : 176,
4037 "column" : 17,
4038 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV6_UNICAST"
4039 },
4040 "expression" : {
4041 "type" : "expression",
4042 "value" : {
4043 "op" : "==",
4044 "left" : {
4045 "type" : "field",
4046 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4047 },
4048 "right" : {
4049 "type" : "hexstr",
4050 "value" : "0x04"
4051 }
4052 }
4053 },
4054 "true_next" : "FabricIngress.forwarding.unicast_v6",
4055 "false_next" : "node_17"
Yi Tsengbe342052017-11-03 10:21:23 -07004056 },
4057 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004058 "name" : "node_17",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004059 "id" : 6,
4060 "source_info" : {
4061 "filename" : "./include/control/forwarding.p4",
4062 "line" : 178,
4063 "column" : 17,
4064 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV6_MULTICAST"
4065 },
4066 "expression" : {
4067 "type" : "expression",
4068 "value" : {
4069 "op" : "==",
4070 "left" : {
4071 "type" : "field",
4072 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4073 },
4074 "right" : {
4075 "type" : "hexstr",
4076 "value" : "0x05"
4077 }
4078 }
4079 },
4080 "true_next" : "FabricIngress.forwarding.multicast_v6",
4081 "false_next" : "FabricIngress.forwarding.acl"
4082 },
4083 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004084 "name" : "node_24",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004085 "id" : 7,
Yi Tseng1d842672017-11-28 16:06:52 -08004086 "expression" : {
4087 "type" : "expression",
4088 "value" : {
4089 "op" : "d2b",
4090 "left" : null,
4091 "right" : {
4092 "type" : "field",
4093 "value" : ["scalars", "next_tmp_0"]
4094 }
4095 }
4096 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004097 "true_next" : "node_25",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004098 "false_next" : "FabricIngress.next.hashed"
Yi Tseng1d842672017-11-28 16:06:52 -08004099 },
4100 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004101 "name" : "node_25",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004102 "id" : 8,
Yi Tseng1d842672017-11-28 16:06:52 -08004103 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004104 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004105 "line" : 169,
Yi Tsengbd46d052018-01-22 17:18:16 -08004106 "column" : 16,
4107 "source_fragment" : "!hdr.mpls.isValid()"
Yi Tseng1d842672017-11-28 16:06:52 -08004108 },
4109 "expression" : {
4110 "type" : "expression",
4111 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004112 "op" : "not",
4113 "left" : null,
Yi Tseng1d842672017-11-28 16:06:52 -08004114 "right" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004115 "type" : "expression",
4116 "value" : {
4117 "op" : "d2b",
4118 "left" : null,
4119 "right" : {
4120 "type" : "field",
4121 "value" : ["mpls", "$valid$"]
4122 }
4123 }
Yi Tseng1d842672017-11-28 16:06:52 -08004124 }
4125 }
4126 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004127 "true_next" : "node_26",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004128 "false_next" : "FabricIngress.next.hashed"
Yi Tseng1d842672017-11-28 16:06:52 -08004129 },
4130 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004131 "name" : "node_26",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004132 "id" : 9,
Yi Tseng1d842672017-11-28 16:06:52 -08004133 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004134 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004135 "line" : 170,
Yi Tseng1d842672017-11-28 16:06:52 -08004136 "column" : 19,
4137 "source_fragment" : "hdr.ipv4.isValid()"
4138 },
4139 "expression" : {
4140 "type" : "expression",
4141 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004142 "op" : "d2b",
4143 "left" : null,
4144 "right" : {
Yi Tseng1d842672017-11-28 16:06:52 -08004145 "type" : "field",
4146 "value" : ["ipv4", "$valid$"]
Yi Tseng1d842672017-11-28 16:06:52 -08004147 }
4148 }
4149 },
Yi Tsengbd46d052018-01-22 17:18:16 -08004150 "true_next" : "tbl_act_3",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004151 "false_next" : "node_28"
Yi Tseng1d842672017-11-28 16:06:52 -08004152 },
4153 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004154 "name" : "node_28",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004155 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07004156 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004157 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004158 "line" : 174,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004159 "column" : 25,
4160 "source_fragment" : "hdr.ipv6.isValid()"
4161 },
4162 "expression" : {
4163 "type" : "expression",
4164 "value" : {
4165 "op" : "d2b",
4166 "left" : null,
4167 "right" : {
4168 "type" : "field",
4169 "value" : ["ipv6", "$valid$"]
4170 }
4171 }
4172 },
4173 "true_next" : "tbl_act_4",
4174 "false_next" : "FabricIngress.next.hashed"
4175 },
4176 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004177 "name" : "node_32",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004178 "id" : 11,
4179 "source_info" : {
4180 "filename" : "./include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004181 "line" : 27,
4182 "column" : 12,
4183 "source_fragment" : "standard_metadata.egress_spec < 511"
4184 },
4185 "expression" : {
4186 "type" : "expression",
4187 "value" : {
4188 "op" : "<",
4189 "left" : {
4190 "type" : "field",
4191 "value" : ["standard_metadata", "egress_spec"]
4192 },
4193 "right" : {
4194 "type" : "hexstr",
4195 "value" : "0x01ff"
4196 }
4197 }
4198 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08004199 "true_next" : "tbl_act_5",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004200 "false_next" : "node_34"
Yi Tsengbe342052017-11-03 10:21:23 -07004201 },
4202 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004203 "name" : "node_34",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004204 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07004205 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004206 "filename" : "./include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004207 "line" : 30,
4208 "column" : 12,
4209 "source_fragment" : "standard_metadata.ingress_port < 511"
4210 },
4211 "expression" : {
4212 "type" : "expression",
4213 "value" : {
4214 "op" : "<",
4215 "left" : {
4216 "type" : "field",
4217 "value" : ["standard_metadata", "ingress_port"]
4218 },
4219 "right" : {
4220 "type" : "hexstr",
4221 "value" : "0x01ff"
4222 }
4223 }
4224 },
Yi Tseng3a5731e2018-01-22 11:38:58 -08004225 "false_next" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004226 "true_next" : "tbl_act_6"
Yi Tseng3a5731e2018-01-22 11:38:58 -08004227 }
4228 ]
4229 },
4230 {
4231 "name" : "egress",
4232 "id" : 1,
4233 "source_info" : {
4234 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004235 "line" : 61,
Yi Tseng3a5731e2018-01-22 11:38:58 -08004236 "column" : 8,
4237 "source_fragment" : "FabricEgress"
4238 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004239 "init_table" : "FabricEgress.egress_next.egress_vlan",
Yi Tseng3a5731e2018-01-22 11:38:58 -08004240 "tables" : [
4241 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004242 "name" : "FabricEgress.egress_next.egress_vlan",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004243 "id" : 21,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004244 "source_info" : {
4245 "filename" : "./include/control/next.p4",
4246 "line" : 197,
4247 "column" : 10,
4248 "source_fragment" : "egress_vlan"
4249 },
4250 "key" : [
4251 {
4252 "match_type" : "exact",
4253 "name" : "hdr.vlan_tag.vlan_id",
4254 "target" : ["vlan_tag", "vlan_id"],
4255 "mask" : null
4256 },
4257 {
4258 "match_type" : "exact",
4259 "name" : "standard_metadata.egress_port",
4260 "target" : ["standard_metadata", "egress_port"],
4261 "mask" : null
4262 }
4263 ],
4264 "match_type" : "exact",
4265 "type" : "simple",
4266 "max_size" : 1024,
4267 "with_counters" : false,
4268 "support_timeout" : false,
4269 "direct_meters" : null,
4270 "action_ids" : [45, 43],
4271 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
4272 "base_default_next" : "node_39",
4273 "next_tables" : {
4274 "FabricEgress.egress_next.pop_vlan" : "node_39",
4275 "nop" : "node_39"
4276 },
4277 "default_entry" : {
4278 "action_id" : 43,
4279 "action_const" : false,
4280 "action_data" : [],
4281 "action_entry_const" : false
4282 }
4283 },
4284 {
4285 "name" : "tbl_pkt_io_egress_pop_vlan",
4286 "id" : 22,
Yi Tseng3a5731e2018-01-22 11:38:58 -08004287 "key" : [],
4288 "match_type" : "exact",
4289 "type" : "simple",
4290 "max_size" : 1024,
4291 "with_counters" : false,
4292 "support_timeout" : false,
4293 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004294 "action_ids" : [44],
4295 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
4296 "base_default_next" : "tbl_act_7",
Yi Tseng3a5731e2018-01-22 11:38:58 -08004297 "next_tables" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004298 "FabricEgress.pkt_io_egress.pop_vlan" : "tbl_act_7"
Yi Tseng3a5731e2018-01-22 11:38:58 -08004299 },
4300 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004301 "action_id" : 44,
4302 "action_const" : true,
4303 "action_data" : [],
4304 "action_entry_const" : true
4305 }
4306 },
4307 {
4308 "name" : "tbl_act_7",
4309 "id" : 23,
4310 "key" : [],
4311 "match_type" : "exact",
4312 "type" : "simple",
4313 "max_size" : 1024,
4314 "with_counters" : false,
4315 "support_timeout" : false,
4316 "direct_meters" : null,
4317 "action_ids" : [46],
4318 "actions" : ["act_7"],
4319 "base_default_next" : null,
4320 "next_tables" : {
4321 "act_7" : null
4322 },
4323 "default_entry" : {
4324 "action_id" : 46,
Yi Tseng3a5731e2018-01-22 11:38:58 -08004325 "action_const" : true,
4326 "action_data" : [],
4327 "action_entry_const" : true
4328 }
4329 }
4330 ],
4331 "action_profiles" : [],
4332 "conditionals" : [
Yi Tseng1d842672017-11-28 16:06:52 -08004333 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004334 "name" : "node_39",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004335 "id" : 13,
Yi Tsengbe342052017-11-03 10:21:23 -07004336 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004337 "filename" : "./include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004338 "line" : 42,
Yi Tsengbe342052017-11-03 10:21:23 -07004339 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08004340 "source_fragment" : "standard_metadata.egress_port == 255"
Yi Tsengbe342052017-11-03 10:21:23 -07004341 },
4342 "expression" : {
4343 "type" : "expression",
4344 "value" : {
4345 "op" : "==",
4346 "left" : {
4347 "type" : "field",
4348 "value" : ["standard_metadata", "egress_port"]
4349 },
4350 "right" : {
4351 "type" : "hexstr",
4352 "value" : "0x00ff"
4353 }
4354 }
4355 },
4356 "false_next" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004357 "true_next" : "node_40"
4358 },
4359 {
4360 "name" : "node_40",
4361 "id" : 14,
4362 "source_info" : {
4363 "filename" : "./include/control/packetio.p4",
4364 "line" : 43,
4365 "column" : 16,
4366 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in"
4367 },
4368 "expression" : {
4369 "type" : "expression",
4370 "value" : {
4371 "op" : "and",
4372 "left" : {
4373 "type" : "expression",
4374 "value" : {
4375 "op" : "d2b",
4376 "left" : null,
4377 "right" : {
4378 "type" : "field",
4379 "value" : ["vlan_tag", "$valid$"]
4380 }
4381 }
4382 },
4383 "right" : {
4384 "type" : "expression",
4385 "value" : {
4386 "op" : "d2b",
4387 "left" : null,
4388 "right" : {
4389 "type" : "field",
4390 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
4391 }
4392 }
4393 }
4394 }
4395 },
4396 "true_next" : "tbl_pkt_io_egress_pop_vlan",
4397 "false_next" : "tbl_act_7"
Yi Tsengbe342052017-11-03 10:21:23 -07004398 }
4399 ]
4400 }
4401 ],
4402 "checksums" : [
4403 {
4404 "name" : "cksum",
4405 "id" : 0,
4406 "target" : ["ipv4", "hdr_checksum"],
4407 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004408 "calculation" : "calc",
4409 "if_cond" : {
4410 "type" : "expression",
4411 "value" : {
4412 "op" : "d2b",
4413 "left" : null,
4414 "right" : {
4415 "type" : "field",
4416 "value" : ["ipv4", "$valid$"]
4417 }
4418 }
4419 }
Yi Tsengbe342052017-11-03 10:21:23 -07004420 },
4421 {
4422 "name" : "cksum_0",
4423 "id" : 1,
Yi Tsengbe342052017-11-03 10:21:23 -07004424 "target" : ["ipv4", "hdr_checksum"],
4425 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004426 "calculation" : "calc_0",
4427 "if_cond" : {
4428 "type" : "expression",
4429 "value" : {
4430 "op" : "d2b",
4431 "left" : null,
4432 "right" : {
4433 "type" : "field",
4434 "value" : ["ipv4", "$valid$"]
4435 }
4436 }
4437 }
Yi Tsengbe342052017-11-03 10:21:23 -07004438 }
4439 ],
4440 "force_arith" : [],
4441 "extern_instances" : [],
4442 "field_aliases" : [
4443 [
4444 "queueing_metadata.enq_timestamp",
4445 ["standard_metadata", "enq_timestamp"]
4446 ],
4447 [
4448 "queueing_metadata.enq_qdepth",
4449 ["standard_metadata", "enq_qdepth"]
4450 ],
4451 [
4452 "queueing_metadata.deq_timedelta",
4453 ["standard_metadata", "deq_timedelta"]
4454 ],
4455 [
4456 "queueing_metadata.deq_qdepth",
4457 ["standard_metadata", "deq_qdepth"]
4458 ],
4459 [
4460 "intrinsic_metadata.ingress_global_timestamp",
4461 ["standard_metadata", "ingress_global_timestamp"]
4462 ],
4463 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08004464 "intrinsic_metadata.egress_global_timestamp",
4465 ["standard_metadata", "egress_global_timestamp"]
4466 ],
4467 [
Yi Tsengbe342052017-11-03 10:21:23 -07004468 "intrinsic_metadata.lf_field_list",
4469 ["standard_metadata", "lf_field_list"]
4470 ],
4471 [
4472 "intrinsic_metadata.mcast_grp",
4473 ["standard_metadata", "mcast_grp"]
4474 ],
4475 [
4476 "intrinsic_metadata.resubmit_flag",
4477 ["standard_metadata", "resubmit_flag"]
4478 ],
4479 [
4480 "intrinsic_metadata.egress_rid",
4481 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08004482 ],
4483 [
4484 "intrinsic_metadata.recirculate_flag",
4485 ["standard_metadata", "recirculate_flag"]
Yi Tsengbe342052017-11-03 10:21:23 -07004486 ]
4487 ]
4488}