blob: 2a692f7e91a15ffcf957ac476ae669f8902db85e [file] [log] [blame]
Yi Tsengbe342052017-11-03 10:21:23 -07001{
Yi Tsengbe342052017-11-03 10:21:23 -07002 "header_types" : [
3 {
4 "name" : "scalars_0",
5 "id" : 0,
6 "fields" : [
Yi Tsengc6844f52017-12-19 11:58:25 -08007 ["tmp", 4, false],
8 ["tmp_0", 32, false],
Yi Tsengbe342052017-11-03 10:21:23 -07009 ["tmp_1", 32, false],
Yi Tseng1d842672017-11-28 16:06:52 -080010 ["next_tmp_0", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070011 ["fabric_metadata_t.fwd_type", 3, false],
12 ["fabric_metadata_t.next_id", 32, false],
Yi Tseng20f9e7b2018-05-24 23:27:39 +080013 ["fabric_metadata_t.pop_vlan_when_packet_in", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070014 ["fabric_metadata_t.ip_proto", 8, false],
15 ["fabric_metadata_t.l4_src_port", 16, false],
Yi Tsengf55eaa82017-11-29 15:51:28 -080016 ["fabric_metadata_t.l4_dst_port", 16, false],
Yi Tseng1d842672017-11-28 16:06:52 -080017 ["fabric_metadata_t.original_ether_type", 16, false],
Yi Tsengc6844f52017-12-19 11:58:25 -080018 ["_padding_0", 7, false]
19 ]
20 },
21 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020022 "name" : "standard_metadata",
Yi Tsengc6844f52017-12-19 11:58:25 -080023 "id" : 1,
24 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020025 ["ingress_port", 9, false],
26 ["egress_spec", 9, false],
27 ["egress_port", 9, false],
28 ["clone_spec", 32, false],
29 ["instance_type", 32, false],
30 ["drop", 1, false],
31 ["recirculate_port", 16, false],
32 ["packet_length", 32, false],
33 ["enq_timestamp", 32, false],
34 ["enq_qdepth", 19, false],
35 ["deq_timedelta", 32, false],
36 ["deq_qdepth", 19, false],
37 ["ingress_global_timestamp", 48, false],
38 ["egress_global_timestamp", 48, false],
39 ["lf_field_list", 32, false],
40 ["mcast_grp", 16, false],
41 ["resubmit_flag", 32, false],
42 ["egress_rid", 16, false],
43 ["checksum_error", 1, false],
44 ["recirculate_flag", 32, false],
45 ["_padding", 5, false]
46 ]
47 },
48 {
49 "name" : "ethernet_t",
50 "id" : 2,
51 "fields" : [
Yi Tsengc6844f52017-12-19 11:58:25 -080052 ["dst_addr", 48, false],
53 ["src_addr", 48, false],
54 ["ether_type", 16, false]
55 ]
56 },
57 {
58 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020059 "id" : 3,
Yi Tsengc6844f52017-12-19 11:58:25 -080060 "fields" : [
61 ["pri", 3, false],
62 ["cfi", 1, false],
63 ["vlan_id", 12, false],
64 ["ether_type", 16, false]
65 ]
66 },
67 {
68 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020069 "id" : 4,
Yi Tsengc6844f52017-12-19 11:58:25 -080070 "fields" : [
71 ["label", 20, false],
72 ["tc", 3, false],
73 ["bos", 1, false],
74 ["ttl", 8, false]
Yi Tsengbe342052017-11-03 10:21:23 -070075 ]
76 },
77 {
78 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020079 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -070080 "fields" : [
81 ["version", 4, false],
82 ["ihl", 4, false],
83 ["diffserv", 8, false],
84 ["total_len", 16, false],
85 ["identification", 16, false],
86 ["flags", 3, false],
87 ["frag_offset", 13, false],
88 ["ttl", 8, false],
89 ["protocol", 8, false],
90 ["hdr_checksum", 16, false],
91 ["src_addr", 32, false],
92 ["dst_addr", 32, false]
93 ]
94 },
95 {
Yi Tseng47eac892018-07-11 02:17:04 +080096 "name" : "ipv6_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +080097 "id" : 6,
98 "fields" : [
Yi Tseng47eac892018-07-11 02:17:04 +080099 ["version", 4, false],
100 ["traffic_class", 8, false],
101 ["flow_label", 20, false],
102 ["payload_len", 16, false],
103 ["next_hdr", 8, false],
104 ["hop_limit", 8, false],
105 ["src_addr", 128, false],
106 ["dst_addr", 128, false]
107 ]
108 },
109 {
110 "name" : "arp_t",
111 "id" : 7,
112 "fields" : [
Yi Tsengbe342052017-11-03 10:21:23 -0700113 ["hw_type", 16, false],
114 ["proto_type", 16, false],
115 ["hw_addr_len", 8, false],
116 ["proto_addr_len", 8, false],
117 ["opcode", 16, false]
118 ]
119 },
120 {
121 "name" : "tcp_t",
Yi Tseng47eac892018-07-11 02:17:04 +0800122 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700123 "fields" : [
124 ["src_port", 16, false],
125 ["dst_port", 16, false],
126 ["seq_no", 32, false],
127 ["ack_no", 32, false],
128 ["data_offset", 4, false],
129 ["res", 3, false],
130 ["ecn", 3, false],
131 ["ctrl", 6, false],
132 ["window", 16, false],
133 ["checksum", 16, false],
134 ["urgent_ptr", 16, false]
135 ]
136 },
137 {
138 "name" : "udp_t",
Yi Tseng47eac892018-07-11 02:17:04 +0800139 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700140 "fields" : [
141 ["src_port", 16, false],
142 ["dst_port", 16, false],
143 ["len", 16, false],
144 ["checksum", 16, false]
145 ]
146 },
147 {
148 "name" : "icmp_t",
Yi Tseng47eac892018-07-11 02:17:04 +0800149 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700150 "fields" : [
151 ["icmp_type", 8, false],
152 ["icmp_code", 8, false],
Yi Tsengf73a5532017-11-17 15:58:57 -0800153 ["checksum", 16, false],
154 ["identifier", 16, false],
155 ["sequence_number", 16, false],
156 ["timestamp", 64, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700157 ]
158 },
159 {
160 "name" : "packet_out_header_t",
Yi Tseng47eac892018-07-11 02:17:04 +0800161 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700162 "fields" : [
163 ["egress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800164 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700165 ]
166 },
167 {
168 "name" : "packet_in_header_t",
Yi Tseng47eac892018-07-11 02:17:04 +0800169 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -0700170 "fields" : [
171 ["ingress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800172 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700173 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700174 }
175 ],
176 "headers" : [
177 {
Yi Tsengbe342052017-11-03 10:21:23 -0700178 "name" : "scalars",
Yi Tsengc6844f52017-12-19 11:58:25 -0800179 "id" : 0,
Yi Tsengbe342052017-11-03 10:21:23 -0700180 "header_type" : "scalars_0",
181 "metadata" : true,
182 "pi_omit" : true
183 },
184 {
185 "name" : "standard_metadata",
Yi Tsengc6844f52017-12-19 11:58:25 -0800186 "id" : 1,
Yi Tsengbe342052017-11-03 10:21:23 -0700187 "header_type" : "standard_metadata",
188 "metadata" : true,
189 "pi_omit" : true
190 },
191 {
192 "name" : "ethernet",
Yi Tsengc6844f52017-12-19 11:58:25 -0800193 "id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -0700194 "header_type" : "ethernet_t",
195 "metadata" : false,
196 "pi_omit" : true
197 },
198 {
199 "name" : "vlan_tag",
Yi Tsengc6844f52017-12-19 11:58:25 -0800200 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -0700201 "header_type" : "vlan_tag_t",
202 "metadata" : false,
203 "pi_omit" : true
204 },
205 {
Yi Tsengbe342052017-11-03 10:21:23 -0700206 "name" : "mpls",
Yi Tsengbd46d052018-01-22 17:18:16 -0800207 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700208 "header_type" : "mpls_t",
209 "metadata" : false,
210 "pi_omit" : true
211 },
212 {
213 "name" : "ipv4",
Yi Tsengbd46d052018-01-22 17:18:16 -0800214 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700215 "header_type" : "ipv4_t",
216 "metadata" : false,
217 "pi_omit" : true
218 },
219 {
Yi Tseng47eac892018-07-11 02:17:04 +0800220 "name" : "ipv6",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200221 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800222 "header_type" : "ipv6_t",
223 "metadata" : false,
224 "pi_omit" : true
225 },
226 {
227 "name" : "arp",
228 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700229 "header_type" : "arp_t",
230 "metadata" : false,
231 "pi_omit" : true
232 },
233 {
234 "name" : "tcp",
Yi Tseng47eac892018-07-11 02:17:04 +0800235 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700236 "header_type" : "tcp_t",
237 "metadata" : false,
238 "pi_omit" : true
239 },
240 {
241 "name" : "udp",
Yi Tseng47eac892018-07-11 02:17:04 +0800242 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700243 "header_type" : "udp_t",
244 "metadata" : false,
245 "pi_omit" : true
246 },
247 {
248 "name" : "icmp",
Yi Tseng47eac892018-07-11 02:17:04 +0800249 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700250 "header_type" : "icmp_t",
251 "metadata" : false,
252 "pi_omit" : true
253 },
254 {
255 "name" : "packet_out",
Yi Tseng47eac892018-07-11 02:17:04 +0800256 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700257 "header_type" : "packet_out_header_t",
258 "metadata" : false,
259 "pi_omit" : true
260 },
261 {
262 "name" : "packet_in",
Yi Tseng47eac892018-07-11 02:17:04 +0800263 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -0700264 "header_type" : "packet_in_header_t",
265 "metadata" : false,
266 "pi_omit" : true
267 }
268 ],
269 "header_stacks" : [],
270 "header_union_types" : [],
271 "header_unions" : [],
272 "header_union_stacks" : [],
273 "field_lists" : [],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200274 "errors" : [],
Yi Tsengbe342052017-11-03 10:21:23 -0700275 "enums" : [],
276 "parsers" : [
277 {
278 "name" : "parser",
279 "id" : 0,
280 "init_state" : "start",
281 "parse_states" : [
282 {
283 "name" : "start",
284 "id" : 0,
285 "parser_ops" : [],
286 "transitions" : [
287 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800288 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700289 "value" : "0x00ff",
290 "mask" : null,
291 "next_state" : "parse_packet_out"
292 },
293 {
294 "value" : "default",
295 "mask" : null,
296 "next_state" : "parse_ethernet"
297 }
298 ],
299 "transition_key" : [
300 {
301 "type" : "field",
302 "value" : ["standard_metadata", "ingress_port"]
303 }
304 ]
305 },
306 {
307 "name" : "parse_packet_out",
308 "id" : 1,
309 "parser_ops" : [
310 {
311 "parameters" : [
312 {
313 "type" : "regular",
314 "value" : "packet_out"
315 }
316 ],
317 "op" : "extract"
318 }
319 ],
320 "transitions" : [
321 {
322 "value" : "default",
323 "mask" : null,
324 "next_state" : "parse_ethernet"
325 }
326 ],
327 "transition_key" : []
328 },
329 {
330 "name" : "parse_ethernet",
331 "id" : 2,
332 "parser_ops" : [
333 {
334 "parameters" : [
335 {
336 "type" : "regular",
337 "value" : "ethernet"
338 }
339 ],
340 "op" : "extract"
Yi Tseng1d842672017-11-28 16:06:52 -0800341 },
342 {
343 "parameters" : [
344 {
345 "type" : "field",
346 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
347 },
348 {
349 "type" : "field",
350 "value" : ["ethernet", "ether_type"]
351 }
352 ],
353 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700354 }
355 ],
356 "transitions" : [
357 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800358 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700359 "value" : "0x8100",
360 "mask" : null,
361 "next_state" : "parse_vlan_tag"
362 },
363 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800364 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700365 "value" : "0x8847",
366 "mask" : null,
367 "next_state" : "parse_mpls"
368 },
369 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800370 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700371 "value" : "0x0806",
372 "mask" : null,
373 "next_state" : "parse_arp"
374 },
375 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800376 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700377 "value" : "0x0800",
378 "mask" : null,
379 "next_state" : "parse_ipv4"
380 },
381 {
Yi Tseng47eac892018-07-11 02:17:04 +0800382 "type" : "hexstr",
383 "value" : "0x86dd",
384 "mask" : null,
385 "next_state" : "parse_ipv6"
386 },
387 {
Yi Tsengbe342052017-11-03 10:21:23 -0700388 "value" : "default",
389 "mask" : null,
390 "next_state" : null
391 }
392 ],
393 "transition_key" : [
394 {
395 "type" : "field",
396 "value" : ["ethernet", "ether_type"]
397 }
398 ]
399 },
400 {
401 "name" : "parse_vlan_tag",
402 "id" : 3,
403 "parser_ops" : [
404 {
405 "parameters" : [
406 {
407 "type" : "regular",
408 "value" : "vlan_tag"
409 }
410 ],
411 "op" : "extract"
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800412 },
413 {
414 "parameters" : [
415 {
416 "type" : "field",
417 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
418 },
419 {
420 "type" : "field",
421 "value" : ["vlan_tag", "ether_type"]
422 }
423 ],
424 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700425 }
426 ],
427 "transitions" : [
428 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800429 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700430 "value" : "0x0806",
431 "mask" : null,
432 "next_state" : "parse_arp"
433 },
434 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800435 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700436 "value" : "0x0800",
437 "mask" : null,
438 "next_state" : "parse_ipv4"
439 },
440 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800441 "type" : "hexstr",
Yi Tseng47eac892018-07-11 02:17:04 +0800442 "value" : "0x86dd",
443 "mask" : null,
444 "next_state" : "parse_ipv6"
445 },
446 {
447 "type" : "hexstr",
Yi Tsengbd46d052018-01-22 17:18:16 -0800448 "value" : "0x8847",
Yi Tsengbe342052017-11-03 10:21:23 -0700449 "mask" : null,
Yi Tsengbd46d052018-01-22 17:18:16 -0800450 "next_state" : "parse_mpls"
Yi Tsengbe342052017-11-03 10:21:23 -0700451 },
452 {
453 "value" : "default",
454 "mask" : null,
455 "next_state" : null
456 }
457 ],
458 "transition_key" : [
459 {
460 "type" : "field",
461 "value" : ["vlan_tag", "ether_type"]
462 }
463 ]
464 },
465 {
466 "name" : "parse_mpls",
Yi Tsengbd46d052018-01-22 17:18:16 -0800467 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700468 "parser_ops" : [
469 {
470 "parameters" : [
471 {
472 "type" : "regular",
473 "value" : "mpls"
474 }
475 ],
476 "op" : "extract"
477 },
478 {
479 "parameters" : [
480 {
481 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -0800482 "value" : ["scalars", "tmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700483 },
484 {
485 "type" : "lookahead",
Yi Tsengc6844f52017-12-19 11:58:25 -0800486 "value" : [0, 4]
Yi Tsengbe342052017-11-03 10:21:23 -0700487 }
488 ],
489 "op" : "set"
490 }
491 ],
492 "transitions" : [
493 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800494 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700495 "value" : "0x04",
496 "mask" : null,
497 "next_state" : "parse_ipv4"
498 },
499 {
Yi Tseng47eac892018-07-11 02:17:04 +0800500 "type" : "hexstr",
501 "value" : "0x06",
502 "mask" : null,
503 "next_state" : "parse_ipv6"
504 },
505 {
Yi Tsengbe342052017-11-03 10:21:23 -0700506 "value" : "default",
507 "mask" : null,
508 "next_state" : "parse_ethernet"
509 }
510 ],
511 "transition_key" : [
512 {
513 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -0800514 "value" : ["scalars", "tmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700515 }
516 ]
517 },
518 {
519 "name" : "parse_ipv4",
Yi Tsengbd46d052018-01-22 17:18:16 -0800520 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700521 "parser_ops" : [
522 {
523 "parameters" : [
524 {
525 "type" : "regular",
526 "value" : "ipv4"
527 }
528 ],
529 "op" : "extract"
530 },
531 {
532 "parameters" : [
533 {
534 "type" : "field",
535 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
536 },
537 {
538 "type" : "field",
539 "value" : ["ipv4", "protocol"]
540 }
541 ],
542 "op" : "set"
543 }
544 ],
545 "transitions" : [
546 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800547 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700548 "value" : "0x06",
549 "mask" : null,
550 "next_state" : "parse_tcp"
551 },
552 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800553 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700554 "value" : "0x11",
555 "mask" : null,
556 "next_state" : "parse_udp"
557 },
558 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800559 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700560 "value" : "0x01",
561 "mask" : null,
562 "next_state" : "parse_icmp"
563 },
564 {
565 "value" : "default",
566 "mask" : null,
567 "next_state" : null
568 }
569 ],
570 "transition_key" : [
571 {
572 "type" : "field",
573 "value" : ["ipv4", "protocol"]
574 }
575 ]
576 },
577 {
Yi Tseng47eac892018-07-11 02:17:04 +0800578 "name" : "parse_ipv6",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200579 "id" : 6,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800580 "parser_ops" : [
581 {
582 "parameters" : [
583 {
584 "type" : "regular",
Yi Tseng47eac892018-07-11 02:17:04 +0800585 "value" : "ipv6"
586 }
587 ],
588 "op" : "extract"
589 },
590 {
591 "parameters" : [
592 {
593 "type" : "field",
594 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
595 },
596 {
597 "type" : "field",
598 "value" : ["ipv6", "next_hdr"]
599 }
600 ],
601 "op" : "set"
602 }
603 ],
604 "transitions" : [
605 {
606 "type" : "hexstr",
607 "value" : "0x06",
608 "mask" : null,
609 "next_state" : "parse_tcp"
610 },
611 {
612 "type" : "hexstr",
613 "value" : "0x11",
614 "mask" : null,
615 "next_state" : "parse_udp"
616 },
617 {
618 "type" : "hexstr",
619 "value" : "0x3a",
620 "mask" : null,
621 "next_state" : "parse_icmp"
622 },
623 {
624 "value" : "default",
625 "mask" : null,
626 "next_state" : null
627 }
628 ],
629 "transition_key" : [
630 {
631 "type" : "field",
632 "value" : ["ipv6", "next_hdr"]
633 }
634 ]
635 },
636 {
637 "name" : "parse_arp",
638 "id" : 7,
639 "parser_ops" : [
640 {
641 "parameters" : [
642 {
643 "type" : "regular",
Yi Tsengbe342052017-11-03 10:21:23 -0700644 "value" : "arp"
645 }
646 ],
647 "op" : "extract"
648 }
649 ],
650 "transitions" : [
651 {
652 "value" : "default",
653 "mask" : null,
654 "next_state" : null
655 }
656 ],
657 "transition_key" : []
658 },
659 {
660 "name" : "parse_tcp",
Yi Tseng47eac892018-07-11 02:17:04 +0800661 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700662 "parser_ops" : [
663 {
664 "parameters" : [
665 {
666 "type" : "regular",
667 "value" : "tcp"
668 }
669 ],
670 "op" : "extract"
671 },
672 {
673 "parameters" : [
674 {
675 "type" : "field",
676 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
677 },
678 {
679 "type" : "field",
680 "value" : ["tcp", "src_port"]
681 }
682 ],
683 "op" : "set"
684 },
685 {
686 "parameters" : [
687 {
688 "type" : "field",
689 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
690 },
691 {
692 "type" : "field",
693 "value" : ["tcp", "dst_port"]
694 }
695 ],
696 "op" : "set"
697 }
698 ],
699 "transitions" : [
700 {
701 "value" : "default",
702 "mask" : null,
703 "next_state" : null
704 }
705 ],
706 "transition_key" : []
707 },
708 {
709 "name" : "parse_udp",
Yi Tseng47eac892018-07-11 02:17:04 +0800710 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700711 "parser_ops" : [
712 {
713 "parameters" : [
714 {
715 "type" : "regular",
716 "value" : "udp"
717 }
718 ],
719 "op" : "extract"
720 },
721 {
722 "parameters" : [
723 {
724 "type" : "field",
725 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
726 },
727 {
728 "type" : "field",
729 "value" : ["udp", "src_port"]
730 }
731 ],
732 "op" : "set"
733 },
734 {
735 "parameters" : [
736 {
737 "type" : "field",
738 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
739 },
740 {
741 "type" : "field",
742 "value" : ["udp", "dst_port"]
743 }
744 ],
745 "op" : "set"
746 }
747 ],
748 "transitions" : [
749 {
750 "value" : "default",
751 "mask" : null,
752 "next_state" : null
753 }
754 ],
755 "transition_key" : []
756 },
757 {
758 "name" : "parse_icmp",
Yi Tseng47eac892018-07-11 02:17:04 +0800759 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700760 "parser_ops" : [
761 {
762 "parameters" : [
763 {
764 "type" : "regular",
765 "value" : "icmp"
766 }
767 ],
768 "op" : "extract"
769 }
770 ],
771 "transitions" : [
772 {
773 "value" : "default",
774 "mask" : null,
775 "next_state" : null
776 }
777 ],
778 "transition_key" : []
779 }
780 ]
781 }
782 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800783 "parse_vsets" : [],
Yi Tsengbe342052017-11-03 10:21:23 -0700784 "deparsers" : [
785 {
786 "name" : "deparser",
787 "id" : 0,
788 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +0800789 "filename" : "./include/parser.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800790 "line" : 165,
Yi Tsengbe342052017-11-03 10:21:23 -0700791 "column" : 8,
792 "source_fragment" : "FabricDeparser"
793 },
Yi Tseng47eac892018-07-11 02:17:04 +0800794 "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "ipv4", "ipv6", "tcp", "udp", "icmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700795 }
796 ],
797 "meter_arrays" : [],
798 "counter_arrays" : [
799 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800800 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Yi Tseng1d842672017-11-28 16:06:52 -0800801 "id" : 0,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800802 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800803 "binding" : "FabricIngress.filtering.ingress_port_vlan"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800804 },
805 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800806 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800807 "id" : 1,
808 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800809 "binding" : "FabricIngress.filtering.fwd_classifier"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800810 },
811 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800812 "name" : "FabricIngress.forwarding.bridging_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800813 "id" : 2,
814 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800815 "binding" : "FabricIngress.forwarding.bridging"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800816 },
817 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800818 "name" : "FabricIngress.forwarding.mpls_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800819 "id" : 3,
820 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800821 "binding" : "FabricIngress.forwarding.mpls"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800822 },
823 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800824 "name" : "FabricIngress.forwarding.unicast_v4_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800825 "id" : 4,
826 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800827 "binding" : "FabricIngress.forwarding.unicast_v4"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800828 },
829 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800830 "name" : "FabricIngress.forwarding.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800831 "id" : 5,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800832 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800833 "binding" : "FabricIngress.forwarding.acl"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800834 },
835 {
Yi Tseng47eac892018-07-11 02:17:04 +0800836 "name" : "FabricIngress.forwarding.multicast_v4_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200837 "id" : 6,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800838 "is_direct" : true,
Yi Tseng47eac892018-07-11 02:17:04 +0800839 "binding" : "FabricIngress.forwarding.multicast_v4"
840 },
841 {
842 "name" : "FabricIngress.forwarding.unicast_v6_counter",
843 "id" : 7,
844 "is_direct" : true,
845 "binding" : "FabricIngress.forwarding.unicast_v6"
846 },
847 {
848 "name" : "FabricIngress.forwarding.multicast_v6_counter",
849 "id" : 8,
850 "is_direct" : true,
851 "binding" : "FabricIngress.forwarding.multicast_v6"
852 },
853 {
854 "name" : "FabricIngress.next.vlan_meta_counter",
855 "id" : 9,
856 "is_direct" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800857 "binding" : "FabricIngress.next.vlan_meta"
858 },
859 {
860 "name" : "FabricIngress.next.simple_counter",
Yi Tseng47eac892018-07-11 02:17:04 +0800861 "id" : 10,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800862 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800863 "binding" : "FabricIngress.next.simple"
864 },
865 {
866 "name" : "FabricIngress.next.hashed_counter",
Yi Tseng47eac892018-07-11 02:17:04 +0800867 "id" : 11,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800868 "is_direct" : true,
869 "binding" : "FabricIngress.next.hashed"
870 },
871 {
Esin Karaman971fb7f2017-12-28 13:44:52 +0000872 "name" : "FabricIngress.next.multicast_counter",
Yi Tseng47eac892018-07-11 02:17:04 +0800873 "id" : 12,
Esin Karaman971fb7f2017-12-28 13:44:52 +0000874 "is_direct" : true,
875 "binding" : "FabricIngress.next.multicast"
876 },
877 {
878 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Yi Tseng47eac892018-07-11 02:17:04 +0800879 "id" : 13,
Yi Tsengbe342052017-11-03 10:21:23 -0700880 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +0800881 "filename" : "./include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -0700882 "line" : 23,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800883 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700884 "source_fragment" : "egress_port_counter"
885 },
886 "size" : 511,
887 "is_direct" : false
888 },
889 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800890 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Yi Tseng47eac892018-07-11 02:17:04 +0800891 "id" : 14,
Yi Tsengbe342052017-11-03 10:21:23 -0700892 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +0800893 "filename" : "./include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -0700894 "line" : 24,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800895 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700896 "source_fragment" : "ingress_port_counter"
897 },
898 "size" : 511,
899 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +0800900 },
901 {
902 "name" : "FabricEgress.egress_next.egress_vlan_counter",
903 "id" : 15,
904 "is_direct" : true,
905 "binding" : "FabricEgress.egress_next.egress_vlan"
Yi Tsengbe342052017-11-03 10:21:23 -0700906 }
907 ],
908 "register_arrays" : [],
909 "calculations" : [
910 {
911 "name" : "calc",
912 "id" : 0,
913 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +0800914 "filename" : "./include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200915 "line" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -0700916 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200917 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -0700918 },
919 "algo" : "csum16",
920 "input" : [
921 {
922 "type" : "field",
923 "value" : ["ipv4", "version"]
924 },
925 {
926 "type" : "field",
927 "value" : ["ipv4", "ihl"]
928 },
929 {
930 "type" : "field",
931 "value" : ["ipv4", "diffserv"]
932 },
933 {
934 "type" : "field",
935 "value" : ["ipv4", "total_len"]
936 },
937 {
938 "type" : "field",
939 "value" : ["ipv4", "identification"]
940 },
941 {
942 "type" : "field",
943 "value" : ["ipv4", "flags"]
944 },
945 {
946 "type" : "field",
947 "value" : ["ipv4", "frag_offset"]
948 },
949 {
950 "type" : "field",
951 "value" : ["ipv4", "ttl"]
952 },
953 {
954 "type" : "field",
955 "value" : ["ipv4", "protocol"]
956 },
957 {
958 "type" : "field",
959 "value" : ["ipv4", "src_addr"]
960 },
961 {
962 "type" : "field",
963 "value" : ["ipv4", "dst_addr"]
964 }
965 ]
966 },
967 {
968 "name" : "calc_0",
969 "id" : 1,
970 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +0800971 "filename" : "./include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200972 "line" : 56,
Yi Tsengbe342052017-11-03 10:21:23 -0700973 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200974 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -0700975 },
976 "algo" : "csum16",
977 "input" : [
978 {
979 "type" : "field",
980 "value" : ["ipv4", "version"]
981 },
982 {
983 "type" : "field",
984 "value" : ["ipv4", "ihl"]
985 },
986 {
987 "type" : "field",
988 "value" : ["ipv4", "diffserv"]
989 },
990 {
991 "type" : "field",
992 "value" : ["ipv4", "total_len"]
993 },
994 {
995 "type" : "field",
996 "value" : ["ipv4", "identification"]
997 },
998 {
999 "type" : "field",
1000 "value" : ["ipv4", "flags"]
1001 },
1002 {
1003 "type" : "field",
1004 "value" : ["ipv4", "frag_offset"]
1005 },
1006 {
1007 "type" : "field",
1008 "value" : ["ipv4", "ttl"]
1009 },
1010 {
1011 "type" : "field",
1012 "value" : ["ipv4", "protocol"]
1013 },
1014 {
1015 "type" : "field",
1016 "value" : ["ipv4", "src_addr"]
1017 },
1018 {
1019 "type" : "field",
1020 "value" : ["ipv4", "dst_addr"]
1021 }
1022 ]
Yi Tsengbe342052017-11-03 10:21:23 -07001023 }
1024 ],
1025 "learn_lists" : [],
1026 "actions" : [
1027 {
1028 "name" : "nop",
1029 "id" : 0,
1030 "runtime_data" : [],
1031 "primitives" : []
1032 },
1033 {
1034 "name" : "nop",
1035 "id" : 1,
1036 "runtime_data" : [],
1037 "primitives" : []
1038 },
1039 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001040 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001041 "id" : 2,
1042 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001043 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001044 },
1045 {
Yi Tseng1d842672017-11-28 16:06:52 -08001046 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -07001047 "id" : 3,
1048 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001049 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001050 },
1051 {
1052 "name" : "NoAction",
1053 "id" : 4,
1054 "runtime_data" : [],
1055 "primitives" : []
1056 },
1057 {
1058 "name" : "NoAction",
1059 "id" : 5,
1060 "runtime_data" : [],
1061 "primitives" : []
1062 },
1063 {
1064 "name" : "NoAction",
1065 "id" : 6,
1066 "runtime_data" : [],
1067 "primitives" : []
1068 },
1069 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001070 "name" : "NoAction",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001071 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -07001072 "runtime_data" : [],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001073 "primitives" : []
1074 },
1075 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001076 "name" : "NoAction",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001077 "id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001078 "runtime_data" : [],
Esin Karaman971fb7f2017-12-28 13:44:52 +00001079 "primitives" : []
1080 },
1081 {
Yi Tseng47eac892018-07-11 02:17:04 +08001082 "name" : "NoAction",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001083 "id" : 9,
1084 "runtime_data" : [],
Yi Tseng47eac892018-07-11 02:17:04 +08001085 "primitives" : []
1086 },
1087 {
1088 "name" : "NoAction",
1089 "id" : 10,
1090 "runtime_data" : [],
1091 "primitives" : []
1092 },
1093 {
1094 "name" : "NoAction",
1095 "id" : 11,
1096 "runtime_data" : [],
1097 "primitives" : []
1098 },
1099 {
1100 "name" : "FabricIngress.filtering.drop",
1101 "id" : 12,
1102 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001103 "primitives" : [
1104 {
1105 "op" : "drop",
1106 "parameters" : [],
1107 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001108 "filename" : "./include/control/filtering.p4",
1109 "line" : 37,
Yi Tseng1d842672017-11-28 16:06:52 -08001110 "column" : 8,
1111 "source_fragment" : "mark_to_drop()"
1112 }
1113 }
1114 ]
Yi Tsengbe342052017-11-03 10:21:23 -07001115 },
1116 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001117 "name" : "FabricIngress.filtering.set_vlan",
Yi Tseng47eac892018-07-11 02:17:04 +08001118 "id" : 13,
Yi Tsengbe342052017-11-03 10:21:23 -07001119 "runtime_data" : [
1120 {
1121 "name" : "new_vlan_id",
1122 "bitwidth" : 12
1123 }
1124 ],
1125 "primitives" : [
1126 {
1127 "op" : "assign",
1128 "parameters" : [
1129 {
1130 "type" : "field",
1131 "value" : ["vlan_tag", "vlan_id"]
1132 },
1133 {
1134 "type" : "runtime_data",
1135 "value" : 0
1136 }
1137 ],
1138 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001139 "filename" : "./include/control/filtering.p4",
1140 "line" : 42,
Yi Tsengbe342052017-11-03 10:21:23 -07001141 "column" : 8,
1142 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1143 }
1144 }
1145 ]
1146 },
1147 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001148 "name" : "FabricIngress.filtering.push_internal_vlan",
Yi Tseng47eac892018-07-11 02:17:04 +08001149 "id" : 14,
Yi Tsengbe342052017-11-03 10:21:23 -07001150 "runtime_data" : [
1151 {
1152 "name" : "new_vlan_id",
1153 "bitwidth" : 12
1154 }
1155 ],
1156 "primitives" : [
1157 {
1158 "op" : "add_header",
1159 "parameters" : [
1160 {
1161 "type" : "header",
1162 "value" : "vlan_tag"
1163 }
1164 ],
1165 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001166 "filename" : "./include/control/filtering.p4",
1167 "line" : 49,
Yi Tsengbe342052017-11-03 10:21:23 -07001168 "column" : 8,
1169 "source_fragment" : "hdr.vlan_tag.setValid()"
1170 }
1171 },
1172 {
1173 "op" : "assign",
1174 "parameters" : [
1175 {
1176 "type" : "field",
1177 "value" : ["vlan_tag", "cfi"]
1178 },
1179 {
1180 "type" : "hexstr",
1181 "value" : "0x00"
1182 }
1183 ],
1184 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001185 "filename" : "./include/control/filtering.p4",
1186 "line" : 50,
Yi Tsengbe342052017-11-03 10:21:23 -07001187 "column" : 8,
1188 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1189 }
1190 },
1191 {
1192 "op" : "assign",
1193 "parameters" : [
1194 {
1195 "type" : "field",
1196 "value" : ["vlan_tag", "pri"]
1197 },
1198 {
1199 "type" : "hexstr",
1200 "value" : "0x00"
1201 }
1202 ],
1203 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001204 "filename" : "./include/control/filtering.p4",
1205 "line" : 51,
Yi Tsengbe342052017-11-03 10:21:23 -07001206 "column" : 8,
1207 "source_fragment" : "hdr.vlan_tag.pri = 0"
1208 }
1209 },
1210 {
1211 "op" : "assign",
1212 "parameters" : [
1213 {
1214 "type" : "field",
1215 "value" : ["vlan_tag", "ether_type"]
1216 },
1217 {
Yi Tseng1d842672017-11-28 16:06:52 -08001218 "type" : "field",
1219 "value" : ["ethernet", "ether_type"]
1220 }
1221 ],
1222 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001223 "filename" : "./include/control/filtering.p4",
1224 "line" : 52,
Yi Tseng1d842672017-11-28 16:06:52 -08001225 "column" : 8,
1226 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1227 }
1228 },
1229 {
1230 "op" : "assign",
1231 "parameters" : [
1232 {
1233 "type" : "field",
1234 "value" : ["ethernet", "ether_type"]
1235 },
1236 {
Yi Tsengbe342052017-11-03 10:21:23 -07001237 "type" : "hexstr",
1238 "value" : "0x8100"
1239 }
1240 ],
1241 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001242 "filename" : "./include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02001243 "line" : 66,
Yi Tsengbe342052017-11-03 10:21:23 -07001244 "column" : 31,
1245 "source_fragment" : "0x8100; ..."
1246 }
1247 },
1248 {
1249 "op" : "assign",
1250 "parameters" : [
1251 {
1252 "type" : "field",
1253 "value" : ["vlan_tag", "vlan_id"]
1254 },
1255 {
1256 "type" : "runtime_data",
1257 "value" : 0
1258 }
1259 ],
1260 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001261 "filename" : "./include/control/filtering.p4",
1262 "line" : 54,
Yi Tsengbe342052017-11-03 10:21:23 -07001263 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001264 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
Yi Tsengbe342052017-11-03 10:21:23 -07001265 }
1266 },
1267 {
1268 "op" : "assign",
1269 "parameters" : [
1270 {
1271 "type" : "field",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001272 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
Yi Tsengbe342052017-11-03 10:21:23 -07001273 },
1274 {
1275 "type" : "expression",
1276 "value" : {
1277 "type" : "expression",
1278 "value" : {
1279 "op" : "b2d",
1280 "left" : null,
1281 "right" : {
1282 "type" : "bool",
1283 "value" : true
1284 }
1285 }
1286 }
1287 }
1288 ],
1289 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001290 "filename" : "./include/control/filtering.p4",
1291 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07001292 "column" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001293 "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
Yi Tsengbe342052017-11-03 10:21:23 -07001294 }
1295 }
1296 ]
1297 },
1298 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001299 "name" : "FabricIngress.filtering.set_forwarding_type",
Yi Tseng47eac892018-07-11 02:17:04 +08001300 "id" : 15,
Yi Tsengbe342052017-11-03 10:21:23 -07001301 "runtime_data" : [
1302 {
1303 "name" : "fwd_type",
1304 "bitwidth" : 3
1305 }
1306 ],
1307 "primitives" : [
1308 {
1309 "op" : "assign",
1310 "parameters" : [
1311 {
1312 "type" : "field",
1313 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1314 },
1315 {
1316 "type" : "runtime_data",
1317 "value" : 0
1318 }
1319 ],
1320 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001321 "filename" : "./include/control/filtering.p4",
1322 "line" : 94,
Yi Tsengbe342052017-11-03 10:21:23 -07001323 "column" : 8,
1324 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1325 }
1326 }
1327 ]
1328 },
1329 {
Yi Tseng47eac892018-07-11 02:17:04 +08001330 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001331 "id" : 16,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001332 "runtime_data" : [
1333 {
1334 "name" : "next_id",
1335 "bitwidth" : 32
1336 }
1337 ],
1338 "primitives" : [
1339 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001340 "op" : "assign",
1341 "parameters" : [
1342 {
1343 "type" : "field",
1344 "value" : ["scalars", "fabric_metadata_t.next_id"]
1345 },
1346 {
1347 "type" : "runtime_data",
1348 "value" : 0
1349 }
1350 ],
1351 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001352 "filename" : "./include/control/forwarding.p4",
1353 "line" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001354 "column" : 8,
1355 "source_fragment" : "fabric_metadata.next_id = next_id"
1356 }
1357 }
1358 ]
1359 },
1360 {
1361 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
1362 "id" : 17,
1363 "runtime_data" : [
1364 {
1365 "name" : "next_id",
1366 "bitwidth" : 32
1367 }
1368 ],
1369 "primitives" : [
1370 {
Yi Tsengbe342052017-11-03 10:21:23 -07001371 "op" : "remove_header",
1372 "parameters" : [
1373 {
1374 "type" : "header",
1375 "value" : "mpls"
1376 }
1377 ],
1378 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001379 "filename" : "./include/control/forwarding.p4",
1380 "line" : 60,
Yi Tsengbe342052017-11-03 10:21:23 -07001381 "column" : 8,
1382 "source_fragment" : "hdr.mpls.setInvalid()"
1383 }
1384 },
1385 {
1386 "op" : "assign",
1387 "parameters" : [
1388 {
1389 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001390 "value" : ["scalars", "fabric_metadata_t.next_id"]
1391 },
1392 {
1393 "type" : "runtime_data",
1394 "value" : 0
1395 }
1396 ],
1397 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001398 "filename" : "./include/control/forwarding.p4",
1399 "line" : 61,
Yi Tsengbe342052017-11-03 10:21:23 -07001400 "column" : 8,
1401 "source_fragment" : "fabric_metadata.next_id = next_id"
1402 }
1403 }
1404 ]
1405 },
1406 {
Yi Tseng47eac892018-07-11 02:17:04 +08001407 "name" : "FabricIngress.forwarding.set_next_id_unicast_v4",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001408 "id" : 18,
Yi Tseng47eac892018-07-11 02:17:04 +08001409 "runtime_data" : [
1410 {
1411 "name" : "next_id",
1412 "bitwidth" : 32
1413 }
1414 ],
1415 "primitives" : [
1416 {
1417 "op" : "assign",
1418 "parameters" : [
1419 {
1420 "type" : "field",
1421 "value" : ["scalars", "fabric_metadata_t.next_id"]
1422 },
1423 {
1424 "type" : "runtime_data",
1425 "value" : 0
1426 }
1427 ],
1428 "source_info" : {
1429 "filename" : "./include/control/forwarding.p4",
1430 "line" : 83,
1431 "column" : 8,
1432 "source_fragment" : "fabric_metadata.next_id = next_id"
1433 }
1434 }
1435 ]
1436 },
1437 {
1438 "name" : "FabricIngress.forwarding.set_next_id_acl",
1439 "id" : 19,
1440 "runtime_data" : [
1441 {
1442 "name" : "next_id",
1443 "bitwidth" : 32
1444 }
1445 ],
1446 "primitives" : [
1447 {
1448 "op" : "assign",
1449 "parameters" : [
1450 {
1451 "type" : "field",
1452 "value" : ["scalars", "fabric_metadata_t.next_id"]
1453 },
1454 {
1455 "type" : "runtime_data",
1456 "value" : 0
1457 }
1458 ],
1459 "source_info" : {
1460 "filename" : "./include/control/forwarding.p4",
1461 "line" : 105,
1462 "column" : 8,
1463 "source_fragment" : "fabric_metadata.next_id = next_id"
1464 }
1465 }
1466 ]
1467 },
1468 {
1469 "name" : "FabricIngress.forwarding.send_to_controller",
1470 "id" : 20,
Yi Tsengbe342052017-11-03 10:21:23 -07001471 "runtime_data" : [],
1472 "primitives" : [
1473 {
1474 "op" : "assign",
1475 "parameters" : [
1476 {
1477 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001478 "value" : ["standard_metadata", "egress_spec"]
1479 },
1480 {
1481 "type" : "hexstr",
1482 "value" : "0x00ff"
1483 }
1484 ],
1485 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001486 "filename" : "./include/control/forwarding.p4",
1487 "line" : 110,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001488 "column" : 8,
1489 "source_fragment" : "standard_metadata.egress_spec = 255"
Yi Tsengbe342052017-11-03 10:21:23 -07001490 }
1491 }
1492 ]
1493 },
1494 {
Yi Tseng47eac892018-07-11 02:17:04 +08001495 "name" : "FabricIngress.forwarding.drop",
1496 "id" : 21,
1497 "runtime_data" : [],
1498 "primitives" : [
1499 {
1500 "op" : "drop",
1501 "parameters" : [],
1502 "source_info" : {
1503 "filename" : "./include/control/forwarding.p4",
1504 "line" : 115,
1505 "column" : 8,
1506 "source_fragment" : "mark_to_drop()"
1507 }
1508 }
1509 ]
1510 },
1511 {
1512 "name" : "FabricIngress.forwarding.set_next_id_multicast_v4",
1513 "id" : 22,
1514 "runtime_data" : [
1515 {
1516 "name" : "next_id",
1517 "bitwidth" : 32
1518 }
1519 ],
1520 "primitives" : [
1521 {
1522 "op" : "assign",
1523 "parameters" : [
1524 {
1525 "type" : "field",
1526 "value" : ["scalars", "fabric_metadata_t.next_id"]
1527 },
1528 {
1529 "type" : "runtime_data",
1530 "value" : 0
1531 }
1532 ],
1533 "source_info" : {
1534 "filename" : "./include/control/forwarding.p4",
1535 "line" : 155,
1536 "column" : 8,
1537 "source_fragment" : "fabric_metadata.next_id = next_id"
1538 }
1539 }
1540 ]
1541 },
1542 {
1543 "name" : "FabricIngress.forwarding.set_next_id_unicast_v6",
1544 "id" : 23,
1545 "runtime_data" : [
1546 {
1547 "name" : "next_id",
1548 "bitwidth" : 32
1549 }
1550 ],
1551 "primitives" : [
1552 {
1553 "op" : "assign",
1554 "parameters" : [
1555 {
1556 "type" : "field",
1557 "value" : ["scalars", "fabric_metadata_t.next_id"]
1558 },
1559 {
1560 "type" : "runtime_data",
1561 "value" : 0
1562 }
1563 ],
1564 "source_info" : {
1565 "filename" : "./include/control/forwarding.p4",
1566 "line" : 180,
1567 "column" : 8,
1568 "source_fragment" : "fabric_metadata.next_id = next_id"
1569 }
1570 }
1571 ]
1572 },
1573 {
1574 "name" : "FabricIngress.forwarding.set_next_id_multicast_v6",
1575 "id" : 24,
1576 "runtime_data" : [
1577 {
1578 "name" : "next_id",
1579 "bitwidth" : 32
1580 }
1581 ],
1582 "primitives" : [
1583 {
1584 "op" : "assign",
1585 "parameters" : [
1586 {
1587 "type" : "field",
1588 "value" : ["scalars", "fabric_metadata_t.next_id"]
1589 },
1590 {
1591 "type" : "runtime_data",
1592 "value" : 0
1593 }
1594 ],
1595 "source_info" : {
1596 "filename" : "./include/control/forwarding.p4",
1597 "line" : 203,
1598 "column" : 8,
1599 "source_fragment" : "fabric_metadata.next_id = next_id"
1600 }
1601 }
1602 ]
1603 },
1604 {
1605 "name" : "FabricIngress.next.set_vlan",
1606 "id" : 25,
1607 "runtime_data" : [
1608 {
1609 "name" : "new_vlan_id",
1610 "bitwidth" : 12
1611 }
1612 ],
1613 "primitives" : [
1614 {
1615 "op" : "assign",
1616 "parameters" : [
1617 {
1618 "type" : "field",
1619 "value" : ["vlan_tag", "vlan_id"]
1620 },
1621 {
1622 "type" : "runtime_data",
1623 "value" : 0
1624 }
1625 ],
1626 "source_info" : {
1627 "filename" : "./include/control/next.p4",
1628 "line" : 61,
1629 "column" : 8,
1630 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1631 }
1632 }
1633 ]
1634 },
1635 {
1636 "name" : "FabricIngress.next.output_simple",
1637 "id" : 26,
Yi Tsengbe342052017-11-03 10:21:23 -07001638 "runtime_data" : [
1639 {
1640 "name" : "port_num",
1641 "bitwidth" : 9
1642 }
1643 ],
1644 "primitives" : [
1645 {
1646 "op" : "assign",
1647 "parameters" : [
1648 {
1649 "type" : "field",
1650 "value" : ["standard_metadata", "egress_spec"]
1651 },
1652 {
1653 "type" : "runtime_data",
1654 "value" : 0
1655 }
1656 ],
1657 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001658 "filename" : "./include/control/next.p4",
1659 "line" : 85,
Yi Tsengbe342052017-11-03 10:21:23 -07001660 "column" : 8,
1661 "source_fragment" : "standard_metadata.egress_spec = port_num"
1662 }
Yi Tsengbe342052017-11-03 10:21:23 -07001663 }
1664 ]
1665 },
1666 {
Yi Tseng47eac892018-07-11 02:17:04 +08001667 "name" : "FabricIngress.next.set_vlan_output",
1668 "id" : 27,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001669 "runtime_data" : [
1670 {
1671 "name" : "new_vlan_id",
1672 "bitwidth" : 12
Yi Tseng47eac892018-07-11 02:17:04 +08001673 },
1674 {
1675 "name" : "port_num",
1676 "bitwidth" : 9
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001677 }
1678 ],
1679 "primitives" : [
1680 {
1681 "op" : "assign",
1682 "parameters" : [
1683 {
1684 "type" : "field",
1685 "value" : ["vlan_tag", "vlan_id"]
1686 },
1687 {
1688 "type" : "runtime_data",
1689 "value" : 0
1690 }
1691 ],
1692 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001693 "filename" : "./include/control/next.p4",
1694 "line" : 90,
1695 "column" : 8,
1696 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1697 }
1698 },
1699 {
1700 "op" : "assign",
1701 "parameters" : [
1702 {
1703 "type" : "field",
1704 "value" : ["standard_metadata", "egress_spec"]
1705 },
1706 {
1707 "type" : "runtime_data",
1708 "value" : 1
1709 }
1710 ],
1711 "source_info" : {
1712 "filename" : "./include/control/next.p4",
1713 "line" : 85,
1714 "column" : 8,
1715 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1716 }
1717 }
1718 ]
1719 },
1720 {
1721 "name" : "FabricIngress.next.l3_routing_simple",
1722 "id" : 28,
1723 "runtime_data" : [
1724 {
1725 "name" : "port_num",
1726 "bitwidth" : 9
1727 },
1728 {
1729 "name" : "smac",
1730 "bitwidth" : 48
1731 },
1732 {
1733 "name" : "dmac",
1734 "bitwidth" : 48
1735 }
1736 ],
1737 "primitives" : [
1738 {
1739 "op" : "assign",
1740 "parameters" : [
1741 {
1742 "type" : "field",
1743 "value" : ["ethernet", "src_addr"]
1744 },
1745 {
1746 "type" : "runtime_data",
1747 "value" : 1
1748 }
1749 ],
1750 "source_info" : {
1751 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001752 "line" : 37,
1753 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001754 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1755 }
1756 },
1757 {
1758 "op" : "assign",
1759 "parameters" : [
1760 {
1761 "type" : "field",
1762 "value" : ["ethernet", "dst_addr"]
1763 },
1764 {
1765 "type" : "runtime_data",
1766 "value" : 2
1767 }
1768 ],
1769 "source_info" : {
1770 "filename" : "./include/control/next.p4",
1771 "line" : 41,
1772 "column" : 8,
1773 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1774 }
1775 },
1776 {
1777 "op" : "assign",
1778 "parameters" : [
1779 {
1780 "type" : "field",
1781 "value" : ["standard_metadata", "egress_spec"]
1782 },
1783 {
1784 "type" : "runtime_data",
1785 "value" : 0
1786 }
1787 ],
1788 "source_info" : {
1789 "filename" : "./include/control/next.p4",
1790 "line" : 85,
1791 "column" : 8,
1792 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001793 }
1794 }
1795 ]
1796 },
1797 {
Yi Tseng47eac892018-07-11 02:17:04 +08001798 "name" : "FabricIngress.next.mpls_routing_v4_simple",
1799 "id" : 29,
Yi Tsengbe342052017-11-03 10:21:23 -07001800 "runtime_data" : [
1801 {
Yi Tsengbe342052017-11-03 10:21:23 -07001802 "name" : "port_num",
1803 "bitwidth" : 9
Yi Tseng47eac892018-07-11 02:17:04 +08001804 },
1805 {
1806 "name" : "smac",
1807 "bitwidth" : 48
1808 },
1809 {
1810 "name" : "dmac",
1811 "bitwidth" : 48
1812 },
1813 {
1814 "name" : "label",
1815 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07001816 }
1817 ],
1818 "primitives" : [
1819 {
1820 "op" : "assign",
1821 "parameters" : [
1822 {
1823 "type" : "field",
Yi Tseng47eac892018-07-11 02:17:04 +08001824 "value" : ["ethernet", "src_addr"]
1825 },
1826 {
1827 "type" : "runtime_data",
1828 "value" : 1
1829 }
1830 ],
1831 "source_info" : {
1832 "filename" : "./include/control/next.p4",
1833 "line" : 37,
1834 "column" : 8,
1835 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1836 }
1837 },
1838 {
1839 "op" : "assign",
1840 "parameters" : [
1841 {
1842 "type" : "field",
1843 "value" : ["ethernet", "dst_addr"]
1844 },
1845 {
1846 "type" : "runtime_data",
1847 "value" : 2
1848 }
1849 ],
1850 "source_info" : {
1851 "filename" : "./include/control/next.p4",
1852 "line" : 41,
1853 "column" : 8,
1854 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1855 }
1856 },
1857 {
1858 "op" : "assign",
1859 "parameters" : [
1860 {
1861 "type" : "field",
1862 "value" : ["standard_metadata", "egress_spec"]
Yi Tsengbe342052017-11-03 10:21:23 -07001863 },
1864 {
1865 "type" : "runtime_data",
1866 "value" : 0
1867 }
1868 ],
1869 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001870 "filename" : "./include/control/next.p4",
1871 "line" : 85,
1872 "column" : 8,
1873 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1874 }
1875 },
1876 {
1877 "op" : "add_header",
1878 "parameters" : [
1879 {
1880 "type" : "header",
1881 "value" : "mpls"
1882 }
1883 ],
1884 "source_info" : {
1885 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001886 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07001887 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001888 "source_fragment" : "hdr.mpls.setValid()"
Yi Tsengbe342052017-11-03 10:21:23 -07001889 }
1890 },
1891 {
1892 "op" : "assign",
1893 "parameters" : [
1894 {
1895 "type" : "field",
Yi Tseng47eac892018-07-11 02:17:04 +08001896 "value" : ["vlan_tag", "ether_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07001897 },
1898 {
Yi Tseng47eac892018-07-11 02:17:04 +08001899 "type" : "hexstr",
1900 "value" : "0x8847"
Yi Tsengbe342052017-11-03 10:21:23 -07001901 }
1902 ],
1903 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001904 "filename" : "./include/control/../define.p4",
1905 "line" : 67,
1906 "column" : 31,
1907 "source_fragment" : "0x8847; ..."
1908 }
1909 },
1910 {
1911 "op" : "assign",
1912 "parameters" : [
1913 {
1914 "type" : "field",
1915 "value" : ["mpls", "label"]
1916 },
1917 {
1918 "type" : "runtime_data",
1919 "value" : 3
1920 }
1921 ],
1922 "source_info" : {
1923 "filename" : "./include/control/next.p4",
1924 "line" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -07001925 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001926 "source_fragment" : "hdr.mpls.label = label; ..."
1927 }
1928 },
1929 {
1930 "op" : "assign",
1931 "parameters" : [
1932 {
1933 "type" : "field",
1934 "value" : ["mpls", "tc"]
1935 },
1936 {
1937 "type" : "hexstr",
1938 "value" : "0x00"
1939 }
1940 ],
1941 "source_info" : {
1942 "filename" : "./include/control/next.p4",
1943 "line" : 49,
1944 "column" : 8,
1945 "source_fragment" : "hdr.mpls.tc = tc; ..."
1946 }
1947 },
1948 {
1949 "op" : "assign",
1950 "parameters" : [
1951 {
1952 "type" : "field",
1953 "value" : ["mpls", "bos"]
1954 },
1955 {
1956 "type" : "hexstr",
1957 "value" : "0x01"
1958 }
1959 ],
1960 "source_info" : {
1961 "filename" : "./include/control/next.p4",
1962 "line" : 50,
1963 "column" : 8,
1964 "source_fragment" : "hdr.mpls.bos = 1w1"
1965 }
1966 },
1967 {
1968 "op" : "assign",
1969 "parameters" : [
1970 {
1971 "type" : "field",
1972 "value" : ["mpls", "ttl"]
1973 },
1974 {
1975 "type" : "hexstr",
1976 "value" : "0x40"
1977 }
1978 ],
1979 "source_info" : {
1980 "filename" : "./include/control/../define.p4",
1981 "line" : 87,
1982 "column" : 32,
1983 "source_fragment" : "64; ..."
Yi Tsengbe342052017-11-03 10:21:23 -07001984 }
Yi Tsengbe342052017-11-03 10:21:23 -07001985 }
1986 ]
1987 },
1988 {
Yi Tseng47eac892018-07-11 02:17:04 +08001989 "name" : "FabricIngress.next.mpls_routing_v6_simple",
1990 "id" : 30,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001991 "runtime_data" : [
1992 {
1993 "name" : "port_num",
1994 "bitwidth" : 9
1995 },
1996 {
1997 "name" : "smac",
1998 "bitwidth" : 48
1999 },
2000 {
2001 "name" : "dmac",
2002 "bitwidth" : 48
Yi Tseng47eac892018-07-11 02:17:04 +08002003 },
2004 {
2005 "name" : "label",
2006 "bitwidth" : 20
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002007 }
2008 ],
2009 "primitives" : [
2010 {
2011 "op" : "assign",
2012 "parameters" : [
2013 {
2014 "type" : "field",
2015 "value" : ["ethernet", "src_addr"]
2016 },
2017 {
2018 "type" : "runtime_data",
2019 "value" : 1
2020 }
2021 ],
2022 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002023 "filename" : "./include/control/next.p4",
2024 "line" : 37,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002025 "column" : 8,
2026 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2027 }
2028 },
2029 {
2030 "op" : "assign",
2031 "parameters" : [
2032 {
2033 "type" : "field",
2034 "value" : ["ethernet", "dst_addr"]
2035 },
2036 {
2037 "type" : "runtime_data",
2038 "value" : 2
2039 }
2040 ],
2041 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002042 "filename" : "./include/control/next.p4",
2043 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002044 "column" : 8,
2045 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2046 }
2047 },
2048 {
2049 "op" : "assign",
2050 "parameters" : [
2051 {
2052 "type" : "field",
2053 "value" : ["standard_metadata", "egress_spec"]
2054 },
2055 {
2056 "type" : "runtime_data",
2057 "value" : 0
2058 }
2059 ],
2060 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002061 "filename" : "./include/control/next.p4",
2062 "line" : 85,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002063 "column" : 8,
2064 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2065 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002066 },
2067 {
Yi Tseng47eac892018-07-11 02:17:04 +08002068 "op" : "add_header",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002069 "parameters" : [
2070 {
Yi Tseng47eac892018-07-11 02:17:04 +08002071 "type" : "header",
2072 "value" : "mpls"
Esin Karaman971fb7f2017-12-28 13:44:52 +00002073 }
2074 ],
2075 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002076 "filename" : "./include/control/next.p4",
2077 "line" : 46,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002078 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08002079 "source_fragment" : "hdr.mpls.setValid()"
Esin Karaman971fb7f2017-12-28 13:44:52 +00002080 }
2081 },
2082 {
2083 "op" : "assign",
2084 "parameters" : [
2085 {
2086 "type" : "field",
Yi Tseng47eac892018-07-11 02:17:04 +08002087 "value" : ["vlan_tag", "ether_type"]
Esin Karaman971fb7f2017-12-28 13:44:52 +00002088 },
2089 {
Yi Tseng47eac892018-07-11 02:17:04 +08002090 "type" : "hexstr",
2091 "value" : "0x8847"
Esin Karaman971fb7f2017-12-28 13:44:52 +00002092 }
2093 ],
2094 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002095 "filename" : "./include/control/../define.p4",
2096 "line" : 67,
2097 "column" : 31,
2098 "source_fragment" : "0x8847; ..."
Esin Karaman971fb7f2017-12-28 13:44:52 +00002099 }
2100 },
2101 {
2102 "op" : "assign",
2103 "parameters" : [
2104 {
2105 "type" : "field",
Yi Tseng47eac892018-07-11 02:17:04 +08002106 "value" : ["mpls", "label"]
Esin Karaman971fb7f2017-12-28 13:44:52 +00002107 },
2108 {
2109 "type" : "runtime_data",
Yi Tseng47eac892018-07-11 02:17:04 +08002110 "value" : 3
Esin Karaman971fb7f2017-12-28 13:44:52 +00002111 }
2112 ],
2113 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002114 "filename" : "./include/control/next.p4",
2115 "line" : 48,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002116 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08002117 "source_fragment" : "hdr.mpls.label = label; ..."
2118 }
2119 },
2120 {
2121 "op" : "assign",
2122 "parameters" : [
2123 {
2124 "type" : "field",
2125 "value" : ["mpls", "tc"]
2126 },
2127 {
2128 "type" : "hexstr",
2129 "value" : "0x00"
2130 }
2131 ],
2132 "source_info" : {
2133 "filename" : "./include/control/next.p4",
2134 "line" : 49,
2135 "column" : 8,
2136 "source_fragment" : "hdr.mpls.tc = tc; ..."
2137 }
2138 },
2139 {
2140 "op" : "assign",
2141 "parameters" : [
2142 {
2143 "type" : "field",
2144 "value" : ["mpls", "bos"]
2145 },
2146 {
2147 "type" : "hexstr",
2148 "value" : "0x01"
2149 }
2150 ],
2151 "source_info" : {
2152 "filename" : "./include/control/next.p4",
2153 "line" : 50,
2154 "column" : 8,
2155 "source_fragment" : "hdr.mpls.bos = 1w1"
2156 }
2157 },
2158 {
2159 "op" : "assign",
2160 "parameters" : [
2161 {
2162 "type" : "field",
2163 "value" : ["mpls", "ttl"]
2164 },
2165 {
2166 "type" : "hexstr",
2167 "value" : "0x40"
2168 }
2169 ],
2170 "source_info" : {
2171 "filename" : "./include/control/../define.p4",
2172 "line" : 87,
2173 "column" : 32,
2174 "source_fragment" : "64; ..."
Esin Karaman971fb7f2017-12-28 13:44:52 +00002175 }
2176 }
2177 ]
2178 },
2179 {
2180 "name" : "FabricIngress.next.l3_routing_vlan",
Yi Tseng47eac892018-07-11 02:17:04 +08002181 "id" : 31,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002182 "runtime_data" : [
2183 {
2184 "name" : "port_num",
2185 "bitwidth" : 9
2186 },
2187 {
2188 "name" : "smac",
2189 "bitwidth" : 48
2190 },
2191 {
2192 "name" : "dmac",
2193 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002194 },
2195 {
2196 "name" : "new_vlan_id",
2197 "bitwidth" : 12
2198 }
2199 ],
2200 "primitives" : [
2201 {
2202 "op" : "assign",
2203 "parameters" : [
2204 {
2205 "type" : "field",
2206 "value" : ["ethernet", "src_addr"]
2207 },
2208 {
2209 "type" : "runtime_data",
2210 "value" : 1
2211 }
2212 ],
2213 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002214 "filename" : "./include/control/next.p4",
2215 "line" : 37,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002216 "column" : 8,
2217 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2218 }
2219 },
2220 {
2221 "op" : "assign",
2222 "parameters" : [
2223 {
2224 "type" : "field",
2225 "value" : ["ethernet", "dst_addr"]
2226 },
2227 {
2228 "type" : "runtime_data",
2229 "value" : 2
2230 }
2231 ],
2232 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002233 "filename" : "./include/control/next.p4",
2234 "line" : 41,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002235 "column" : 8,
2236 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2237 }
2238 },
2239 {
2240 "op" : "assign",
2241 "parameters" : [
2242 {
2243 "type" : "field",
2244 "value" : ["vlan_tag", "vlan_id"]
2245 },
2246 {
2247 "type" : "runtime_data",
2248 "value" : 3
2249 }
2250 ],
2251 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002252 "filename" : "./include/control/next.p4",
2253 "line" : 90,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002254 "column" : 8,
2255 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
2256 }
2257 },
2258 {
2259 "op" : "assign",
2260 "parameters" : [
2261 {
2262 "type" : "field",
2263 "value" : ["standard_metadata", "egress_spec"]
2264 },
2265 {
2266 "type" : "runtime_data",
2267 "value" : 0
2268 }
2269 ],
2270 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002271 "filename" : "./include/control/next.p4",
2272 "line" : 85,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002273 "column" : 8,
2274 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2275 }
2276 }
2277 ]
2278 },
2279 {
Yi Tseng47eac892018-07-11 02:17:04 +08002280 "name" : "FabricIngress.next.l3_routing_hashed",
2281 "id" : 32,
2282 "runtime_data" : [
2283 {
2284 "name" : "port_num",
2285 "bitwidth" : 9
2286 },
2287 {
2288 "name" : "smac",
2289 "bitwidth" : 48
2290 },
2291 {
2292 "name" : "dmac",
2293 "bitwidth" : 48
2294 }
2295 ],
2296 "primitives" : [
2297 {
2298 "op" : "assign",
2299 "parameters" : [
2300 {
2301 "type" : "field",
2302 "value" : ["ethernet", "src_addr"]
2303 },
2304 {
2305 "type" : "runtime_data",
2306 "value" : 1
2307 }
2308 ],
2309 "source_info" : {
2310 "filename" : "./include/control/next.p4",
2311 "line" : 37,
2312 "column" : 8,
2313 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2314 }
2315 },
2316 {
2317 "op" : "assign",
2318 "parameters" : [
2319 {
2320 "type" : "field",
2321 "value" : ["ethernet", "dst_addr"]
2322 },
2323 {
2324 "type" : "runtime_data",
2325 "value" : 2
2326 }
2327 ],
2328 "source_info" : {
2329 "filename" : "./include/control/next.p4",
2330 "line" : 41,
2331 "column" : 8,
2332 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2333 }
2334 },
2335 {
2336 "op" : "assign",
2337 "parameters" : [
2338 {
2339 "type" : "field",
2340 "value" : ["standard_metadata", "egress_spec"]
2341 },
2342 {
2343 "type" : "runtime_data",
2344 "value" : 0
2345 }
2346 ],
2347 "source_info" : {
2348 "filename" : "./include/control/next.p4",
2349 "line" : 149,
2350 "column" : 8,
2351 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2352 }
2353 }
2354 ]
2355 },
2356 {
2357 "name" : "FabricIngress.next.mpls_routing_v4_hashed",
2358 "id" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07002359 "runtime_data" : [
2360 {
2361 "name" : "port_num",
2362 "bitwidth" : 9
2363 },
2364 {
2365 "name" : "smac",
2366 "bitwidth" : 48
2367 },
2368 {
2369 "name" : "dmac",
2370 "bitwidth" : 48
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002371 },
2372 {
2373 "name" : "label",
2374 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07002375 }
2376 ],
2377 "primitives" : [
2378 {
2379 "op" : "assign",
2380 "parameters" : [
2381 {
2382 "type" : "field",
2383 "value" : ["ethernet", "src_addr"]
2384 },
2385 {
2386 "type" : "runtime_data",
2387 "value" : 1
2388 }
2389 ],
2390 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002391 "filename" : "./include/control/next.p4",
2392 "line" : 37,
Yi Tsengbe342052017-11-03 10:21:23 -07002393 "column" : 8,
2394 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2395 }
2396 },
2397 {
2398 "op" : "assign",
2399 "parameters" : [
2400 {
2401 "type" : "field",
2402 "value" : ["ethernet", "dst_addr"]
2403 },
2404 {
2405 "type" : "runtime_data",
2406 "value" : 2
2407 }
2408 ],
2409 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002410 "filename" : "./include/control/next.p4",
2411 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07002412 "column" : 8,
2413 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2414 }
2415 },
2416 {
2417 "op" : "assign",
2418 "parameters" : [
2419 {
2420 "type" : "field",
2421 "value" : ["standard_metadata", "egress_spec"]
2422 },
2423 {
2424 "type" : "runtime_data",
2425 "value" : 0
2426 }
2427 ],
2428 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002429 "filename" : "./include/control/next.p4",
2430 "line" : 149,
Yi Tsengbe342052017-11-03 10:21:23 -07002431 "column" : 8,
2432 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2433 }
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002434 },
2435 {
2436 "op" : "add_header",
2437 "parameters" : [
2438 {
2439 "type" : "header",
2440 "value" : "mpls"
2441 }
2442 ],
2443 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002444 "filename" : "./include/control/next.p4",
2445 "line" : 46,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002446 "column" : 8,
2447 "source_fragment" : "hdr.mpls.setValid()"
2448 }
2449 },
2450 {
2451 "op" : "assign",
2452 "parameters" : [
2453 {
2454 "type" : "field",
2455 "value" : ["vlan_tag", "ether_type"]
2456 },
2457 {
2458 "type" : "hexstr",
2459 "value" : "0x8847"
2460 }
2461 ],
2462 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002463 "filename" : "./include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02002464 "line" : 67,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002465 "column" : 31,
2466 "source_fragment" : "0x8847; ..."
2467 }
2468 },
2469 {
2470 "op" : "assign",
2471 "parameters" : [
2472 {
2473 "type" : "field",
2474 "value" : ["mpls", "label"]
2475 },
2476 {
2477 "type" : "runtime_data",
2478 "value" : 3
2479 }
2480 ],
2481 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002482 "filename" : "./include/control/next.p4",
2483 "line" : 48,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002484 "column" : 8,
2485 "source_fragment" : "hdr.mpls.label = label; ..."
2486 }
2487 },
2488 {
2489 "op" : "assign",
2490 "parameters" : [
2491 {
2492 "type" : "field",
2493 "value" : ["mpls", "tc"]
2494 },
2495 {
2496 "type" : "hexstr",
2497 "value" : "0x00"
2498 }
2499 ],
2500 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002501 "filename" : "./include/control/next.p4",
2502 "line" : 49,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002503 "column" : 8,
2504 "source_fragment" : "hdr.mpls.tc = tc; ..."
2505 }
2506 },
2507 {
2508 "op" : "assign",
2509 "parameters" : [
2510 {
2511 "type" : "field",
2512 "value" : ["mpls", "bos"]
2513 },
2514 {
2515 "type" : "hexstr",
2516 "value" : "0x01"
2517 }
2518 ],
2519 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002520 "filename" : "./include/control/next.p4",
2521 "line" : 50,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002522 "column" : 8,
2523 "source_fragment" : "hdr.mpls.bos = 1w1"
2524 }
2525 },
2526 {
2527 "op" : "assign",
2528 "parameters" : [
2529 {
2530 "type" : "field",
2531 "value" : ["mpls", "ttl"]
2532 },
2533 {
2534 "type" : "hexstr",
2535 "value" : "0x40"
2536 }
2537 ],
2538 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002539 "filename" : "./include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02002540 "line" : 87,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002541 "column" : 32,
2542 "source_fragment" : "64; ..."
2543 }
Yi Tsengbe342052017-11-03 10:21:23 -07002544 }
2545 ]
2546 },
2547 {
Yi Tseng47eac892018-07-11 02:17:04 +08002548 "name" : "FabricIngress.next.mpls_routing_v6_hashed",
2549 "id" : 34,
Yi Tsengbe342052017-11-03 10:21:23 -07002550 "runtime_data" : [
2551 {
2552 "name" : "port_num",
2553 "bitwidth" : 9
2554 },
2555 {
2556 "name" : "smac",
2557 "bitwidth" : 48
2558 },
2559 {
2560 "name" : "dmac",
2561 "bitwidth" : 48
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002562 },
2563 {
2564 "name" : "label",
2565 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07002566 }
2567 ],
2568 "primitives" : [
2569 {
2570 "op" : "assign",
2571 "parameters" : [
2572 {
2573 "type" : "field",
2574 "value" : ["ethernet", "src_addr"]
2575 },
2576 {
2577 "type" : "runtime_data",
2578 "value" : 1
2579 }
2580 ],
2581 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002582 "filename" : "./include/control/next.p4",
2583 "line" : 37,
Yi Tsengbe342052017-11-03 10:21:23 -07002584 "column" : 8,
2585 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2586 }
2587 },
2588 {
2589 "op" : "assign",
2590 "parameters" : [
2591 {
2592 "type" : "field",
2593 "value" : ["ethernet", "dst_addr"]
2594 },
2595 {
2596 "type" : "runtime_data",
2597 "value" : 2
2598 }
2599 ],
2600 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002601 "filename" : "./include/control/next.p4",
2602 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07002603 "column" : 8,
2604 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2605 }
2606 },
2607 {
2608 "op" : "assign",
2609 "parameters" : [
2610 {
2611 "type" : "field",
2612 "value" : ["standard_metadata", "egress_spec"]
2613 },
2614 {
2615 "type" : "runtime_data",
2616 "value" : 0
2617 }
2618 ],
2619 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002620 "filename" : "./include/control/next.p4",
2621 "line" : 149,
Yi Tsengbe342052017-11-03 10:21:23 -07002622 "column" : 8,
2623 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2624 }
Yi Tsengbe342052017-11-03 10:21:23 -07002625 },
2626 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002627 "op" : "add_header",
Yi Tsengbe342052017-11-03 10:21:23 -07002628 "parameters" : [
2629 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002630 "type" : "header",
2631 "value" : "mpls"
Yi Tsengbe342052017-11-03 10:21:23 -07002632 }
2633 ],
2634 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002635 "filename" : "./include/control/next.p4",
2636 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07002637 "column" : 8,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002638 "source_fragment" : "hdr.mpls.setValid()"
2639 }
2640 },
2641 {
2642 "op" : "assign",
2643 "parameters" : [
2644 {
2645 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08002646 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1b154bd2017-11-20 17:48:19 -08002647 },
2648 {
2649 "type" : "hexstr",
2650 "value" : "0x8847"
2651 }
2652 ],
2653 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002654 "filename" : "./include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02002655 "line" : 67,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002656 "column" : 31,
2657 "source_fragment" : "0x8847; ..."
2658 }
2659 },
2660 {
2661 "op" : "assign",
2662 "parameters" : [
2663 {
2664 "type" : "field",
2665 "value" : ["mpls", "label"]
2666 },
2667 {
2668 "type" : "runtime_data",
2669 "value" : 3
2670 }
2671 ],
2672 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002673 "filename" : "./include/control/next.p4",
2674 "line" : 48,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002675 "column" : 8,
2676 "source_fragment" : "hdr.mpls.label = label; ..."
2677 }
2678 },
2679 {
2680 "op" : "assign",
2681 "parameters" : [
2682 {
2683 "type" : "field",
2684 "value" : ["mpls", "tc"]
2685 },
2686 {
Yi Tseng1d842672017-11-28 16:06:52 -08002687 "type" : "hexstr",
2688 "value" : "0x00"
Yi Tseng1b154bd2017-11-20 17:48:19 -08002689 }
2690 ],
2691 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002692 "filename" : "./include/control/next.p4",
2693 "line" : 49,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002694 "column" : 8,
2695 "source_fragment" : "hdr.mpls.tc = tc; ..."
2696 }
2697 },
2698 {
2699 "op" : "assign",
2700 "parameters" : [
2701 {
2702 "type" : "field",
2703 "value" : ["mpls", "bos"]
2704 },
2705 {
2706 "type" : "hexstr",
2707 "value" : "0x01"
2708 }
2709 ],
2710 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002711 "filename" : "./include/control/next.p4",
2712 "line" : 50,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002713 "column" : 8,
Yi Tseng1d842672017-11-28 16:06:52 -08002714 "source_fragment" : "hdr.mpls.bos = 1w1"
Yi Tseng1b154bd2017-11-20 17:48:19 -08002715 }
2716 },
2717 {
2718 "op" : "assign",
2719 "parameters" : [
2720 {
2721 "type" : "field",
2722 "value" : ["mpls", "ttl"]
2723 },
2724 {
2725 "type" : "hexstr",
2726 "value" : "0x40"
2727 }
2728 ],
2729 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002730 "filename" : "./include/control/../define.p4",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002731 "line" : 87,
2732 "column" : 32,
2733 "source_fragment" : "64; ..."
2734 }
2735 }
2736 ]
2737 },
2738 {
2739 "name" : "FabricIngress.next.set_mcast_group",
Yi Tseng47eac892018-07-11 02:17:04 +08002740 "id" : 35,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002741 "runtime_data" : [
2742 {
2743 "name" : "gid",
2744 "bitwidth" : 16
2745 }
2746 ],
2747 "primitives" : [
2748 {
2749 "op" : "assign",
2750 "parameters" : [
2751 {
2752 "type" : "field",
2753 "value" : ["standard_metadata", "mcast_grp"]
2754 },
2755 {
2756 "type" : "runtime_data",
2757 "value" : 0
2758 }
2759 ],
2760 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002761 "filename" : "./include/control/next.p4",
2762 "line" : 202,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002763 "column" : 8,
2764 "source_fragment" : "standard_metadata.mcast_grp = gid"
2765 }
2766 }
2767 ]
2768 },
2769 {
2770 "name" : "act",
Yi Tseng47eac892018-07-11 02:17:04 +08002771 "id" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07002772 "runtime_data" : [],
2773 "primitives" : [
2774 {
2775 "op" : "assign",
2776 "parameters" : [
2777 {
2778 "type" : "field",
2779 "value" : ["standard_metadata", "egress_spec"]
2780 },
2781 {
2782 "type" : "field",
2783 "value" : ["packet_out", "egress_port"]
2784 }
2785 ],
2786 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002787 "filename" : "./include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07002788 "line" : 26,
2789 "column" : 12,
2790 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2791 }
Yi Tseng1d842672017-11-28 16:06:52 -08002792 },
2793 {
2794 "op" : "remove_header",
2795 "parameters" : [
2796 {
2797 "type" : "header",
2798 "value" : "packet_out"
2799 }
2800 ],
2801 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002802 "filename" : "./include/control/packetio.p4",
Yi Tseng1d842672017-11-28 16:06:52 -08002803 "line" : 27,
2804 "column" : 12,
2805 "source_fragment" : "hdr.packet_out.setInvalid()"
2806 }
Yi Tsengbe342052017-11-03 10:21:23 -07002807 }
2808 ]
2809 },
2810 {
2811 "name" : "act_0",
Yi Tseng47eac892018-07-11 02:17:04 +08002812 "id" : 37,
Yi Tsengbe342052017-11-03 10:21:23 -07002813 "runtime_data" : [],
2814 "primitives" : [
2815 {
2816 "op" : "assign",
2817 "parameters" : [
2818 {
2819 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08002820 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1d842672017-11-28 16:06:52 -08002821 },
2822 {
2823 "type" : "hexstr",
2824 "value" : "0x0800"
2825 }
2826 ],
2827 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002828 "filename" : "./include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02002829 "line" : 69,
Yi Tseng1d842672017-11-28 16:06:52 -08002830 "column" : 31,
2831 "source_fragment" : "0x0800; ..."
2832 }
2833 },
2834 {
2835 "op" : "assign",
2836 "parameters" : [
2837 {
2838 "type" : "field",
2839 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
2840 },
2841 {
2842 "type" : "hexstr",
2843 "value" : "0x0800"
2844 }
2845 ],
2846 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002847 "filename" : "./include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02002848 "line" : 69,
Yi Tseng1d842672017-11-28 16:06:52 -08002849 "column" : 31,
2850 "source_fragment" : "0x0800; ..."
2851 }
2852 }
2853 ]
2854 },
2855 {
2856 "name" : "act_1",
Yi Tseng47eac892018-07-11 02:17:04 +08002857 "id" : 38,
Yi Tseng1d842672017-11-28 16:06:52 -08002858 "runtime_data" : [],
2859 "primitives" : [
2860 {
2861 "op" : "assign",
2862 "parameters" : [
2863 {
2864 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08002865 "value" : ["scalars", "next_tmp_0"]
2866 },
2867 {
2868 "type" : "expression",
2869 "value" : {
2870 "type" : "expression",
2871 "value" : {
2872 "op" : "b2d",
2873 "left" : null,
2874 "right" : {
2875 "type" : "bool",
2876 "value" : true
2877 }
2878 }
2879 }
2880 }
2881 ]
2882 }
2883 ]
2884 },
2885 {
Yi Tsengbd46d052018-01-22 17:18:16 -08002886 "name" : "act_2",
Yi Tseng47eac892018-07-11 02:17:04 +08002887 "id" : 39,
Yi Tseng1d842672017-11-28 16:06:52 -08002888 "runtime_data" : [],
2889 "primitives" : [
2890 {
2891 "op" : "assign",
2892 "parameters" : [
2893 {
2894 "type" : "field",
2895 "value" : ["scalars", "next_tmp_0"]
2896 },
2897 {
2898 "type" : "expression",
2899 "value" : {
2900 "type" : "expression",
2901 "value" : {
2902 "op" : "b2d",
2903 "left" : null,
2904 "right" : {
2905 "type" : "bool",
2906 "value" : false
2907 }
2908 }
2909 }
2910 }
2911 ]
2912 }
2913 ]
2914 },
2915 {
Yi Tsengbd46d052018-01-22 17:18:16 -08002916 "name" : "act_3",
Yi Tseng47eac892018-07-11 02:17:04 +08002917 "id" : 40,
Yi Tseng1d842672017-11-28 16:06:52 -08002918 "runtime_data" : [],
2919 "primitives" : [
2920 {
2921 "op" : "assign",
2922 "parameters" : [
2923 {
2924 "type" : "field",
2925 "value" : ["ipv4", "ttl"]
2926 },
2927 {
2928 "type" : "expression",
2929 "value" : {
2930 "type" : "expression",
2931 "value" : {
2932 "op" : "&",
2933 "left" : {
2934 "type" : "expression",
2935 "value" : {
2936 "op" : "+",
2937 "left" : {
2938 "type" : "field",
2939 "value" : ["ipv4", "ttl"]
2940 },
2941 "right" : {
2942 "type" : "hexstr",
2943 "value" : "0xff"
2944 }
2945 }
2946 },
2947 "right" : {
2948 "type" : "hexstr",
2949 "value" : "0xff"
2950 }
2951 }
2952 }
2953 }
2954 ],
2955 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002956 "filename" : "./include/control/next.p4",
2957 "line" : 221,
Yi Tseng1d842672017-11-28 16:06:52 -08002958 "column" : 20,
2959 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
2960 }
2961 }
2962 ]
2963 },
2964 {
Yi Tsengbd46d052018-01-22 17:18:16 -08002965 "name" : "act_4",
Yi Tseng47eac892018-07-11 02:17:04 +08002966 "id" : 41,
2967 "runtime_data" : [],
2968 "primitives" : [
2969 {
2970 "op" : "assign",
2971 "parameters" : [
2972 {
2973 "type" : "field",
2974 "value" : ["ipv6", "hop_limit"]
2975 },
2976 {
2977 "type" : "expression",
2978 "value" : {
2979 "type" : "expression",
2980 "value" : {
2981 "op" : "&",
2982 "left" : {
2983 "type" : "expression",
2984 "value" : {
2985 "op" : "+",
2986 "left" : {
2987 "type" : "field",
2988 "value" : ["ipv6", "hop_limit"]
2989 },
2990 "right" : {
2991 "type" : "hexstr",
2992 "value" : "0xff"
2993 }
2994 }
2995 },
2996 "right" : {
2997 "type" : "hexstr",
2998 "value" : "0xff"
2999 }
3000 }
3001 }
3002 }
3003 ],
3004 "source_info" : {
3005 "filename" : "./include/control/next.p4",
3006 "line" : 225,
3007 "column" : 20,
3008 "source_fragment" : "hdr.ipv6.hop_limit = hdr.ipv6.hop_limit - 1"
3009 }
3010 }
3011 ]
3012 },
3013 {
3014 "name" : "act_5",
3015 "id" : 42,
Yi Tseng1d842672017-11-28 16:06:52 -08003016 "runtime_data" : [],
3017 "primitives" : [
3018 {
3019 "op" : "assign",
3020 "parameters" : [
3021 {
3022 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003023 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -07003024 },
3025 {
3026 "type" : "expression",
3027 "value" : {
3028 "type" : "expression",
3029 "value" : {
3030 "op" : "&",
3031 "left" : {
3032 "type" : "field",
3033 "value" : ["standard_metadata", "egress_spec"]
3034 },
3035 "right" : {
3036 "type" : "hexstr",
3037 "value" : "0xffffffff"
3038 }
3039 }
3040 }
3041 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003042 ],
3043 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003044 "filename" : "./include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003045 "line" : 28,
3046 "column" : 38,
3047 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3048 }
Yi Tsengbe342052017-11-03 10:21:23 -07003049 },
3050 {
3051 "op" : "count",
3052 "parameters" : [
3053 {
3054 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003055 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Yi Tsengbe342052017-11-03 10:21:23 -07003056 },
3057 {
3058 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003059 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -07003060 }
3061 ],
3062 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003063 "filename" : "./include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003064 "line" : 28,
3065 "column" : 12,
3066 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3067 }
3068 }
3069 ]
3070 },
3071 {
Yi Tseng47eac892018-07-11 02:17:04 +08003072 "name" : "act_6",
3073 "id" : 43,
Yi Tsengbe342052017-11-03 10:21:23 -07003074 "runtime_data" : [],
3075 "primitives" : [
3076 {
3077 "op" : "assign",
3078 "parameters" : [
3079 {
3080 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003081 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -07003082 },
3083 {
3084 "type" : "expression",
3085 "value" : {
3086 "type" : "expression",
3087 "value" : {
3088 "op" : "&",
3089 "left" : {
3090 "type" : "field",
3091 "value" : ["standard_metadata", "ingress_port"]
3092 },
3093 "right" : {
3094 "type" : "hexstr",
3095 "value" : "0xffffffff"
3096 }
3097 }
3098 }
3099 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003100 ],
3101 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003102 "filename" : "./include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003103 "line" : 31,
3104 "column" : 39,
3105 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3106 }
Yi Tsengbe342052017-11-03 10:21:23 -07003107 },
3108 {
3109 "op" : "count",
3110 "parameters" : [
3111 {
3112 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003113 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Yi Tsengbe342052017-11-03 10:21:23 -07003114 },
3115 {
3116 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003117 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -07003118 }
3119 ],
3120 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003121 "filename" : "./include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003122 "line" : 31,
3123 "column" : 12,
3124 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3125 }
3126 }
3127 ]
3128 },
3129 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003130 "name" : "nop",
Yi Tseng47eac892018-07-11 02:17:04 +08003131 "id" : 44,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003132 "runtime_data" : [],
3133 "primitives" : []
3134 },
3135 {
3136 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
Yi Tseng47eac892018-07-11 02:17:04 +08003137 "id" : 45,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003138 "runtime_data" : [],
3139 "primitives" : [
3140 {
3141 "op" : "assign",
3142 "parameters" : [
3143 {
3144 "type" : "field",
3145 "value" : ["ethernet", "ether_type"]
3146 },
3147 {
3148 "type" : "field",
3149 "value" : ["vlan_tag", "ether_type"]
3150 }
3151 ],
3152 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003153 "filename" : "./include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003154 "line" : 38,
3155 "column" : 8,
3156 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
3157 }
3158 },
3159 {
3160 "op" : "remove_header",
3161 "parameters" : [
3162 {
3163 "type" : "header",
3164 "value" : "vlan_tag"
3165 }
3166 ],
3167 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003168 "filename" : "./include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003169 "line" : 39,
3170 "column" : 8,
3171 "source_fragment" : "hdr.vlan_tag.setInvalid()"
3172 }
3173 }
3174 ]
3175 },
3176 {
3177 "name" : "FabricEgress.egress_next.pop_vlan",
Yi Tseng47eac892018-07-11 02:17:04 +08003178 "id" : 46,
Yi Tseng1d842672017-11-28 16:06:52 -08003179 "runtime_data" : [],
3180 "primitives" : [
3181 {
3182 "op" : "assign",
3183 "parameters" : [
3184 {
3185 "type" : "field",
3186 "value" : ["ethernet", "ether_type"]
3187 },
3188 {
3189 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08003190 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1d842672017-11-28 16:06:52 -08003191 }
3192 ],
3193 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003194 "filename" : "./include/control/next.p4",
3195 "line" : 247,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003196 "column" : 8,
Yi Tsengbd46d052018-01-22 17:18:16 -08003197 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
Yi Tseng1d842672017-11-28 16:06:52 -08003198 }
Yi Tsengbd46d052018-01-22 17:18:16 -08003199 },
Yi Tsengbe342052017-11-03 10:21:23 -07003200 {
3201 "op" : "remove_header",
3202 "parameters" : [
3203 {
3204 "type" : "header",
3205 "value" : "vlan_tag"
3206 }
3207 ],
3208 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003209 "filename" : "./include/control/next.p4",
3210 "line" : 248,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003211 "column" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07003212 "source_fragment" : "hdr.vlan_tag.setInvalid()"
3213 }
3214 }
3215 ]
3216 },
3217 {
Yi Tseng47eac892018-07-11 02:17:04 +08003218 "name" : "act_7",
3219 "id" : 47,
Yi Tsengbe342052017-11-03 10:21:23 -07003220 "runtime_data" : [],
3221 "primitives" : [
3222 {
3223 "op" : "add_header",
3224 "parameters" : [
3225 {
3226 "type" : "header",
3227 "value" : "packet_in"
3228 }
3229 ],
3230 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003231 "filename" : "./include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003232 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07003233 "column" : 12,
3234 "source_fragment" : "hdr.packet_in.setValid()"
3235 }
3236 },
3237 {
3238 "op" : "assign",
3239 "parameters" : [
3240 {
3241 "type" : "field",
3242 "value" : ["packet_in", "ingress_port"]
3243 },
3244 {
3245 "type" : "field",
3246 "value" : ["standard_metadata", "ingress_port"]
3247 }
3248 ],
3249 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003250 "filename" : "./include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003251 "line" : 47,
Yi Tsengbe342052017-11-03 10:21:23 -07003252 "column" : 12,
3253 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
3254 }
3255 }
3256 ]
Yi Tsengbe342052017-11-03 10:21:23 -07003257 }
3258 ],
3259 "pipelines" : [
3260 {
3261 "name" : "ingress",
3262 "id" : 0,
3263 "source_info" : {
3264 "filename" : "fabric.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003265 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07003266 "column" : 8,
3267 "source_fragment" : "FabricIngress"
3268 },
3269 "init_table" : "node_2",
3270 "tables" : [
3271 {
3272 "name" : "tbl_act",
3273 "id" : 0,
3274 "key" : [],
3275 "match_type" : "exact",
3276 "type" : "simple",
3277 "max_size" : 1024,
3278 "with_counters" : false,
3279 "support_timeout" : false,
3280 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08003281 "action_ids" : [36],
Yi Tsengbe342052017-11-03 10:21:23 -07003282 "actions" : ["act"],
3283 "base_default_next" : null,
3284 "next_tables" : {
3285 "act" : null
3286 },
3287 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003288 "action_id" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07003289 "action_const" : true,
3290 "action_data" : [],
3291 "action_entry_const" : true
3292 }
3293 },
3294 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003295 "name" : "FabricIngress.filtering.ingress_port_vlan",
Yi Tsengbe342052017-11-03 10:21:23 -07003296 "id" : 1,
3297 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003298 "filename" : "./include/control/filtering.p4",
3299 "line" : 61,
Yi Tsengbe342052017-11-03 10:21:23 -07003300 "column" : 10,
3301 "source_fragment" : "ingress_port_vlan"
3302 },
3303 "key" : [
3304 {
3305 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003306 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003307 "target" : ["standard_metadata", "ingress_port"],
3308 "mask" : null
3309 },
3310 {
3311 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003312 "name" : "hdr.vlan_tag.is_valid",
Yi Tsengbe342052017-11-03 10:21:23 -07003313 "target" : ["vlan_tag", "$valid$"],
3314 "mask" : null
3315 },
3316 {
3317 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003318 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003319 "target" : ["vlan_tag", "vlan_id"],
3320 "mask" : null
3321 }
3322 ],
3323 "match_type" : "ternary",
3324 "type" : "simple",
3325 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003326 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003327 "support_timeout" : false,
3328 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08003329 "action_ids" : [14, 13, 0, 12],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003330 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "nop", "FabricIngress.filtering.drop"],
3331 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Yi Tsengbe342052017-11-03 10:21:23 -07003332 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003333 "FabricIngress.filtering.push_internal_vlan" : "FabricIngress.filtering.fwd_classifier",
3334 "FabricIngress.filtering.set_vlan" : "FabricIngress.filtering.fwd_classifier",
3335 "nop" : "FabricIngress.filtering.fwd_classifier",
3336 "FabricIngress.filtering.drop" : "FabricIngress.filtering.fwd_classifier"
Yi Tsengbe342052017-11-03 10:21:23 -07003337 },
3338 "default_entry" : {
Yi Tseng3a5731e2018-01-22 11:38:58 -08003339 "action_id" : 0,
Yi Tsengbe342052017-11-03 10:21:23 -07003340 "action_const" : true,
3341 "action_data" : [],
3342 "action_entry_const" : true
3343 }
3344 },
3345 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003346 "name" : "FabricIngress.filtering.fwd_classifier",
Yi Tsengbe342052017-11-03 10:21:23 -07003347 "id" : 2,
3348 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003349 "filename" : "./include/control/filtering.p4",
3350 "line" : 98,
Yi Tsengbe342052017-11-03 10:21:23 -07003351 "column" : 10,
3352 "source_fragment" : "fwd_classifier"
3353 },
3354 "key" : [
3355 {
3356 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003357 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003358 "target" : ["standard_metadata", "ingress_port"],
3359 "mask" : null
3360 },
3361 {
3362 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003363 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003364 "target" : ["ethernet", "dst_addr"],
3365 "mask" : null
3366 },
3367 {
3368 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003369 "name" : "fabric_metadata.original_ether_type",
Yi Tseng1d842672017-11-28 16:06:52 -08003370 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07003371 "mask" : null
3372 }
3373 ],
3374 "match_type" : "exact",
3375 "type" : "simple",
3376 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003377 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003378 "support_timeout" : false,
3379 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08003380 "action_ids" : [15],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003381 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07003382 "base_default_next" : "node_6",
3383 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003384 "FabricIngress.filtering.set_forwarding_type" : "node_6"
Yi Tsengbe342052017-11-03 10:21:23 -07003385 },
3386 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003387 "action_id" : 15,
Yi Tsengbe342052017-11-03 10:21:23 -07003388 "action_const" : true,
3389 "action_data" : ["0x0"],
3390 "action_entry_const" : true
3391 }
3392 },
3393 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003394 "name" : "FabricIngress.forwarding.bridging",
Yi Tsengbe342052017-11-03 10:21:23 -07003395 "id" : 3,
3396 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003397 "filename" : "./include/control/forwarding.p4",
3398 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07003399 "column" : 10,
3400 "source_fragment" : "bridging"
3401 },
3402 "key" : [
3403 {
3404 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003405 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003406 "target" : ["vlan_tag", "vlan_id"],
3407 "mask" : null
3408 },
3409 {
3410 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003411 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003412 "target" : ["ethernet", "dst_addr"],
3413 "mask" : null
3414 }
3415 ],
3416 "match_type" : "ternary",
3417 "type" : "simple",
3418 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003419 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003420 "support_timeout" : false,
3421 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08003422 "action_ids" : [16, 3],
3423 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003424 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003425 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003426 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003427 "NoAction" : "FabricIngress.forwarding.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003428 },
3429 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003430 "action_id" : 3,
Yi Tseng1d842672017-11-28 16:06:52 -08003431 "action_const" : false,
3432 "action_data" : [],
3433 "action_entry_const" : false
3434 }
3435 },
3436 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003437 "name" : "FabricIngress.forwarding.mpls",
Yi Tseng1d842672017-11-28 16:06:52 -08003438 "id" : 4,
3439 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003440 "filename" : "./include/control/forwarding.p4",
3441 "line" : 65,
Yi Tseng1d842672017-11-28 16:06:52 -08003442 "column" : 10,
3443 "source_fragment" : "mpls"
3444 },
3445 "key" : [
3446 {
3447 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003448 "name" : "hdr.mpls.label",
Yi Tseng1d842672017-11-28 16:06:52 -08003449 "target" : ["mpls", "label"],
3450 "mask" : null
3451 }
3452 ],
3453 "match_type" : "exact",
3454 "type" : "simple",
3455 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003456 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003457 "support_timeout" : false,
3458 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003459 "action_ids" : [17, 4],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003460 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
Yi Tsengbd46d052018-01-22 17:18:16 -08003461 "base_default_next" : "tbl_act_0",
Yi Tseng1d842672017-11-28 16:06:52 -08003462 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003463 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_0",
Yi Tsengbd46d052018-01-22 17:18:16 -08003464 "NoAction" : "tbl_act_0"
Yi Tseng1d842672017-11-28 16:06:52 -08003465 },
3466 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003467 "action_id" : 4,
Yi Tseng1d842672017-11-28 16:06:52 -08003468 "action_const" : false,
3469 "action_data" : [],
3470 "action_entry_const" : false
3471 }
3472 },
3473 {
3474 "name" : "tbl_act_0",
3475 "id" : 5,
3476 "key" : [],
3477 "match_type" : "exact",
3478 "type" : "simple",
3479 "max_size" : 1024,
3480 "with_counters" : false,
3481 "support_timeout" : false,
3482 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08003483 "action_ids" : [37],
Yi Tseng1d842672017-11-28 16:06:52 -08003484 "actions" : ["act_0"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003485 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003486 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003487 "act_0" : "FabricIngress.forwarding.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003488 },
3489 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003490 "action_id" : 37,
Yi Tseng1d842672017-11-28 16:06:52 -08003491 "action_const" : true,
3492 "action_data" : [],
3493 "action_entry_const" : true
3494 }
3495 },
3496 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003497 "name" : "FabricIngress.forwarding.unicast_v4",
Yi Tsengbd46d052018-01-22 17:18:16 -08003498 "id" : 6,
Yi Tseng1d842672017-11-28 16:06:52 -08003499 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003500 "filename" : "./include/control/forwarding.p4",
3501 "line" : 87,
Yi Tseng1d842672017-11-28 16:06:52 -08003502 "column" : 10,
3503 "source_fragment" : "unicast_v4"
3504 },
3505 "key" : [
3506 {
3507 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003508 "name" : "hdr.ipv4.dst_addr",
Yi Tseng1d842672017-11-28 16:06:52 -08003509 "target" : ["ipv4", "dst_addr"],
3510 "mask" : null
3511 }
3512 ],
3513 "match_type" : "lpm",
3514 "type" : "simple",
3515 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003516 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003517 "support_timeout" : false,
3518 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08003519 "action_ids" : [18, 5],
3520 "actions" : ["FabricIngress.forwarding.set_next_id_unicast_v4", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003521 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tsengbe342052017-11-03 10:21:23 -07003522 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003523 "FabricIngress.forwarding.set_next_id_unicast_v4" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003524 "NoAction" : "FabricIngress.forwarding.acl"
Yi Tsengbe342052017-11-03 10:21:23 -07003525 },
3526 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003527 "action_id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07003528 "action_const" : false,
3529 "action_data" : [],
3530 "action_entry_const" : false
3531 }
3532 },
3533 {
Yi Tseng47eac892018-07-11 02:17:04 +08003534 "name" : "FabricIngress.forwarding.multicast_v4",
Yi Tsengbd46d052018-01-22 17:18:16 -08003535 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -07003536 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003537 "filename" : "./include/control/forwarding.p4",
3538 "line" : 159,
3539 "column" : 10,
3540 "source_fragment" : "multicast_v4"
3541 },
3542 "key" : [
3543 {
3544 "match_type" : "exact",
3545 "name" : "hdr.vlan_tag.vlan_id",
3546 "target" : ["vlan_tag", "vlan_id"],
3547 "mask" : null
3548 },
3549 {
3550 "match_type" : "lpm",
3551 "name" : "hdr.ipv4.dst_addr",
3552 "target" : ["ipv4", "dst_addr"],
3553 "mask" : null
3554 }
3555 ],
3556 "match_type" : "lpm",
3557 "type" : "simple",
3558 "max_size" : 1024,
3559 "with_counters" : true,
3560 "support_timeout" : false,
3561 "direct_meters" : null,
3562 "action_ids" : [22, 6],
3563 "actions" : ["FabricIngress.forwarding.set_next_id_multicast_v4", "NoAction"],
3564 "base_default_next" : "FabricIngress.forwarding.acl",
3565 "next_tables" : {
3566 "FabricIngress.forwarding.set_next_id_multicast_v4" : "FabricIngress.forwarding.acl",
3567 "NoAction" : "FabricIngress.forwarding.acl"
3568 },
3569 "default_entry" : {
3570 "action_id" : 6,
3571 "action_const" : false,
3572 "action_data" : [],
3573 "action_entry_const" : false
3574 }
3575 },
3576 {
3577 "name" : "FabricIngress.forwarding.unicast_v6",
3578 "id" : 8,
3579 "source_info" : {
3580 "filename" : "./include/control/forwarding.p4",
3581 "line" : 184,
3582 "column" : 10,
3583 "source_fragment" : "unicast_v6"
3584 },
3585 "key" : [
3586 {
3587 "match_type" : "lpm",
3588 "name" : "hdr.ipv6.dst_addr",
3589 "target" : ["ipv6", "dst_addr"],
3590 "mask" : null
3591 }
3592 ],
3593 "match_type" : "lpm",
3594 "type" : "simple",
3595 "max_size" : 1024,
3596 "with_counters" : true,
3597 "support_timeout" : false,
3598 "direct_meters" : null,
3599 "action_ids" : [23, 7],
3600 "actions" : ["FabricIngress.forwarding.set_next_id_unicast_v6", "NoAction"],
3601 "base_default_next" : "FabricIngress.forwarding.acl",
3602 "next_tables" : {
3603 "FabricIngress.forwarding.set_next_id_unicast_v6" : "FabricIngress.forwarding.acl",
3604 "NoAction" : "FabricIngress.forwarding.acl"
3605 },
3606 "default_entry" : {
3607 "action_id" : 7,
3608 "action_const" : false,
3609 "action_data" : [],
3610 "action_entry_const" : false
3611 }
3612 },
3613 {
3614 "name" : "FabricIngress.forwarding.multicast_v6",
3615 "id" : 9,
3616 "source_info" : {
3617 "filename" : "./include/control/forwarding.p4",
3618 "line" : 207,
3619 "column" : 10,
3620 "source_fragment" : "multicast_v6"
3621 },
3622 "key" : [
3623 {
3624 "match_type" : "exact",
3625 "name" : "hdr.vlan_tag.vlan_id",
3626 "target" : ["vlan_tag", "vlan_id"],
3627 "mask" : null
3628 },
3629 {
3630 "match_type" : "lpm",
3631 "name" : "hdr.ipv6.dst_addr",
3632 "target" : ["ipv6", "dst_addr"],
3633 "mask" : null
3634 }
3635 ],
3636 "match_type" : "lpm",
3637 "type" : "simple",
3638 "max_size" : 1024,
3639 "with_counters" : true,
3640 "support_timeout" : false,
3641 "direct_meters" : null,
3642 "action_ids" : [24, 8],
3643 "actions" : ["FabricIngress.forwarding.set_next_id_multicast_v6", "NoAction"],
3644 "base_default_next" : "FabricIngress.forwarding.acl",
3645 "next_tables" : {
3646 "FabricIngress.forwarding.set_next_id_multicast_v6" : "FabricIngress.forwarding.acl",
3647 "NoAction" : "FabricIngress.forwarding.acl"
3648 },
3649 "default_entry" : {
3650 "action_id" : 8,
3651 "action_const" : false,
3652 "action_data" : [],
3653 "action_entry_const" : false
3654 }
3655 },
3656 {
3657 "name" : "FabricIngress.forwarding.acl",
3658 "id" : 10,
3659 "source_info" : {
3660 "filename" : "./include/control/forwarding.p4",
3661 "line" : 119,
Yi Tsengbe342052017-11-03 10:21:23 -07003662 "column" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003663 "source_fragment" : "acl"
3664 },
3665 "key" : [
3666 {
3667 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003668 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003669 "target" : ["standard_metadata", "ingress_port"],
3670 "mask" : null
3671 },
3672 {
3673 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003674 "name" : "fabric_metadata.ip_proto",
Yi Tsengbe342052017-11-03 10:21:23 -07003675 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
3676 "mask" : null
3677 },
3678 {
3679 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003680 "name" : "fabric_metadata.l4_src_port",
Yi Tseng1d842672017-11-28 16:06:52 -08003681 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
3682 "mask" : null
3683 },
3684 {
3685 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003686 "name" : "fabric_metadata.l4_dst_port",
Yi Tseng1d842672017-11-28 16:06:52 -08003687 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
3688 "mask" : null
3689 },
3690 {
3691 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003692 "name" : "fabric_metadata.original_ether_type",
Yi Tsengc6844f52017-12-19 11:58:25 -08003693 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
3694 "mask" : null
3695 },
3696 {
3697 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003698 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003699 "target" : ["ethernet", "dst_addr"],
3700 "mask" : null
3701 },
3702 {
3703 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003704 "name" : "hdr.ethernet.src_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003705 "target" : ["ethernet", "src_addr"],
3706 "mask" : null
3707 },
3708 {
3709 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003710 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003711 "target" : ["vlan_tag", "vlan_id"],
3712 "mask" : null
3713 },
3714 {
3715 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003716 "name" : "hdr.ipv4.src_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003717 "target" : ["ipv4", "src_addr"],
3718 "mask" : null
3719 },
3720 {
3721 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003722 "name" : "hdr.ipv4.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003723 "target" : ["ipv4", "dst_addr"],
3724 "mask" : null
3725 },
3726 {
3727 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003728 "name" : "hdr.icmp.icmp_type",
Yi Tsengbe342052017-11-03 10:21:23 -07003729 "target" : ["icmp", "icmp_type"],
3730 "mask" : null
3731 },
3732 {
3733 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003734 "name" : "hdr.icmp.icmp_code",
Yi Tsengbe342052017-11-03 10:21:23 -07003735 "target" : ["icmp", "icmp_code"],
3736 "mask" : null
3737 }
3738 ],
3739 "match_type" : "ternary",
3740 "type" : "simple",
Yi Tseng1d842672017-11-28 16:06:52 -08003741 "max_size" : 256,
Yi Tsengbd46d052018-01-22 17:18:16 -08003742 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003743 "support_timeout" : false,
3744 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08003745 "action_ids" : [19, 20, 21, 1],
3746 "actions" : ["FabricIngress.forwarding.set_next_id_acl", "FabricIngress.forwarding.send_to_controller", "FabricIngress.forwarding.drop", "nop"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003747 "base_default_next" : "FabricIngress.next.vlan_meta",
Yi Tsengbe342052017-11-03 10:21:23 -07003748 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003749 "FabricIngress.forwarding.set_next_id_acl" : "FabricIngress.next.vlan_meta",
3750 "FabricIngress.forwarding.send_to_controller" : "FabricIngress.next.vlan_meta",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003751 "FabricIngress.forwarding.drop" : "FabricIngress.next.vlan_meta",
3752 "nop" : "FabricIngress.next.vlan_meta"
Yi Tsengbe342052017-11-03 10:21:23 -07003753 },
3754 "default_entry" : {
3755 "action_id" : 1,
3756 "action_const" : true,
3757 "action_data" : [],
3758 "action_entry_const" : true
3759 }
3760 },
3761 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003762 "name" : "FabricIngress.next.vlan_meta",
Yi Tseng47eac892018-07-11 02:17:04 +08003763 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07003764 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003765 "filename" : "./include/control/next.p4",
3766 "line" : 65,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003767 "column" : 10,
3768 "source_fragment" : "vlan_meta"
3769 },
3770 "key" : [
3771 {
3772 "match_type" : "exact",
3773 "name" : "fabric_metadata.next_id",
3774 "target" : ["scalars", "fabric_metadata_t.next_id"],
3775 "mask" : null
3776 }
3777 ],
3778 "match_type" : "exact",
3779 "type" : "simple",
3780 "max_size" : 1024,
3781 "with_counters" : true,
3782 "support_timeout" : false,
3783 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08003784 "action_ids" : [25, 2],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003785 "actions" : ["FabricIngress.next.set_vlan", "nop"],
3786 "base_default_next" : "FabricIngress.next.simple",
3787 "next_tables" : {
3788 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
3789 "nop" : "FabricIngress.next.simple"
3790 },
3791 "default_entry" : {
3792 "action_id" : 2,
3793 "action_const" : false,
3794 "action_data" : [],
3795 "action_entry_const" : false
3796 }
3797 },
3798 {
3799 "name" : "FabricIngress.next.simple",
Yi Tseng47eac892018-07-11 02:17:04 +08003800 "id" : 12,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003801 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003802 "filename" : "./include/control/next.p4",
3803 "line" : 122,
Yi Tsengbe342052017-11-03 10:21:23 -07003804 "column" : 10,
3805 "source_fragment" : "simple"
3806 },
3807 "key" : [
3808 {
3809 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003810 "name" : "fabric_metadata.next_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003811 "target" : ["scalars", "fabric_metadata_t.next_id"],
3812 "mask" : null
3813 }
3814 ],
3815 "match_type" : "exact",
3816 "type" : "simple",
3817 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003818 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003819 "support_timeout" : false,
3820 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08003821 "action_ids" : [26, 27, 28, 29, 30, 31, 9],
3822 "actions" : ["FabricIngress.next.output_simple", "FabricIngress.next.set_vlan_output", "FabricIngress.next.l3_routing_simple", "FabricIngress.next.mpls_routing_v4_simple", "FabricIngress.next.mpls_routing_v6_simple", "FabricIngress.next.l3_routing_vlan", "NoAction"],
Yi Tseng1d842672017-11-28 16:06:52 -08003823 "base_default_next" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07003824 "next_tables" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08003825 "__HIT__" : "tbl_act_1",
3826 "__MISS__" : "tbl_act_2"
Yi Tsengbe342052017-11-03 10:21:23 -07003827 },
3828 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003829 "action_id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -07003830 "action_const" : false,
3831 "action_data" : [],
3832 "action_entry_const" : false
3833 }
3834 },
3835 {
Yi Tsengbd46d052018-01-22 17:18:16 -08003836 "name" : "tbl_act_1",
Yi Tseng47eac892018-07-11 02:17:04 +08003837 "id" : 13,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003838 "key" : [],
3839 "match_type" : "exact",
3840 "type" : "simple",
3841 "max_size" : 1024,
3842 "with_counters" : false,
3843 "support_timeout" : false,
3844 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08003845 "action_ids" : [38],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003846 "actions" : ["act_1"],
Yi Tseng47eac892018-07-11 02:17:04 +08003847 "base_default_next" : "node_24",
Yi Tsengbe342052017-11-03 10:21:23 -07003848 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003849 "act_1" : "node_24"
Yi Tsengbe342052017-11-03 10:21:23 -07003850 },
3851 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003852 "action_id" : 38,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003853 "action_const" : true,
3854 "action_data" : [],
3855 "action_entry_const" : true
3856 }
3857 },
3858 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003859 "name" : "tbl_act_2",
Yi Tseng47eac892018-07-11 02:17:04 +08003860 "id" : 14,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003861 "key" : [],
3862 "match_type" : "exact",
3863 "type" : "simple",
3864 "max_size" : 1024,
3865 "with_counters" : false,
3866 "support_timeout" : false,
3867 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08003868 "action_ids" : [39],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003869 "actions" : ["act_2"],
Yi Tseng47eac892018-07-11 02:17:04 +08003870 "base_default_next" : "node_24",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003871 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003872 "act_2" : "node_24"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003873 },
3874 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003875 "action_id" : 39,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003876 "action_const" : true,
3877 "action_data" : [],
3878 "action_entry_const" : true
3879 }
3880 },
3881 {
3882 "name" : "tbl_act_3",
Yi Tseng47eac892018-07-11 02:17:04 +08003883 "id" : 15,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003884 "key" : [],
3885 "match_type" : "exact",
3886 "type" : "simple",
3887 "max_size" : 1024,
3888 "with_counters" : false,
3889 "support_timeout" : false,
3890 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08003891 "action_ids" : [40],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003892 "actions" : ["act_3"],
3893 "base_default_next" : "FabricIngress.next.hashed",
3894 "next_tables" : {
3895 "act_3" : "FabricIngress.next.hashed"
3896 },
3897 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003898 "action_id" : 40,
3899 "action_const" : true,
3900 "action_data" : [],
3901 "action_entry_const" : true
3902 }
3903 },
3904 {
3905 "name" : "tbl_act_4",
3906 "id" : 16,
3907 "key" : [],
3908 "match_type" : "exact",
3909 "type" : "simple",
3910 "max_size" : 1024,
3911 "with_counters" : false,
3912 "support_timeout" : false,
3913 "direct_meters" : null,
3914 "action_ids" : [41],
3915 "actions" : ["act_4"],
3916 "base_default_next" : "FabricIngress.next.hashed",
3917 "next_tables" : {
3918 "act_4" : "FabricIngress.next.hashed"
3919 },
3920 "default_entry" : {
3921 "action_id" : 41,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003922 "action_const" : true,
3923 "action_data" : [],
3924 "action_entry_const" : true
3925 }
3926 },
3927 {
3928 "name" : "FabricIngress.next.hashed",
Yi Tseng47eac892018-07-11 02:17:04 +08003929 "id" : 17,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003930 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003931 "filename" : "./include/control/next.p4",
3932 "line" : 175,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003933 "column" : 10,
3934 "source_fragment" : "hashed"
3935 },
3936 "key" : [
3937 {
3938 "match_type" : "exact",
3939 "name" : "fabric_metadata.next_id",
3940 "target" : ["scalars", "fabric_metadata_t.next_id"],
3941 "mask" : null
3942 }
3943 ],
3944 "match_type" : "exact",
3945 "type" : "indirect_ws",
3946 "action_profile" : "FabricIngress.next.ecmp_selector",
3947 "max_size" : 1024,
3948 "with_counters" : true,
3949 "support_timeout" : false,
3950 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08003951 "action_ids" : [32, 33, 34, 10],
3952 "actions" : ["FabricIngress.next.l3_routing_hashed", "FabricIngress.next.mpls_routing_v4_hashed", "FabricIngress.next.mpls_routing_v6_hashed", "NoAction"],
Esin Karaman971fb7f2017-12-28 13:44:52 +00003953 "base_default_next" : "FabricIngress.next.multicast",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003954 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003955 "FabricIngress.next.l3_routing_hashed" : "FabricIngress.next.multicast",
3956 "FabricIngress.next.mpls_routing_v4_hashed" : "FabricIngress.next.multicast",
3957 "FabricIngress.next.mpls_routing_v6_hashed" : "FabricIngress.next.multicast",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003958 "NoAction" : "FabricIngress.next.multicast"
3959 }
3960 },
3961 {
3962 "name" : "FabricIngress.next.multicast",
Yi Tseng47eac892018-07-11 02:17:04 +08003963 "id" : 18,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003964 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003965 "filename" : "./include/control/next.p4",
3966 "line" : 206,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003967 "column" : 10,
3968 "source_fragment" : "multicast"
3969 },
3970 "key" : [
3971 {
3972 "match_type" : "exact",
3973 "name" : "fabric_metadata.next_id",
3974 "target" : ["scalars", "fabric_metadata_t.next_id"],
3975 "mask" : null
3976 }
3977 ],
3978 "match_type" : "exact",
3979 "type" : "simple",
3980 "max_size" : 1024,
3981 "with_counters" : true,
3982 "support_timeout" : false,
3983 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08003984 "action_ids" : [35, 11],
Esin Karaman971fb7f2017-12-28 13:44:52 +00003985 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
Yi Tseng47eac892018-07-11 02:17:04 +08003986 "base_default_next" : "node_32",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003987 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003988 "FabricIngress.next.set_mcast_group" : "node_32",
3989 "NoAction" : "node_32"
Esin Karaman971fb7f2017-12-28 13:44:52 +00003990 },
3991 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003992 "action_id" : 11,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003993 "action_const" : false,
3994 "action_data" : [],
3995 "action_entry_const" : false
Yi Tseng27b9bc02018-04-12 14:52:40 +08003996 }
3997 },
3998 {
Yi Tseng47eac892018-07-11 02:17:04 +08003999 "name" : "tbl_act_5",
4000 "id" : 19,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004001 "key" : [],
4002 "match_type" : "exact",
4003 "type" : "simple",
4004 "max_size" : 1024,
4005 "with_counters" : false,
4006 "support_timeout" : false,
4007 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004008 "action_ids" : [42],
4009 "actions" : ["act_5"],
4010 "base_default_next" : "node_34",
Esin Karaman971fb7f2017-12-28 13:44:52 +00004011 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004012 "act_5" : "node_34"
Esin Karaman971fb7f2017-12-28 13:44:52 +00004013 },
4014 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004015 "action_id" : 42,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004016 "action_const" : true,
4017 "action_data" : [],
4018 "action_entry_const" : true
4019 }
4020 },
4021 {
Yi Tseng47eac892018-07-11 02:17:04 +08004022 "name" : "tbl_act_6",
4023 "id" : 20,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004024 "key" : [],
4025 "match_type" : "exact",
4026 "type" : "simple",
4027 "max_size" : 1024,
4028 "with_counters" : false,
4029 "support_timeout" : false,
4030 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004031 "action_ids" : [43],
4032 "actions" : ["act_6"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004033 "base_default_next" : null,
4034 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004035 "act_6" : null
Yi Tseng27b9bc02018-04-12 14:52:40 +08004036 },
4037 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004038 "action_id" : 43,
Yi Tseng3a5731e2018-01-22 11:38:58 -08004039 "action_const" : true,
4040 "action_data" : [],
4041 "action_entry_const" : true
4042 }
Yi Tsengbe342052017-11-03 10:21:23 -07004043 }
4044 ],
4045 "action_profiles" : [
4046 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004047 "name" : "FabricIngress.next.ecmp_selector",
Yi Tsengbe342052017-11-03 10:21:23 -07004048 "id" : 0,
4049 "max_size" : 64,
4050 "selector" : {
4051 "algo" : "crc16",
4052 "input" : [
4053 {
4054 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08004055 "value" : ["ipv4", "dst_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07004056 },
4057 {
4058 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08004059 "value" : ["ipv4", "src_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07004060 },
4061 {
4062 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08004063 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -07004064 },
4065 {
4066 "type" : "field",
4067 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
4068 },
4069 {
4070 "type" : "field",
4071 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
4072 }
4073 ]
4074 }
4075 }
4076 ],
4077 "conditionals" : [
4078 {
4079 "name" : "node_2",
4080 "id" : 0,
4081 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004082 "filename" : "./include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004083 "line" : 25,
4084 "column" : 12,
4085 "source_fragment" : "hdr.packet_out.isValid()"
4086 },
4087 "expression" : {
4088 "type" : "expression",
4089 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004090 "op" : "d2b",
4091 "left" : null,
4092 "right" : {
Yi Tsengbe342052017-11-03 10:21:23 -07004093 "type" : "field",
4094 "value" : ["packet_out", "$valid$"]
Yi Tsengbe342052017-11-03 10:21:23 -07004095 }
4096 }
4097 },
4098 "true_next" : "tbl_act",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004099 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Yi Tsengbe342052017-11-03 10:21:23 -07004100 },
4101 {
4102 "name" : "node_6",
4103 "id" : 1,
4104 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004105 "filename" : "./include/control/forwarding.p4",
4106 "line" : 222,
Yi Tsengbe342052017-11-03 10:21:23 -07004107 "column" : 11,
4108 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
4109 },
4110 "expression" : {
4111 "type" : "expression",
4112 "value" : {
4113 "op" : "==",
4114 "left" : {
4115 "type" : "field",
4116 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4117 },
4118 "right" : {
4119 "type" : "hexstr",
4120 "value" : "0x00"
4121 }
4122 }
4123 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08004124 "true_next" : "FabricIngress.forwarding.bridging",
Yi Tsengbe342052017-11-03 10:21:23 -07004125 "false_next" : "node_8"
4126 },
4127 {
4128 "name" : "node_8",
4129 "id" : 2,
4130 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004131 "filename" : "./include/control/forwarding.p4",
4132 "line" : 223,
Yi Tsengbe342052017-11-03 10:21:23 -07004133 "column" : 17,
4134 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
4135 },
4136 "expression" : {
4137 "type" : "expression",
4138 "value" : {
4139 "op" : "==",
4140 "left" : {
4141 "type" : "field",
4142 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4143 },
4144 "right" : {
4145 "type" : "hexstr",
4146 "value" : "0x01"
4147 }
4148 }
4149 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08004150 "true_next" : "FabricIngress.forwarding.mpls",
Yi Tsengbd46d052018-01-22 17:18:16 -08004151 "false_next" : "node_11"
Yi Tsengbe342052017-11-03 10:21:23 -07004152 },
4153 {
Yi Tsengbd46d052018-01-22 17:18:16 -08004154 "name" : "node_11",
Yi Tsengbe342052017-11-03 10:21:23 -07004155 "id" : 3,
4156 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004157 "filename" : "./include/control/forwarding.p4",
4158 "line" : 230,
Yi Tsengbe342052017-11-03 10:21:23 -07004159 "column" : 17,
4160 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
4161 },
4162 "expression" : {
4163 "type" : "expression",
4164 "value" : {
4165 "op" : "==",
4166 "left" : {
4167 "type" : "field",
4168 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4169 },
4170 "right" : {
4171 "type" : "hexstr",
4172 "value" : "0x02"
4173 }
4174 }
4175 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08004176 "true_next" : "FabricIngress.forwarding.unicast_v4",
Yi Tseng47eac892018-07-11 02:17:04 +08004177 "false_next" : "node_13"
4178 },
4179 {
4180 "name" : "node_13",
4181 "id" : 4,
4182 "source_info" : {
4183 "filename" : "./include/control/forwarding.p4",
4184 "line" : 232,
4185 "column" : 17,
4186 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_MULTICAST"
4187 },
4188 "expression" : {
4189 "type" : "expression",
4190 "value" : {
4191 "op" : "==",
4192 "left" : {
4193 "type" : "field",
4194 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4195 },
4196 "right" : {
4197 "type" : "hexstr",
4198 "value" : "0x03"
4199 }
4200 }
4201 },
4202 "true_next" : "FabricIngress.forwarding.multicast_v4",
4203 "false_next" : "node_15"
4204 },
4205 {
4206 "name" : "node_15",
4207 "id" : 5,
4208 "source_info" : {
4209 "filename" : "./include/control/forwarding.p4",
4210 "line" : 235,
4211 "column" : 17,
4212 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV6_UNICAST"
4213 },
4214 "expression" : {
4215 "type" : "expression",
4216 "value" : {
4217 "op" : "==",
4218 "left" : {
4219 "type" : "field",
4220 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4221 },
4222 "right" : {
4223 "type" : "hexstr",
4224 "value" : "0x04"
4225 }
4226 }
4227 },
4228 "true_next" : "FabricIngress.forwarding.unicast_v6",
4229 "false_next" : "node_17"
4230 },
4231 {
4232 "name" : "node_17",
4233 "id" : 6,
4234 "source_info" : {
4235 "filename" : "./include/control/forwarding.p4",
4236 "line" : 237,
4237 "column" : 17,
4238 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV6_MULTICAST"
4239 },
4240 "expression" : {
4241 "type" : "expression",
4242 "value" : {
4243 "op" : "==",
4244 "left" : {
4245 "type" : "field",
4246 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4247 },
4248 "right" : {
4249 "type" : "hexstr",
4250 "value" : "0x05"
4251 }
4252 }
4253 },
4254 "true_next" : "FabricIngress.forwarding.multicast_v6",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004255 "false_next" : "FabricIngress.forwarding.acl"
4256 },
4257 {
Yi Tseng47eac892018-07-11 02:17:04 +08004258 "name" : "node_24",
4259 "id" : 7,
Yi Tseng1d842672017-11-28 16:06:52 -08004260 "expression" : {
4261 "type" : "expression",
4262 "value" : {
4263 "op" : "d2b",
4264 "left" : null,
4265 "right" : {
4266 "type" : "field",
4267 "value" : ["scalars", "next_tmp_0"]
4268 }
4269 }
4270 },
Yi Tseng47eac892018-07-11 02:17:04 +08004271 "true_next" : "node_25",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004272 "false_next" : "FabricIngress.next.hashed"
Yi Tseng1d842672017-11-28 16:06:52 -08004273 },
4274 {
Yi Tseng47eac892018-07-11 02:17:04 +08004275 "name" : "node_25",
4276 "id" : 8,
Yi Tseng1d842672017-11-28 16:06:52 -08004277 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004278 "filename" : "./include/control/next.p4",
4279 "line" : 219,
Yi Tsengbd46d052018-01-22 17:18:16 -08004280 "column" : 16,
4281 "source_fragment" : "!hdr.mpls.isValid()"
Yi Tseng1d842672017-11-28 16:06:52 -08004282 },
4283 "expression" : {
4284 "type" : "expression",
4285 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004286 "op" : "not",
4287 "left" : null,
Yi Tseng1d842672017-11-28 16:06:52 -08004288 "right" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004289 "type" : "expression",
4290 "value" : {
4291 "op" : "d2b",
4292 "left" : null,
4293 "right" : {
4294 "type" : "field",
4295 "value" : ["mpls", "$valid$"]
4296 }
4297 }
Yi Tseng1d842672017-11-28 16:06:52 -08004298 }
4299 }
4300 },
Yi Tseng47eac892018-07-11 02:17:04 +08004301 "true_next" : "node_26",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004302 "false_next" : "FabricIngress.next.hashed"
Yi Tseng1d842672017-11-28 16:06:52 -08004303 },
4304 {
Yi Tseng47eac892018-07-11 02:17:04 +08004305 "name" : "node_26",
4306 "id" : 9,
Yi Tseng1d842672017-11-28 16:06:52 -08004307 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004308 "filename" : "./include/control/next.p4",
4309 "line" : 220,
Yi Tseng1d842672017-11-28 16:06:52 -08004310 "column" : 19,
4311 "source_fragment" : "hdr.ipv4.isValid()"
4312 },
4313 "expression" : {
4314 "type" : "expression",
4315 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004316 "op" : "d2b",
4317 "left" : null,
4318 "right" : {
Yi Tseng1d842672017-11-28 16:06:52 -08004319 "type" : "field",
4320 "value" : ["ipv4", "$valid$"]
Yi Tseng1d842672017-11-28 16:06:52 -08004321 }
4322 }
4323 },
Yi Tsengbd46d052018-01-22 17:18:16 -08004324 "true_next" : "tbl_act_3",
Yi Tseng47eac892018-07-11 02:17:04 +08004325 "false_next" : "node_28"
4326 },
4327 {
4328 "name" : "node_28",
4329 "id" : 10,
4330 "source_info" : {
4331 "filename" : "./include/control/next.p4",
4332 "line" : 224,
4333 "column" : 25,
4334 "source_fragment" : "hdr.ipv6.isValid()"
4335 },
4336 "expression" : {
4337 "type" : "expression",
4338 "value" : {
4339 "op" : "d2b",
4340 "left" : null,
4341 "right" : {
4342 "type" : "field",
4343 "value" : ["ipv6", "$valid$"]
4344 }
4345 }
4346 },
4347 "true_next" : "tbl_act_4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004348 "false_next" : "FabricIngress.next.hashed"
4349 },
4350 {
Yi Tseng47eac892018-07-11 02:17:04 +08004351 "name" : "node_32",
4352 "id" : 11,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004353 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004354 "filename" : "./include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004355 "line" : 27,
4356 "column" : 12,
4357 "source_fragment" : "standard_metadata.egress_spec < 511"
4358 },
4359 "expression" : {
4360 "type" : "expression",
4361 "value" : {
4362 "op" : "<",
4363 "left" : {
4364 "type" : "field",
4365 "value" : ["standard_metadata", "egress_spec"]
4366 },
4367 "right" : {
4368 "type" : "hexstr",
4369 "value" : "0x01ff"
4370 }
4371 }
4372 },
Yi Tseng47eac892018-07-11 02:17:04 +08004373 "true_next" : "tbl_act_5",
4374 "false_next" : "node_34"
Yi Tsengbe342052017-11-03 10:21:23 -07004375 },
4376 {
Yi Tseng47eac892018-07-11 02:17:04 +08004377 "name" : "node_34",
4378 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07004379 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004380 "filename" : "./include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004381 "line" : 30,
4382 "column" : 12,
4383 "source_fragment" : "standard_metadata.ingress_port < 511"
4384 },
4385 "expression" : {
4386 "type" : "expression",
4387 "value" : {
4388 "op" : "<",
4389 "left" : {
4390 "type" : "field",
4391 "value" : ["standard_metadata", "ingress_port"]
4392 },
4393 "right" : {
4394 "type" : "hexstr",
4395 "value" : "0x01ff"
4396 }
4397 }
4398 },
Yi Tseng3a5731e2018-01-22 11:38:58 -08004399 "false_next" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004400 "true_next" : "tbl_act_6"
Yi Tseng3a5731e2018-01-22 11:38:58 -08004401 }
4402 ]
4403 },
4404 {
4405 "name" : "egress",
4406 "id" : 1,
4407 "source_info" : {
4408 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004409 "line" : 61,
Yi Tseng3a5731e2018-01-22 11:38:58 -08004410 "column" : 8,
4411 "source_fragment" : "FabricEgress"
4412 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004413 "init_table" : "FabricEgress.egress_next.egress_vlan",
Yi Tseng3a5731e2018-01-22 11:38:58 -08004414 "tables" : [
4415 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004416 "name" : "FabricEgress.egress_next.egress_vlan",
Yi Tseng47eac892018-07-11 02:17:04 +08004417 "id" : 21,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004418 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004419 "filename" : "./include/control/next.p4",
4420 "line" : 252,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004421 "column" : 10,
4422 "source_fragment" : "egress_vlan"
4423 },
4424 "key" : [
4425 {
4426 "match_type" : "exact",
4427 "name" : "hdr.vlan_tag.vlan_id",
4428 "target" : ["vlan_tag", "vlan_id"],
4429 "mask" : null
4430 },
4431 {
4432 "match_type" : "exact",
4433 "name" : "standard_metadata.egress_port",
4434 "target" : ["standard_metadata", "egress_port"],
4435 "mask" : null
4436 }
4437 ],
4438 "match_type" : "exact",
4439 "type" : "simple",
4440 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08004441 "with_counters" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004442 "support_timeout" : false,
4443 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004444 "action_ids" : [46, 44],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004445 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Yi Tseng47eac892018-07-11 02:17:04 +08004446 "base_default_next" : "node_39",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004447 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004448 "FabricEgress.egress_next.pop_vlan" : "node_39",
4449 "nop" : "node_39"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004450 },
4451 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004452 "action_id" : 44,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004453 "action_const" : false,
4454 "action_data" : [],
4455 "action_entry_const" : false
4456 }
4457 },
4458 {
4459 "name" : "tbl_pkt_io_egress_pop_vlan",
Yi Tseng47eac892018-07-11 02:17:04 +08004460 "id" : 22,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004461 "key" : [],
4462 "match_type" : "exact",
4463 "type" : "simple",
4464 "max_size" : 1024,
4465 "with_counters" : false,
4466 "support_timeout" : false,
4467 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004468 "action_ids" : [45],
Esin Karaman971fb7f2017-12-28 13:44:52 +00004469 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
Yi Tseng47eac892018-07-11 02:17:04 +08004470 "base_default_next" : "tbl_act_7",
Esin Karaman971fb7f2017-12-28 13:44:52 +00004471 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004472 "FabricEgress.pkt_io_egress.pop_vlan" : "tbl_act_7"
Esin Karaman971fb7f2017-12-28 13:44:52 +00004473 },
4474 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004475 "action_id" : 45,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004476 "action_const" : true,
4477 "action_data" : [],
4478 "action_entry_const" : true
4479 }
4480 },
4481 {
Yi Tseng47eac892018-07-11 02:17:04 +08004482 "name" : "tbl_act_7",
4483 "id" : 23,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004484 "key" : [],
4485 "match_type" : "exact",
4486 "type" : "simple",
4487 "max_size" : 1024,
4488 "with_counters" : false,
4489 "support_timeout" : false,
4490 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004491 "action_ids" : [47],
4492 "actions" : ["act_7"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004493 "base_default_next" : null,
4494 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004495 "act_7" : null
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004496 },
4497 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004498 "action_id" : 47,
Yi Tseng3a5731e2018-01-22 11:38:58 -08004499 "action_const" : true,
4500 "action_data" : [],
4501 "action_entry_const" : true
4502 }
4503 }
4504 ],
4505 "action_profiles" : [],
4506 "conditionals" : [
Yi Tseng1d842672017-11-28 16:06:52 -08004507 {
Yi Tseng47eac892018-07-11 02:17:04 +08004508 "name" : "node_39",
4509 "id" : 13,
Yi Tsengbe342052017-11-03 10:21:23 -07004510 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004511 "filename" : "./include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004512 "line" : 42,
Yi Tsengbe342052017-11-03 10:21:23 -07004513 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08004514 "source_fragment" : "standard_metadata.egress_port == 255"
Yi Tsengbe342052017-11-03 10:21:23 -07004515 },
4516 "expression" : {
4517 "type" : "expression",
4518 "value" : {
4519 "op" : "==",
4520 "left" : {
4521 "type" : "field",
4522 "value" : ["standard_metadata", "egress_port"]
4523 },
4524 "right" : {
4525 "type" : "hexstr",
4526 "value" : "0x00ff"
4527 }
4528 }
4529 },
4530 "false_next" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004531 "true_next" : "node_40"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004532 },
4533 {
Yi Tseng47eac892018-07-11 02:17:04 +08004534 "name" : "node_40",
4535 "id" : 14,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004536 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004537 "filename" : "./include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004538 "line" : 43,
4539 "column" : 16,
Carmelo Cascone228092b2018-06-15 20:41:10 +02004540 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in == true"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004541 },
4542 "expression" : {
4543 "type" : "expression",
4544 "value" : {
4545 "op" : "and",
4546 "left" : {
4547 "type" : "expression",
4548 "value" : {
4549 "op" : "d2b",
4550 "left" : null,
4551 "right" : {
4552 "type" : "field",
4553 "value" : ["vlan_tag", "$valid$"]
4554 }
4555 }
4556 },
4557 "right" : {
4558 "type" : "expression",
4559 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02004560 "op" : "==",
4561 "left" : {
4562 "type" : "expression",
4563 "value" : {
4564 "op" : "d2b",
4565 "left" : null,
4566 "right" : {
4567 "type" : "field",
4568 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
4569 }
4570 }
4571 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004572 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02004573 "type" : "bool",
4574 "value" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004575 }
4576 }
4577 }
4578 }
4579 },
4580 "true_next" : "tbl_pkt_io_egress_pop_vlan",
Yi Tseng47eac892018-07-11 02:17:04 +08004581 "false_next" : "tbl_act_7"
Yi Tsengbe342052017-11-03 10:21:23 -07004582 }
4583 ]
4584 }
4585 ],
4586 "checksums" : [
4587 {
4588 "name" : "cksum",
4589 "id" : 0,
4590 "target" : ["ipv4", "hdr_checksum"],
4591 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004592 "calculation" : "calc",
4593 "if_cond" : {
4594 "type" : "expression",
4595 "value" : {
4596 "op" : "d2b",
4597 "left" : null,
4598 "right" : {
4599 "type" : "field",
4600 "value" : ["ipv4", "$valid$"]
4601 }
4602 }
4603 }
Yi Tsengbe342052017-11-03 10:21:23 -07004604 },
4605 {
4606 "name" : "cksum_0",
4607 "id" : 1,
Yi Tsengbe342052017-11-03 10:21:23 -07004608 "target" : ["ipv4", "hdr_checksum"],
4609 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004610 "calculation" : "calc_0",
4611 "if_cond" : {
4612 "type" : "expression",
4613 "value" : {
4614 "op" : "d2b",
4615 "left" : null,
4616 "right" : {
4617 "type" : "field",
4618 "value" : ["ipv4", "$valid$"]
4619 }
4620 }
4621 }
Yi Tsengbe342052017-11-03 10:21:23 -07004622 }
4623 ],
4624 "force_arith" : [],
4625 "extern_instances" : [],
4626 "field_aliases" : [
4627 [
4628 "queueing_metadata.enq_timestamp",
4629 ["standard_metadata", "enq_timestamp"]
4630 ],
4631 [
4632 "queueing_metadata.enq_qdepth",
4633 ["standard_metadata", "enq_qdepth"]
4634 ],
4635 [
4636 "queueing_metadata.deq_timedelta",
4637 ["standard_metadata", "deq_timedelta"]
4638 ],
4639 [
4640 "queueing_metadata.deq_qdepth",
4641 ["standard_metadata", "deq_qdepth"]
4642 ],
4643 [
4644 "intrinsic_metadata.ingress_global_timestamp",
4645 ["standard_metadata", "ingress_global_timestamp"]
4646 ],
4647 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08004648 "intrinsic_metadata.egress_global_timestamp",
4649 ["standard_metadata", "egress_global_timestamp"]
4650 ],
4651 [
Yi Tsengbe342052017-11-03 10:21:23 -07004652 "intrinsic_metadata.lf_field_list",
4653 ["standard_metadata", "lf_field_list"]
4654 ],
4655 [
4656 "intrinsic_metadata.mcast_grp",
4657 ["standard_metadata", "mcast_grp"]
4658 ],
4659 [
4660 "intrinsic_metadata.resubmit_flag",
4661 ["standard_metadata", "resubmit_flag"]
4662 ],
4663 [
4664 "intrinsic_metadata.egress_rid",
4665 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08004666 ],
4667 [
4668 "intrinsic_metadata.recirculate_flag",
4669 ["standard_metadata", "recirculate_flag"]
Yi Tsengbe342052017-11-03 10:21:23 -07004670 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004671 ],
4672 "program" : "fabric.p4",
4673 "__meta__" : {
4674 "version" : [2, 18],
4675 "compiler" : "https://github.com/p4lang/p4c"
4676 }
Yi Tsengbe342052017-11-03 10:21:23 -07004677}