blob: f6a130fbef56b2cf8ac5967841d0d705c59b4165 [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" : [
Carmelo Cascone2388cc12021-05-26 19:30:30 +02007 ["tmp_0", 1, false],
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07008 ["tmp_2", 3, false],
9 ["tmp_4", 8, false],
Daniele Moro08c9e7f2021-07-28 18:53:34 +020010 ["gtpu_ext_len_0", 8, false],
Carmelo Cascone2388cc12021-05-26 19:30:30 +020011 ["tmp_1", 16, false],
12 ["tmp_3", 16, false],
13 ["tmp_5", 4, false],
14 ["tmp_6", 16, false],
Carmelo Cascone2a308ff2021-06-01 18:31:57 -070015 ["tmp_7", 64, false],
16 ["tmp_8", 32, false],
17 ["tmp_9", 32, false],
Daniele Moro08c9e7f2021-07-28 18:53:34 +020018 ["tmp_10", 32, false],
19 ["dscp_rewriter_tmp_dscp", 6, false],
20 ["userMetadata._lkp_is_ipv40", 1, false],
21 ["userMetadata._lkp_ipv4_src1", 32, false],
22 ["userMetadata._lkp_ipv4_dst2", 32, false],
23 ["userMetadata._lkp_ip_proto3", 8, false],
24 ["userMetadata._lkp_l4_sport4", 16, false],
25 ["userMetadata._lkp_l4_dport5", 16, false],
26 ["userMetadata._lkp_icmp_type6", 8, false],
27 ["userMetadata._lkp_icmp_code7", 8, false],
28 ["userMetadata._ip_eth_type8", 16, false],
29 ["userMetadata._vlan_id9", 12, false],
30 ["userMetadata._vlan_pri10", 3, false],
31 ["userMetadata._vlan_cfi11", 1, false],
32 ["userMetadata._mpls_label12", 20, false],
33 ["userMetadata._mpls_ttl13", 8, false],
34 ["userMetadata._skip_forwarding14", 1, false],
35 ["userMetadata._skip_next15", 1, false],
36 ["userMetadata._fwd_type16", 3, false],
37 ["userMetadata._next_id17", 32, false],
38 ["userMetadata._is_multicast18", 1, false],
39 ["userMetadata._is_controller_packet_out19", 1, false],
40 ["userMetadata._ip_proto20", 8, false],
41 ["userMetadata._l4_sport21", 16, false],
42 ["userMetadata._l4_dport22", 16, false],
43 ["userMetadata._ipv4_src_addr23", 32, false],
44 ["userMetadata._ipv4_dst_addr24", 32, false],
45 ["userMetadata._slice_id25", 4, false],
46 ["userMetadata._packet_color26", 2, false],
47 ["userMetadata._tc27", 2, false],
48 ["userMetadata._dscp28", 6, false],
49 ["userMetadata._port_type29", 2, false],
50 ["_padding_0", 6, false]
Carmelo Cascone2388cc12021-05-26 19:30:30 +020051 ]
52 },
53 {
54 "name" : "packet_out_header_t",
55 "id" : 1,
56 "fields" : [
57 ["egress_port", 9, false],
58 ["do_forwarding", 1, false],
59 ["_pad", 6, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080060 ]
61 },
62 {
Carmelo Cascone2a308ff2021-06-01 18:31:57 -070063 "name" : "gtpu_t",
Carmelo Cascone2388cc12021-05-26 19:30:30 +020064 "id" : 2,
Yi Tsengc6844f52017-12-19 11:58:25 -080065 "fields" : [
Carmelo Cascone2a308ff2021-06-01 18:31:57 -070066 ["version", 3, false],
67 ["pt", 1, false],
68 ["spare", 1, false],
69 ["ex_flag", 1, false],
70 ["seq_flag", 1, false],
71 ["npdu_flag", 1, false],
72 ["msgtype", 8, false],
73 ["msglen", 16, false],
74 ["teid", 32, false]
75 ]
76 },
77 {
78 "name" : "standard_metadata",
79 "id" : 3,
80 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020081 ["ingress_port", 9, false],
82 ["egress_spec", 9, false],
83 ["egress_port", 9, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020084 ["instance_type", 32, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020085 ["packet_length", 32, false],
86 ["enq_timestamp", 32, false],
87 ["enq_qdepth", 19, false],
88 ["deq_timedelta", 32, false],
89 ["deq_qdepth", 19, false],
90 ["ingress_global_timestamp", 48, false],
91 ["egress_global_timestamp", 48, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020092 ["mcast_grp", 16, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020093 ["egress_rid", 16, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070094 ["checksum_error", 1, false],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -070095 ["parser_error", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070096 ["priority", 3, false],
Carmelo Cascone2388cc12021-05-26 19:30:30 +020097 ["_padding", 3, false]
Carmelo Cascone6af4e172018-06-15 16:01:30 +020098 ]
99 },
100 {
101 "name" : "ethernet_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700102 "id" : 4,
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200103 "fields" : [
Yi Tsengc6844f52017-12-19 11:58:25 -0800104 ["dst_addr", 48, false],
Daniele Moro5a2de712019-09-24 14:34:07 -0700105 ["src_addr", 48, false]
Yi Tsengc6844f52017-12-19 11:58:25 -0800106 ]
107 },
108 {
109 "name" : "vlan_tag_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700110 "id" : 5,
Yi Tsengc6844f52017-12-19 11:58:25 -0800111 "fields" : [
Daniele Moro5a2de712019-09-24 14:34:07 -0700112 ["eth_type", 16, false],
Yi Tsengc6844f52017-12-19 11:58:25 -0800113 ["pri", 3, false],
114 ["cfi", 1, false],
Daniele Moro5a2de712019-09-24 14:34:07 -0700115 ["vlan_id", 12, false]
116 ]
117 },
118 {
119 "name" : "eth_type_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700120 "id" : 6,
Daniele Moro5a2de712019-09-24 14:34:07 -0700121 "fields" : [
122 ["value", 16, false]
Yi Tsengc6844f52017-12-19 11:58:25 -0800123 ]
124 },
125 {
126 "name" : "mpls_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700127 "id" : 7,
Yi Tsengc6844f52017-12-19 11:58:25 -0800128 "fields" : [
129 ["label", 20, false],
130 ["tc", 3, false],
131 ["bos", 1, false],
132 ["ttl", 8, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700133 ]
134 },
135 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200136 "name" : "gtpu_options_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700137 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700138 "fields" : [
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200139 ["seq_num", 16, false],
140 ["n_pdu_num", 8, false],
141 ["next_ext", 8, false]
142 ]
143 },
144 {
145 "name" : "gtpu_ext_psc_t",
146 "id" : 9,
147 "fields" : [
148 ["len", 8, false],
149 ["type", 4, false],
150 ["spare0", 4, false],
151 ["ppp", 1, false],
152 ["rqi", 1, false],
153 ["qfi", 6, false],
154 ["next_ext", 8, false]
155 ]
156 },
157 {
158 "name" : "ipv4_t",
159 "id" : 10,
160 "fields" : [
Yi Tsengbe342052017-11-03 10:21:23 -0700161 ["version", 4, false],
162 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900163 ["dscp", 6, false],
164 ["ecn", 2, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700165 ["total_len", 16, false],
166 ["identification", 16, false],
167 ["flags", 3, false],
168 ["frag_offset", 13, false],
169 ["ttl", 8, false],
170 ["protocol", 8, false],
171 ["hdr_checksum", 16, false],
172 ["src_addr", 32, false],
173 ["dst_addr", 32, false]
174 ]
175 },
176 {
Wailok Shum4f51bde2021-06-11 22:48:41 +0800177 "name" : "udp_t",
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200178 "id" : 11,
Yi Tseng47eac892018-07-11 02:17:04 +0800179 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800180 ["sport", 16, false],
181 ["dport", 16, false],
Wailok Shum4f51bde2021-06-11 22:48:41 +0800182 ["len", 16, false],
183 ["checksum", 16, false]
184 ]
185 },
186 {
187 "name" : "tcp_t",
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200188 "id" : 12,
Wailok Shum4f51bde2021-06-11 22:48:41 +0800189 "fields" : [
190 ["sport", 16, false],
191 ["dport", 16, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700192 ["seq_no", 32, false],
193 ["ack_no", 32, false],
194 ["data_offset", 4, false],
195 ["res", 3, false],
196 ["ecn", 3, false],
197 ["ctrl", 6, false],
198 ["window", 16, false],
199 ["checksum", 16, false],
200 ["urgent_ptr", 16, false]
201 ]
202 },
203 {
Yi Tsengbe342052017-11-03 10:21:23 -0700204 "name" : "icmp_t",
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200205 "id" : 13,
Yi Tsengbe342052017-11-03 10:21:23 -0700206 "fields" : [
207 ["icmp_type", 8, false],
208 ["icmp_code", 8, false],
Yi Tsengf73a5532017-11-17 15:58:57 -0800209 ["checksum", 16, false],
210 ["identifier", 16, false],
211 ["sequence_number", 16, false],
212 ["timestamp", 64, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700213 ]
214 },
215 {
Yi Tsengbe342052017-11-03 10:21:23 -0700216 "name" : "packet_in_header_t",
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200217 "id" : 14,
Yi Tsengbe342052017-11-03 10:21:23 -0700218 "fields" : [
219 ["ingress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800220 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700221 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700222 }
223 ],
224 "headers" : [
225 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200226 "name" : "tmp",
Yi Tsengc6844f52017-12-19 11:58:25 -0800227 "id" : 0,
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200228 "header_type" : "packet_out_header_t",
229 "metadata" : false,
230 "pi_omit" : true
231 },
232 {
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700233 "name" : "gtpu_0",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200234 "id" : 1,
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700235 "header_type" : "gtpu_t",
236 "metadata" : false,
237 "pi_omit" : true
238 },
239 {
240 "name" : "scalars",
241 "id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -0700242 "header_type" : "scalars_0",
243 "metadata" : true,
244 "pi_omit" : true
245 },
246 {
247 "name" : "standard_metadata",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700248 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -0700249 "header_type" : "standard_metadata",
250 "metadata" : true,
251 "pi_omit" : true
252 },
253 {
254 "name" : "ethernet",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700255 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700256 "header_type" : "ethernet_t",
257 "metadata" : false,
258 "pi_omit" : true
259 },
260 {
261 "name" : "vlan_tag",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800262 "id" : 5,
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200263 "header_type" : "vlan_tag_t",
264 "metadata" : false,
265 "pi_omit" : true
266 },
267 {
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700268 "name" : "inner_vlan_tag",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200269 "id" : 6,
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700270 "header_type" : "vlan_tag_t",
271 "metadata" : false,
272 "pi_omit" : true
273 },
274 {
275 "name" : "eth_type",
276 "id" : 7,
Daniele Moro5a2de712019-09-24 14:34:07 -0700277 "header_type" : "eth_type_t",
278 "metadata" : false,
279 "pi_omit" : true
280 },
281 {
282 "name" : "mpls",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700283 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700284 "header_type" : "mpls_t",
285 "metadata" : false,
286 "pi_omit" : true
287 },
288 {
Wailok Shum4f51bde2021-06-11 22:48:41 +0800289 "name" : "gtpu",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700290 "id" : 9,
Wailok Shum4f51bde2021-06-11 22:48:41 +0800291 "header_type" : "gtpu_t",
292 "metadata" : false,
293 "pi_omit" : true
294 },
295 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200296 "name" : "gtpu_options",
Wailok Shum4f51bde2021-06-11 22:48:41 +0800297 "id" : 10,
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200298 "header_type" : "gtpu_options_t",
299 "metadata" : false,
300 "pi_omit" : true
301 },
302 {
303 "name" : "gtpu_ext_psc",
304 "id" : 11,
305 "header_type" : "gtpu_ext_psc_t",
306 "metadata" : false,
307 "pi_omit" : true
308 },
309 {
310 "name" : "inner_ipv4",
311 "id" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800312 "header_type" : "ipv4_t",
Yi Tsengbe342052017-11-03 10:21:23 -0700313 "metadata" : false,
314 "pi_omit" : true
315 },
316 {
Wailok Shum4f51bde2021-06-11 22:48:41 +0800317 "name" : "inner_udp",
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200318 "id" : 13,
Yi Tsengbe342052017-11-03 10:21:23 -0700319 "header_type" : "udp_t",
320 "metadata" : false,
321 "pi_omit" : true
322 },
323 {
Wailok Shum4f51bde2021-06-11 22:48:41 +0800324 "name" : "inner_tcp",
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200325 "id" : 14,
Wailok Shum4f51bde2021-06-11 22:48:41 +0800326 "header_type" : "tcp_t",
327 "metadata" : false,
328 "pi_omit" : true
329 },
330 {
331 "name" : "inner_icmp",
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200332 "id" : 15,
Wailok Shum4f51bde2021-06-11 22:48:41 +0800333 "header_type" : "icmp_t",
334 "metadata" : false,
335 "pi_omit" : true
336 },
337 {
338 "name" : "ipv4",
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200339 "id" : 16,
Wailok Shum4f51bde2021-06-11 22:48:41 +0800340 "header_type" : "ipv4_t",
341 "metadata" : false,
342 "pi_omit" : true
343 },
344 {
345 "name" : "tcp",
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200346 "id" : 17,
Wailok Shum4f51bde2021-06-11 22:48:41 +0800347 "header_type" : "tcp_t",
348 "metadata" : false,
349 "pi_omit" : true
350 },
351 {
352 "name" : "udp",
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200353 "id" : 18,
Wailok Shum4f51bde2021-06-11 22:48:41 +0800354 "header_type" : "udp_t",
355 "metadata" : false,
356 "pi_omit" : true
357 },
358 {
359 "name" : "icmp",
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200360 "id" : 19,
Yi Tsengbe342052017-11-03 10:21:23 -0700361 "header_type" : "icmp_t",
362 "metadata" : false,
363 "pi_omit" : true
364 },
365 {
366 "name" : "packet_out",
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200367 "id" : 20,
Yi Tsengbe342052017-11-03 10:21:23 -0700368 "header_type" : "packet_out_header_t",
369 "metadata" : false,
370 "pi_omit" : true
371 },
372 {
373 "name" : "packet_in",
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200374 "id" : 21,
Yi Tsengbe342052017-11-03 10:21:23 -0700375 "header_type" : "packet_in_header_t",
376 "metadata" : false,
377 "pi_omit" : true
378 }
379 ],
380 "header_stacks" : [],
381 "header_union_types" : [],
382 "header_unions" : [],
383 "header_union_stacks" : [],
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700384 "field_lists" : [
385 {
386 "id" : 1,
387 "name" : "fl",
388 "source_info" : {
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700389 "filename" : "include/control/acl.p4",
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200390 "line" : 45,
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700391 "column" : 40,
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700392 "source_fragment" : "{standard_metadata.ingress_port}"
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700393 },
394 "elements" : [
395 {
396 "type" : "field",
397 "value" : ["standard_metadata", "ingress_port"]
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700398 }
399 ]
400 }
401 ],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700402 "errors" : [
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700403 ["NoError", 1],
404 ["PacketTooShort", 2],
405 ["NoMatch", 3],
406 ["StackOutOfBounds", 4],
407 ["HeaderTooShort", 5],
408 ["ParserTimeout", 6],
409 ["ParserInvalidArgument", 7]
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700410 ],
Yi Tsengbe342052017-11-03 10:21:23 -0700411 "enums" : [],
412 "parsers" : [
413 {
414 "name" : "parser",
415 "id" : 0,
416 "init_state" : "start",
417 "parse_states" : [
418 {
419 "name" : "start",
420 "id" : 0,
421 "parser_ops" : [],
422 "transitions" : [
423 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800424 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700425 "value" : "0x00ff",
426 "mask" : null,
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200427 "next_state" : "check_packet_out"
Yi Tsengbe342052017-11-03 10:21:23 -0700428 },
429 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200430 "type" : "default",
431 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700432 "mask" : null,
433 "next_state" : "parse_ethernet"
434 }
435 ],
436 "transition_key" : [
437 {
438 "type" : "field",
439 "value" : ["standard_metadata", "ingress_port"]
440 }
441 ]
442 },
443 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200444 "name" : "check_packet_out",
Yi Tsengbe342052017-11-03 10:21:23 -0700445 "id" : 1,
446 "parser_ops" : [
447 {
448 "parameters" : [
449 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200450 "type" : "field",
451 "value" : ["scalars", "tmp_6"]
452 },
453 {
454 "type" : "lookahead",
455 "value" : [0, 16]
456 }
457 ],
458 "op" : "set"
459 },
460 {
461 "parameters" : [
462 {
463 "parameters" : [
464 {
465 "type" : "header",
466 "value" : "tmp"
467 }
468 ],
469 "op" : "add_header"
470 }
471 ],
472 "op" : "primitive"
473 },
474 {
475 "parameters" : [
476 {
477 "type" : "field",
478 "value" : ["tmp", "egress_port"]
479 },
480 {
481 "type" : "expression",
482 "value" : {
483 "type" : "expression",
484 "value" : {
485 "op" : "&",
486 "left" : {
487 "type" : "expression",
488 "value" : {
489 "op" : "&",
490 "left" : {
491 "type" : "expression",
492 "value" : {
493 "op" : ">>",
494 "left" : {
495 "type" : "field",
496 "value" : ["scalars", "tmp_6"]
497 },
498 "right" : {
499 "type" : "hexstr",
500 "value" : "0x7"
501 }
502 }
503 },
504 "right" : {
505 "type" : "hexstr",
506 "value" : "0xffff"
507 }
508 }
509 },
510 "right" : {
511 "type" : "hexstr",
512 "value" : "0x01ff"
513 }
514 }
515 }
516 }
517 ],
518 "op" : "set"
519 },
520 {
521 "parameters" : [
522 {
523 "type" : "field",
524 "value" : ["tmp", "do_forwarding"]
525 },
526 {
527 "type" : "expression",
528 "value" : {
529 "type" : "expression",
530 "value" : {
531 "op" : "&",
532 "left" : {
533 "type" : "expression",
534 "value" : {
535 "op" : "&",
536 "left" : {
537 "type" : "expression",
538 "value" : {
539 "op" : ">>",
540 "left" : {
541 "type" : "field",
542 "value" : ["scalars", "tmp_6"]
543 },
544 "right" : {
545 "type" : "hexstr",
546 "value" : "0x6"
547 }
548 }
549 },
550 "right" : {
551 "type" : "hexstr",
552 "value" : "0xffff"
553 }
554 }
555 },
556 "right" : {
557 "type" : "hexstr",
558 "value" : "0x01"
559 }
560 }
561 }
562 }
563 ],
564 "op" : "set"
565 },
566 {
567 "parameters" : [
568 {
569 "type" : "field",
570 "value" : ["tmp", "_pad"]
571 },
572 {
573 "type" : "expression",
574 "value" : {
575 "type" : "expression",
576 "value" : {
577 "op" : "&",
578 "left" : {
579 "type" : "field",
580 "value" : ["scalars", "tmp_6"]
581 },
582 "right" : {
583 "type" : "hexstr",
584 "value" : "0x3f"
585 }
586 }
587 }
588 }
589 ],
590 "op" : "set"
591 },
592 {
593 "parameters" : [
594 {
595 "type" : "field",
596 "value" : ["scalars", "tmp_0"]
597 },
598 {
599 "type" : "expression",
600 "value" : {
601 "type" : "expression",
602 "value" : {
603 "op" : "&",
604 "left" : {
605 "type" : "expression",
606 "value" : {
607 "op" : "&",
608 "left" : {
609 "type" : "expression",
610 "value" : {
611 "op" : ">>",
612 "left" : {
613 "type" : "field",
614 "value" : ["scalars", "tmp_6"]
615 },
616 "right" : {
617 "type" : "hexstr",
618 "value" : "0x6"
619 }
620 }
621 },
622 "right" : {
623 "type" : "hexstr",
624 "value" : "0xffff"
625 }
626 }
627 },
628 "right" : {
629 "type" : "hexstr",
630 "value" : "0x01"
631 }
632 }
633 }
634 }
635 ],
636 "op" : "set"
637 }
638 ],
639 "transitions" : [
640 {
641 "type" : "hexstr",
642 "value" : "0x00",
643 "mask" : null,
644 "next_state" : "parse_packet_out_and_accept"
645 },
646 {
647 "type" : "default",
648 "value" : null,
649 "mask" : null,
650 "next_state" : "strip_packet_out"
651 }
652 ],
653 "transition_key" : [
654 {
655 "type" : "field",
656 "value" : ["scalars", "tmp_0"]
657 }
658 ]
659 },
660 {
661 "name" : "parse_packet_out_and_accept",
662 "id" : 2,
663 "parser_ops" : [
664 {
665 "parameters" : [
666 {
Yi Tsengbe342052017-11-03 10:21:23 -0700667 "type" : "regular",
668 "value" : "packet_out"
669 }
670 ],
671 "op" : "extract"
672 }
673 ],
674 "transitions" : [
675 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200676 "type" : "default",
677 "value" : null,
678 "mask" : null,
679 "next_state" : null
680 }
681 ],
682 "transition_key" : []
683 },
684 {
685 "name" : "strip_packet_out",
686 "id" : 3,
687 "parser_ops" : [
688 {
689 "parameters" : [
690 {
691 "type" : "hexstr",
692 "value" : "0x00000010"
693 }
694 ],
695 "op" : "advance"
696 }
697 ],
698 "transitions" : [
699 {
700 "type" : "default",
701 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700702 "mask" : null,
703 "next_state" : "parse_ethernet"
704 }
705 ],
706 "transition_key" : []
707 },
708 {
709 "name" : "parse_ethernet",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200710 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700711 "parser_ops" : [
712 {
713 "parameters" : [
714 {
715 "type" : "regular",
716 "value" : "ethernet"
717 }
718 ],
719 "op" : "extract"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800720 },
721 {
722 "parameters" : [
723 {
724 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200725 "value" : ["scalars", "userMetadata._vlan_id9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800726 },
727 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700728 "type" : "hexstr",
729 "value" : "0x0ffe"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800730 }
731 ],
732 "op" : "set"
733 },
734 {
735 "parameters" : [
736 {
737 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200738 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800739 },
740 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700741 "type" : "lookahead",
742 "value" : [0, 16]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800743 }
744 ],
745 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700746 }
747 ],
748 "transitions" : [
749 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800750 "type" : "hexstr",
Daniele Moro77654f92019-07-30 10:29:54 -0700751 "value" : "0x88a8",
752 "mask" : null,
753 "next_state" : "parse_vlan_tag"
754 },
755 {
756 "type" : "hexstr",
757 "value" : "0x9100",
758 "mask" : null,
759 "next_state" : "parse_vlan_tag"
760 },
761 {
762 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700763 "value" : "0x8100",
764 "mask" : null,
765 "next_state" : "parse_vlan_tag"
766 },
767 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200768 "type" : "default",
769 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700770 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700771 "next_state" : "parse_eth_type"
Yi Tsengbe342052017-11-03 10:21:23 -0700772 }
773 ],
774 "transition_key" : [
775 {
776 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200777 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -0700778 }
779 ]
780 },
781 {
782 "name" : "parse_vlan_tag",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200783 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700784 "parser_ops" : [
785 {
786 "parameters" : [
787 {
788 "type" : "regular",
789 "value" : "vlan_tag"
790 }
791 ],
792 "op" : "extract"
Daniele Moro5a2de712019-09-24 14:34:07 -0700793 },
794 {
795 "parameters" : [
796 {
797 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200798 "value" : ["scalars", "tmp_3"]
Daniele Moro5a2de712019-09-24 14:34:07 -0700799 },
800 {
801 "type" : "lookahead",
802 "value" : [0, 16]
803 }
804 ],
805 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700806 }
807 ],
808 "transitions" : [
809 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800810 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800811 "value" : "0x8100",
812 "mask" : null,
813 "next_state" : "parse_inner_vlan_tag"
814 },
815 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200816 "type" : "default",
817 "value" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800818 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700819 "next_state" : "parse_eth_type"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800820 }
821 ],
822 "transition_key" : [
823 {
824 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200825 "value" : ["scalars", "tmp_3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800826 }
827 ]
828 },
829 {
830 "name" : "parse_inner_vlan_tag",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200831 "id" : 6,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800832 "parser_ops" : [
833 {
834 "parameters" : [
835 {
836 "type" : "regular",
837 "value" : "inner_vlan_tag"
838 }
839 ],
840 "op" : "extract"
841 }
842 ],
843 "transitions" : [
844 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200845 "type" : "default",
846 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700847 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700848 "next_state" : "parse_eth_type"
849 }
850 ],
851 "transition_key" : []
852 },
853 {
854 "name" : "parse_eth_type",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200855 "id" : 7,
Daniele Moro5a2de712019-09-24 14:34:07 -0700856 "parser_ops" : [
857 {
858 "parameters" : [
859 {
860 "type" : "regular",
861 "value" : "eth_type"
862 }
863 ],
864 "op" : "extract"
865 }
866 ],
867 "transitions" : [
Yi Tsengbe342052017-11-03 10:21:23 -0700868 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800869 "type" : "hexstr",
Yi Tsengbd46d052018-01-22 17:18:16 -0800870 "value" : "0x8847",
Yi Tsengbe342052017-11-03 10:21:23 -0700871 "mask" : null,
Yi Tsengbd46d052018-01-22 17:18:16 -0800872 "next_state" : "parse_mpls"
Yi Tsengbe342052017-11-03 10:21:23 -0700873 },
874 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700875 "type" : "hexstr",
876 "value" : "0x0800",
877 "mask" : null,
878 "next_state" : "parse_ipv4"
879 },
880 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200881 "type" : "default",
882 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700883 "mask" : null,
884 "next_state" : null
885 }
886 ],
887 "transition_key" : [
888 {
889 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700890 "value" : ["eth_type", "value"]
Yi Tsengbe342052017-11-03 10:21:23 -0700891 }
892 ]
893 },
894 {
895 "name" : "parse_mpls",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200896 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700897 "parser_ops" : [
898 {
899 "parameters" : [
900 {
901 "type" : "regular",
902 "value" : "mpls"
903 }
904 ],
905 "op" : "extract"
906 },
907 {
908 "parameters" : [
909 {
910 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200911 "value" : ["scalars", "userMetadata._mpls_label12"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800912 },
913 {
914 "type" : "field",
915 "value" : ["mpls", "label"]
916 }
917 ],
918 "op" : "set"
919 },
920 {
921 "parameters" : [
922 {
923 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200924 "value" : ["scalars", "userMetadata._mpls_ttl13"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800925 },
926 {
927 "type" : "field",
928 "value" : ["mpls", "ttl"]
929 }
930 ],
931 "op" : "set"
932 },
933 {
934 "parameters" : [
935 {
936 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200937 "value" : ["scalars", "tmp_5"]
Yi Tsengbe342052017-11-03 10:21:23 -0700938 },
939 {
940 "type" : "lookahead",
Yi Tsengc6844f52017-12-19 11:58:25 -0800941 "value" : [0, 4]
Yi Tsengbe342052017-11-03 10:21:23 -0700942 }
943 ],
944 "op" : "set"
945 }
946 ],
947 "transitions" : [
948 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800949 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700950 "value" : "0x04",
951 "mask" : null,
952 "next_state" : "parse_ipv4"
953 },
954 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200955 "type" : "default",
956 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700957 "mask" : null,
958 "next_state" : "parse_ethernet"
959 }
960 ],
961 "transition_key" : [
962 {
963 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200964 "value" : ["scalars", "tmp_5"]
Yi Tsengbe342052017-11-03 10:21:23 -0700965 }
966 ]
967 },
968 {
Daniele Moro7c3a0022019-07-12 13:38:34 -0700969 "name" : "parse_ipv4",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200970 "id" : 9,
Daniele Moro7c3a0022019-07-12 13:38:34 -0700971 "parser_ops" : [
972 {
973 "parameters" : [
974 {
Yi Tsengbe342052017-11-03 10:21:23 -0700975 "type" : "regular",
976 "value" : "ipv4"
977 }
978 ],
979 "op" : "extract"
980 },
981 {
982 "parameters" : [
983 {
984 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200985 "value" : ["scalars", "userMetadata._ip_proto20"]
Yi Tsengbe342052017-11-03 10:21:23 -0700986 },
987 {
988 "type" : "field",
989 "value" : ["ipv4", "protocol"]
990 }
991 ],
992 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800993 },
994 {
995 "parameters" : [
996 {
997 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +0200998 "value" : ["scalars", "userMetadata._ip_eth_type8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800999 },
1000 {
1001 "type" : "hexstr",
1002 "value" : "0x0800"
1003 }
1004 ],
1005 "op" : "set"
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001006 },
1007 {
1008 "parameters" : [
1009 {
1010 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02001011 "value" : ["scalars", "userMetadata._ipv4_src_addr23"]
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001012 },
1013 {
1014 "type" : "field",
1015 "value" : ["ipv4", "src_addr"]
1016 }
1017 ],
1018 "op" : "set"
1019 },
1020 {
1021 "parameters" : [
1022 {
1023 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02001024 "value" : ["scalars", "userMetadata._ipv4_dst_addr24"]
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001025 },
1026 {
1027 "type" : "field",
1028 "value" : ["ipv4", "dst_addr"]
1029 }
1030 ],
1031 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -07001032 }
1033 ],
1034 "transitions" : [
1035 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001036 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -07001037 "value" : "0x06",
1038 "mask" : null,
1039 "next_state" : "parse_tcp"
1040 },
1041 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001042 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -07001043 "value" : "0x11",
1044 "mask" : null,
1045 "next_state" : "parse_udp"
1046 },
1047 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001048 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -07001049 "value" : "0x01",
1050 "mask" : null,
1051 "next_state" : "parse_icmp"
1052 },
1053 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001054 "type" : "default",
1055 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07001056 "mask" : null,
1057 "next_state" : null
1058 }
1059 ],
1060 "transition_key" : [
1061 {
1062 "type" : "field",
1063 "value" : ["ipv4", "protocol"]
1064 }
1065 ]
1066 },
1067 {
Yi Tsengbe342052017-11-03 10:21:23 -07001068 "name" : "parse_tcp",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001069 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07001070 "parser_ops" : [
1071 {
1072 "parameters" : [
1073 {
1074 "type" : "regular",
1075 "value" : "tcp"
1076 }
1077 ],
1078 "op" : "extract"
1079 },
1080 {
1081 "parameters" : [
1082 {
1083 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02001084 "value" : ["scalars", "userMetadata._l4_sport21"]
Yi Tsengbe342052017-11-03 10:21:23 -07001085 },
1086 {
1087 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001088 "value" : ["tcp", "sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001089 }
1090 ],
1091 "op" : "set"
1092 },
1093 {
1094 "parameters" : [
1095 {
1096 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02001097 "value" : ["scalars", "userMetadata._l4_dport22"]
Yi Tsengbe342052017-11-03 10:21:23 -07001098 },
1099 {
1100 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001101 "value" : ["tcp", "dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001102 }
1103 ],
1104 "op" : "set"
1105 }
1106 ],
1107 "transitions" : [
1108 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001109 "type" : "default",
1110 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07001111 "mask" : null,
1112 "next_state" : null
1113 }
1114 ],
1115 "transition_key" : []
1116 },
1117 {
1118 "name" : "parse_udp",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001119 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07001120 "parser_ops" : [
1121 {
1122 "parameters" : [
1123 {
1124 "type" : "regular",
1125 "value" : "udp"
1126 }
1127 ],
1128 "op" : "extract"
1129 },
1130 {
1131 "parameters" : [
1132 {
1133 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02001134 "value" : ["scalars", "userMetadata._l4_sport21"]
Yi Tsengbe342052017-11-03 10:21:23 -07001135 },
1136 {
1137 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001138 "value" : ["udp", "sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001139 }
1140 ],
1141 "op" : "set"
1142 },
1143 {
1144 "parameters" : [
1145 {
1146 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02001147 "value" : ["scalars", "userMetadata._l4_dport22"]
Yi Tsengbe342052017-11-03 10:21:23 -07001148 },
1149 {
1150 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001151 "value" : ["udp", "dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001152 }
1153 ],
1154 "op" : "set"
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07001155 },
1156 {
1157 "parameters" : [
1158 {
1159 "type" : "field",
1160 "value" : ["scalars", "tmp_7"]
1161 },
1162 {
1163 "type" : "lookahead",
1164 "value" : [0, 64]
1165 }
1166 ],
1167 "op" : "set"
1168 },
1169 {
1170 "parameters" : [
1171 {
1172 "parameters" : [
1173 {
1174 "type" : "header",
1175 "value" : "gtpu_0"
1176 }
1177 ],
1178 "op" : "add_header"
1179 }
1180 ],
1181 "op" : "primitive"
1182 },
1183 {
1184 "parameters" : [
1185 {
1186 "type" : "field",
1187 "value" : ["gtpu_0", "version"]
1188 },
1189 {
1190 "type" : "expression",
1191 "value" : {
1192 "type" : "expression",
1193 "value" : {
1194 "op" : "&",
1195 "left" : {
1196 "type" : "expression",
1197 "value" : {
1198 "op" : "&",
1199 "left" : {
1200 "type" : "expression",
1201 "value" : {
1202 "op" : ">>",
1203 "left" : {
1204 "type" : "field",
1205 "value" : ["scalars", "tmp_7"]
1206 },
1207 "right" : {
1208 "type" : "hexstr",
1209 "value" : "0x3d"
1210 }
1211 }
1212 },
1213 "right" : {
1214 "type" : "hexstr",
1215 "value" : "0xffffffffffffffff"
1216 }
1217 }
1218 },
1219 "right" : {
1220 "type" : "hexstr",
1221 "value" : "0x07"
1222 }
1223 }
1224 }
1225 }
1226 ],
1227 "op" : "set"
1228 },
1229 {
1230 "parameters" : [
1231 {
1232 "type" : "field",
1233 "value" : ["gtpu_0", "pt"]
1234 },
1235 {
1236 "type" : "expression",
1237 "value" : {
1238 "type" : "expression",
1239 "value" : {
1240 "op" : "&",
1241 "left" : {
1242 "type" : "expression",
1243 "value" : {
1244 "op" : "&",
1245 "left" : {
1246 "type" : "expression",
1247 "value" : {
1248 "op" : ">>",
1249 "left" : {
1250 "type" : "field",
1251 "value" : ["scalars", "tmp_7"]
1252 },
1253 "right" : {
1254 "type" : "hexstr",
1255 "value" : "0x3c"
1256 }
1257 }
1258 },
1259 "right" : {
1260 "type" : "hexstr",
1261 "value" : "0xffffffffffffffff"
1262 }
1263 }
1264 },
1265 "right" : {
1266 "type" : "hexstr",
1267 "value" : "0x01"
1268 }
1269 }
1270 }
1271 }
1272 ],
1273 "op" : "set"
1274 },
1275 {
1276 "parameters" : [
1277 {
1278 "type" : "field",
1279 "value" : ["gtpu_0", "spare"]
1280 },
1281 {
1282 "type" : "expression",
1283 "value" : {
1284 "type" : "expression",
1285 "value" : {
1286 "op" : "&",
1287 "left" : {
1288 "type" : "expression",
1289 "value" : {
1290 "op" : "&",
1291 "left" : {
1292 "type" : "expression",
1293 "value" : {
1294 "op" : ">>",
1295 "left" : {
1296 "type" : "field",
1297 "value" : ["scalars", "tmp_7"]
1298 },
1299 "right" : {
1300 "type" : "hexstr",
1301 "value" : "0x3b"
1302 }
1303 }
1304 },
1305 "right" : {
1306 "type" : "hexstr",
1307 "value" : "0xffffffffffffffff"
1308 }
1309 }
1310 },
1311 "right" : {
1312 "type" : "hexstr",
1313 "value" : "0x01"
1314 }
1315 }
1316 }
1317 }
1318 ],
1319 "op" : "set"
1320 },
1321 {
1322 "parameters" : [
1323 {
1324 "type" : "field",
1325 "value" : ["gtpu_0", "ex_flag"]
1326 },
1327 {
1328 "type" : "expression",
1329 "value" : {
1330 "type" : "expression",
1331 "value" : {
1332 "op" : "&",
1333 "left" : {
1334 "type" : "expression",
1335 "value" : {
1336 "op" : "&",
1337 "left" : {
1338 "type" : "expression",
1339 "value" : {
1340 "op" : ">>",
1341 "left" : {
1342 "type" : "field",
1343 "value" : ["scalars", "tmp_7"]
1344 },
1345 "right" : {
1346 "type" : "hexstr",
1347 "value" : "0x3a"
1348 }
1349 }
1350 },
1351 "right" : {
1352 "type" : "hexstr",
1353 "value" : "0xffffffffffffffff"
1354 }
1355 }
1356 },
1357 "right" : {
1358 "type" : "hexstr",
1359 "value" : "0x01"
1360 }
1361 }
1362 }
1363 }
1364 ],
1365 "op" : "set"
1366 },
1367 {
1368 "parameters" : [
1369 {
1370 "type" : "field",
1371 "value" : ["gtpu_0", "seq_flag"]
1372 },
1373 {
1374 "type" : "expression",
1375 "value" : {
1376 "type" : "expression",
1377 "value" : {
1378 "op" : "&",
1379 "left" : {
1380 "type" : "expression",
1381 "value" : {
1382 "op" : "&",
1383 "left" : {
1384 "type" : "expression",
1385 "value" : {
1386 "op" : ">>",
1387 "left" : {
1388 "type" : "field",
1389 "value" : ["scalars", "tmp_7"]
1390 },
1391 "right" : {
1392 "type" : "hexstr",
1393 "value" : "0x39"
1394 }
1395 }
1396 },
1397 "right" : {
1398 "type" : "hexstr",
1399 "value" : "0xffffffffffffffff"
1400 }
1401 }
1402 },
1403 "right" : {
1404 "type" : "hexstr",
1405 "value" : "0x01"
1406 }
1407 }
1408 }
1409 }
1410 ],
1411 "op" : "set"
1412 },
1413 {
1414 "parameters" : [
1415 {
1416 "type" : "field",
1417 "value" : ["gtpu_0", "npdu_flag"]
1418 },
1419 {
1420 "type" : "expression",
1421 "value" : {
1422 "type" : "expression",
1423 "value" : {
1424 "op" : "&",
1425 "left" : {
1426 "type" : "expression",
1427 "value" : {
1428 "op" : "&",
1429 "left" : {
1430 "type" : "expression",
1431 "value" : {
1432 "op" : ">>",
1433 "left" : {
1434 "type" : "field",
1435 "value" : ["scalars", "tmp_7"]
1436 },
1437 "right" : {
1438 "type" : "hexstr",
1439 "value" : "0x38"
1440 }
1441 }
1442 },
1443 "right" : {
1444 "type" : "hexstr",
1445 "value" : "0xffffffffffffffff"
1446 }
1447 }
1448 },
1449 "right" : {
1450 "type" : "hexstr",
1451 "value" : "0x01"
1452 }
1453 }
1454 }
1455 }
1456 ],
1457 "op" : "set"
1458 },
1459 {
1460 "parameters" : [
1461 {
1462 "type" : "field",
1463 "value" : ["gtpu_0", "msgtype"]
1464 },
1465 {
1466 "type" : "expression",
1467 "value" : {
1468 "type" : "expression",
1469 "value" : {
1470 "op" : "&",
1471 "left" : {
1472 "type" : "expression",
1473 "value" : {
1474 "op" : "&",
1475 "left" : {
1476 "type" : "expression",
1477 "value" : {
1478 "op" : ">>",
1479 "left" : {
1480 "type" : "field",
1481 "value" : ["scalars", "tmp_7"]
1482 },
1483 "right" : {
1484 "type" : "hexstr",
1485 "value" : "0x30"
1486 }
1487 }
1488 },
1489 "right" : {
1490 "type" : "hexstr",
1491 "value" : "0xffffffffffffffff"
1492 }
1493 }
1494 },
1495 "right" : {
1496 "type" : "hexstr",
1497 "value" : "0xff"
1498 }
1499 }
1500 }
1501 }
1502 ],
1503 "op" : "set"
1504 },
1505 {
1506 "parameters" : [
1507 {
1508 "type" : "field",
1509 "value" : ["gtpu_0", "msglen"]
1510 },
1511 {
1512 "type" : "expression",
1513 "value" : {
1514 "type" : "expression",
1515 "value" : {
1516 "op" : "&",
1517 "left" : {
1518 "type" : "expression",
1519 "value" : {
1520 "op" : "&",
1521 "left" : {
1522 "type" : "expression",
1523 "value" : {
1524 "op" : ">>",
1525 "left" : {
1526 "type" : "field",
1527 "value" : ["scalars", "tmp_7"]
1528 },
1529 "right" : {
1530 "type" : "hexstr",
1531 "value" : "0x20"
1532 }
1533 }
1534 },
1535 "right" : {
1536 "type" : "hexstr",
1537 "value" : "0xffffffffffffffff"
1538 }
1539 }
1540 },
1541 "right" : {
1542 "type" : "hexstr",
1543 "value" : "0xffff"
1544 }
1545 }
1546 }
1547 }
1548 ],
1549 "op" : "set"
1550 },
1551 {
1552 "parameters" : [
1553 {
1554 "type" : "field",
1555 "value" : ["gtpu_0", "teid"]
1556 },
1557 {
1558 "type" : "expression",
1559 "value" : {
1560 "type" : "expression",
1561 "value" : {
1562 "op" : "&",
1563 "left" : {
1564 "type" : "field",
1565 "value" : ["scalars", "tmp_7"]
1566 },
1567 "right" : {
1568 "type" : "hexstr",
1569 "value" : "0xffffffff"
1570 }
1571 }
1572 }
1573 }
1574 ],
1575 "op" : "set"
1576 },
1577 {
1578 "parameters" : [
1579 {
1580 "type" : "field",
1581 "value" : ["scalars", "tmp_2"]
1582 },
1583 {
1584 "type" : "expression",
1585 "value" : {
1586 "type" : "expression",
1587 "value" : {
1588 "op" : "&",
1589 "left" : {
1590 "type" : "expression",
1591 "value" : {
1592 "op" : "&",
1593 "left" : {
1594 "type" : "expression",
1595 "value" : {
1596 "op" : ">>",
1597 "left" : {
1598 "type" : "field",
1599 "value" : ["scalars", "tmp_7"]
1600 },
1601 "right" : {
1602 "type" : "hexstr",
1603 "value" : "0x3d"
1604 }
1605 }
1606 },
1607 "right" : {
1608 "type" : "hexstr",
1609 "value" : "0xffffffffffffffff"
1610 }
1611 }
1612 },
1613 "right" : {
1614 "type" : "hexstr",
1615 "value" : "0x07"
1616 }
1617 }
1618 }
1619 }
1620 ],
1621 "op" : "set"
1622 },
1623 {
1624 "parameters" : [
1625 {
1626 "type" : "field",
1627 "value" : ["scalars", "tmp_4"]
1628 },
1629 {
1630 "type" : "expression",
1631 "value" : {
1632 "type" : "expression",
1633 "value" : {
1634 "op" : "&",
1635 "left" : {
1636 "type" : "expression",
1637 "value" : {
1638 "op" : "&",
1639 "left" : {
1640 "type" : "expression",
1641 "value" : {
1642 "op" : ">>",
1643 "left" : {
1644 "type" : "field",
1645 "value" : ["scalars", "tmp_7"]
1646 },
1647 "right" : {
1648 "type" : "hexstr",
1649 "value" : "0x30"
1650 }
1651 }
1652 },
1653 "right" : {
1654 "type" : "hexstr",
1655 "value" : "0xffffffffffffffff"
1656 }
1657 }
1658 },
1659 "right" : {
1660 "type" : "hexstr",
1661 "value" : "0xff"
1662 }
1663 }
1664 }
1665 }
1666 ],
1667 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -07001668 }
1669 ],
1670 "transitions" : [
1671 {
Wailok Shum4f51bde2021-06-11 22:48:41 +08001672 "type" : "hexstr",
1673 "value" : "0x086801ff",
1674 "mask" : null,
1675 "next_state" : "parse_gtpu"
1676 },
1677 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001678 "type" : "default",
1679 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07001680 "mask" : null,
1681 "next_state" : null
1682 }
1683 ],
Carmelo Cascone79a3a312018-08-16 17:14:43 -07001684 "transition_key" : [
1685 {
1686 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001687 "value" : ["udp", "dport"]
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07001688 },
1689 {
1690 "type" : "field",
1691 "value" : ["scalars", "tmp_2"]
1692 },
1693 {
1694 "type" : "field",
1695 "value" : ["scalars", "tmp_4"]
Carmelo Cascone79a3a312018-08-16 17:14:43 -07001696 }
1697 ]
Yi Tsengbe342052017-11-03 10:21:23 -07001698 },
1699 {
1700 "name" : "parse_icmp",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001701 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07001702 "parser_ops" : [
1703 {
1704 "parameters" : [
1705 {
1706 "type" : "regular",
1707 "value" : "icmp"
1708 }
1709 ],
1710 "op" : "extract"
1711 }
1712 ],
1713 "transitions" : [
1714 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001715 "type" : "default",
1716 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07001717 "mask" : null,
1718 "next_state" : null
1719 }
1720 ],
1721 "transition_key" : []
Wailok Shum4f51bde2021-06-11 22:48:41 +08001722 },
1723 {
1724 "name" : "parse_gtpu",
1725 "id" : 13,
1726 "parser_ops" : [
1727 {
1728 "parameters" : [
1729 {
1730 "type" : "regular",
1731 "value" : "gtpu"
1732 }
1733 ],
1734 "op" : "extract"
Daniele Moro08c9e7f2021-07-28 18:53:34 +02001735 }
1736 ],
1737 "transitions" : [
1738 {
1739 "type" : "hexstr",
1740 "value" : "0x000000",
1741 "mask" : null,
1742 "next_state" : "parse_inner_ipv4"
Wailok Shum4f51bde2021-06-11 22:48:41 +08001743 },
1744 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02001745 "type" : "default",
1746 "value" : null,
1747 "mask" : null,
1748 "next_state" : "parse_gtpu_options"
1749 }
1750 ],
1751 "transition_key" : [
1752 {
1753 "type" : "field",
1754 "value" : ["gtpu", "ex_flag"]
1755 },
1756 {
1757 "type" : "field",
1758 "value" : ["gtpu", "seq_flag"]
1759 },
1760 {
1761 "type" : "field",
1762 "value" : ["gtpu", "npdu_flag"]
1763 }
1764 ]
1765 },
1766 {
1767 "name" : "parse_gtpu_options",
1768 "id" : 14,
1769 "parser_ops" : [
1770 {
1771 "parameters" : [
1772 {
1773 "type" : "regular",
1774 "value" : "gtpu_options"
1775 }
1776 ],
1777 "op" : "extract"
1778 },
1779 {
1780 "parameters" : [
1781 {
1782 "type" : "field",
1783 "value" : ["scalars", "gtpu_ext_len_0"]
1784 },
1785 {
1786 "type" : "lookahead",
1787 "value" : [0, 8]
1788 }
1789 ],
1790 "op" : "set"
1791 }
1792 ],
1793 "transitions" : [
1794 {
1795 "type" : "hexstr",
1796 "value" : "0x8501",
1797 "mask" : null,
1798 "next_state" : "parse_gtpu_ext_psc"
1799 },
1800 {
1801 "type" : "default",
1802 "value" : null,
1803 "mask" : null,
1804 "next_state" : null
1805 }
1806 ],
1807 "transition_key" : [
1808 {
1809 "type" : "field",
1810 "value" : ["gtpu_options", "next_ext"]
1811 },
1812 {
1813 "type" : "field",
1814 "value" : ["scalars", "gtpu_ext_len_0"]
1815 }
1816 ]
1817 },
1818 {
1819 "name" : "parse_gtpu_ext_psc",
1820 "id" : 15,
1821 "parser_ops" : [
1822 {
1823 "parameters" : [
1824 {
1825 "type" : "regular",
1826 "value" : "gtpu_ext_psc"
1827 }
1828 ],
1829 "op" : "extract"
1830 }
1831 ],
1832 "transitions" : [
1833 {
1834 "type" : "hexstr",
1835 "value" : "0x00",
1836 "mask" : null,
1837 "next_state" : "parse_inner_ipv4"
1838 },
1839 {
1840 "type" : "default",
1841 "value" : null,
1842 "mask" : null,
1843 "next_state" : null
1844 }
1845 ],
1846 "transition_key" : [
1847 {
1848 "type" : "field",
1849 "value" : ["gtpu_ext_psc", "next_ext"]
1850 }
1851 ]
1852 },
1853 {
1854 "name" : "parse_inner_ipv4",
1855 "id" : 16,
1856 "parser_ops" : [
1857 {
Wailok Shum4f51bde2021-06-11 22:48:41 +08001858 "parameters" : [
1859 {
1860 "type" : "regular",
1861 "value" : "inner_ipv4"
1862 }
1863 ],
1864 "op" : "extract"
1865 }
1866 ],
1867 "transitions" : [
1868 {
1869 "type" : "hexstr",
1870 "value" : "0x06",
1871 "mask" : null,
Daniele Moroae26f0a2021-07-08 12:53:26 +02001872 "next_state" : "parse_inner_tcp"
Wailok Shum4f51bde2021-06-11 22:48:41 +08001873 },
1874 {
1875 "type" : "hexstr",
1876 "value" : "0x11",
1877 "mask" : null,
1878 "next_state" : "parse_inner_udp"
1879 },
1880 {
1881 "type" : "hexstr",
1882 "value" : "0x01",
1883 "mask" : null,
Daniele Moroae26f0a2021-07-08 12:53:26 +02001884 "next_state" : "parse_inner_icmp"
Wailok Shum4f51bde2021-06-11 22:48:41 +08001885 },
1886 {
1887 "type" : "default",
1888 "value" : null,
1889 "mask" : null,
1890 "next_state" : null
1891 }
1892 ],
1893 "transition_key" : [
1894 {
1895 "type" : "field",
1896 "value" : ["inner_ipv4", "protocol"]
1897 }
1898 ]
1899 },
1900 {
1901 "name" : "parse_inner_udp",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02001902 "id" : 17,
Wailok Shum4f51bde2021-06-11 22:48:41 +08001903 "parser_ops" : [
1904 {
1905 "parameters" : [
1906 {
1907 "type" : "regular",
1908 "value" : "inner_udp"
1909 }
1910 ],
1911 "op" : "extract"
1912 }
1913 ],
1914 "transitions" : [
1915 {
1916 "type" : "default",
1917 "value" : null,
1918 "mask" : null,
1919 "next_state" : null
1920 }
1921 ],
1922 "transition_key" : []
Daniele Moroae26f0a2021-07-08 12:53:26 +02001923 },
1924 {
1925 "name" : "parse_inner_tcp",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02001926 "id" : 18,
Daniele Moroae26f0a2021-07-08 12:53:26 +02001927 "parser_ops" : [
1928 {
1929 "parameters" : [
1930 {
1931 "type" : "regular",
1932 "value" : "inner_tcp"
1933 }
1934 ],
1935 "op" : "extract"
1936 }
1937 ],
1938 "transitions" : [
1939 {
1940 "type" : "default",
1941 "value" : null,
1942 "mask" : null,
1943 "next_state" : null
1944 }
1945 ],
1946 "transition_key" : []
1947 },
1948 {
1949 "name" : "parse_inner_icmp",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02001950 "id" : 19,
Daniele Moroae26f0a2021-07-08 12:53:26 +02001951 "parser_ops" : [
1952 {
1953 "parameters" : [
1954 {
1955 "type" : "regular",
1956 "value" : "inner_icmp"
1957 }
1958 ],
1959 "op" : "extract"
1960 }
1961 ],
1962 "transitions" : [
1963 {
1964 "type" : "default",
1965 "value" : null,
1966 "mask" : null,
1967 "next_state" : null
1968 }
1969 ],
1970 "transition_key" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001971 }
1972 ]
1973 }
1974 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001975 "parse_vsets" : [],
Yi Tsengbe342052017-11-03 10:21:23 -07001976 "deparsers" : [
1977 {
1978 "name" : "deparser",
1979 "id" : 0,
1980 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001981 "filename" : "include/parser.p4",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02001982 "line" : 308,
Yi Tsengbe342052017-11-03 10:21:23 -07001983 "column" : 8,
1984 "source_fragment" : "FabricDeparser"
1985 },
Daniele Moro08c9e7f2021-07-28 18:53:34 +02001986 "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "mpls", "ipv4", "tcp", "udp", "icmp", "gtpu", "gtpu_options", "gtpu_ext_psc", "inner_ipv4", "inner_tcp", "inner_udp", "inner_icmp"],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001987 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001988 }
1989 ],
Daniele Moro08c9e7f2021-07-28 18:53:34 +02001990 "meter_arrays" : [
1991 {
1992 "name" : "FabricIngress.qos.slice_tc_meter",
1993 "id" : 0,
1994 "source_info" : {
1995 "filename" : "include/control/slicing.p4",
1996 "line" : 78,
1997 "column" : 41,
1998 "source_fragment" : "slice_tc_meter"
1999 },
2000 "is_direct" : false,
2001 "size" : 64,
2002 "rate_count" : 2,
2003 "type" : "bytes"
2004 }
2005 ],
Yi Tsengbe342052017-11-03 10:21:23 -07002006 "counter_arrays" : [
2007 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002008 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Yi Tseng1d842672017-11-28 16:06:52 -08002009 "id" : 0,
Yi Tseng3a5731e2018-01-22 11:38:58 -08002010 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002011 "binding" : "FabricIngress.filtering.ingress_port_vlan",
2012 "source_info" : {
2013 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002014 "line" : 31,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002015 "column" : 50,
2016 "source_fragment" : "ingress_port_vlan_counter"
2017 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08002018 },
2019 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002020 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -08002021 "id" : 1,
2022 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002023 "binding" : "FabricIngress.filtering.fwd_classifier",
2024 "source_info" : {
2025 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002026 "line" : 87,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002027 "column" : 50,
2028 "source_fragment" : "fwd_classifier_counter"
2029 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08002030 },
2031 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002032 "name" : "FabricIngress.forwarding.bridging_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -08002033 "id" : 2,
2034 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002035 "binding" : "FabricIngress.forwarding.bridging",
2036 "source_info" : {
2037 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002038 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002039 "column" : 50,
2040 "source_fragment" : "bridging_counter"
2041 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08002042 },
2043 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002044 "name" : "FabricIngress.forwarding.mpls_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -08002045 "id" : 3,
2046 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002047 "binding" : "FabricIngress.forwarding.mpls",
2048 "source_info" : {
2049 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002050 "line" : 63,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002051 "column" : 50,
2052 "source_fragment" : "mpls_counter"
2053 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08002054 },
2055 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08002056 "name" : "FabricIngress.pre_next.next_mpls_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07002057 "id" : 4,
Yi Tseng3a5731e2018-01-22 11:38:58 -08002058 "is_direct" : true,
Wailok Shumfb7e7872021-06-18 17:30:08 +08002059 "binding" : "FabricIngress.pre_next.next_mpls",
2060 "source_info" : {
2061 "filename" : "include/control/pre_next.p4",
2062 "line" : 29,
2063 "column" : 50,
2064 "source_fragment" : "next_mpls_counter"
2065 }
2066 },
2067 {
2068 "name" : "FabricIngress.pre_next.next_vlan_counter",
2069 "id" : 5,
2070 "is_direct" : true,
2071 "binding" : "FabricIngress.pre_next.next_vlan",
2072 "source_info" : {
2073 "filename" : "include/control/pre_next.p4",
2074 "line" : 54,
2075 "column" : 50,
2076 "source_fragment" : "next_vlan_counter"
2077 }
2078 },
2079 {
2080 "name" : "FabricIngress.acl.acl_counter",
2081 "id" : 6,
2082 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002083 "binding" : "FabricIngress.acl.acl",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002084 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002085 "filename" : "include/control/acl.p4",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002086 "line" : 29,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002087 "column" : 50,
2088 "source_fragment" : "acl_counter"
2089 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08002090 },
2091 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002092 "name" : "FabricIngress.next.xconnect_counter",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002093 "id" : 7,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002094 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002095 "binding" : "FabricIngress.next.xconnect",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002096 "source_info" : {
2097 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002098 "line" : 56,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002099 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002100 "source_fragment" : "xconnect_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002101 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08002102 },
2103 {
2104 "name" : "FabricIngress.next.hashed_counter",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002105 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08002106 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002107 "binding" : "FabricIngress.next.hashed",
2108 "source_info" : {
2109 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002110 "line" : 126,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002111 "column" : 50,
2112 "source_fragment" : "hashed_counter"
2113 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08002114 },
2115 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002116 "name" : "FabricIngress.next.multicast_counter",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002117 "id" : 9,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002118 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002119 "binding" : "FabricIngress.next.multicast",
2120 "source_info" : {
2121 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002122 "line" : 163,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002123 "column" : 50,
2124 "source_fragment" : "multicast_counter"
2125 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002126 },
2127 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002128 "name" : "FabricIngress.slice_tc_classifier.classifier_stats",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002129 "id" : 10,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002130 "is_direct" : true,
2131 "binding" : "FabricIngress.slice_tc_classifier.classifier",
2132 "source_info" : {
2133 "filename" : "include/control/slicing.p4",
2134 "line" : 32,
2135 "column" : 40,
2136 "source_fragment" : "classifier_stats"
2137 }
2138 },
2139 {
2140 "name" : "FabricIngress.qos.queues_stats",
2141 "id" : 11,
2142 "is_direct" : true,
2143 "binding" : "FabricIngress.qos.queues",
2144 "source_info" : {
2145 "filename" : "include/control/slicing.p4",
2146 "line" : 80,
2147 "column" : 40,
2148 "source_fragment" : "queues_stats"
2149 }
2150 },
2151 {
2152 "name" : "FabricIngress.port_counters_control.egress_port_counter",
2153 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07002154 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002155 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002156 "line" : 26,
Yi Tseng3d3956d2018-01-31 17:28:05 -08002157 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -07002158 "source_fragment" : "egress_port_counter"
2159 },
2160 "size" : 511,
2161 "is_direct" : false
2162 },
2163 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002164 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002165 "id" : 13,
Yi Tsengbe342052017-11-03 10:21:23 -07002166 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002167 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002168 "line" : 27,
Yi Tseng3d3956d2018-01-31 17:28:05 -08002169 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -07002170 "source_fragment" : "ingress_port_counter"
2171 },
2172 "size" : 511,
2173 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08002174 },
2175 {
2176 "name" : "FabricEgress.egress_next.egress_vlan_counter",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002177 "id" : 14,
Yi Tseng47eac892018-07-11 02:17:04 +08002178 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002179 "binding" : "FabricEgress.egress_next.egress_vlan",
2180 "source_info" : {
2181 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002182 "line" : 248,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002183 "column" : 50,
2184 "source_fragment" : "egress_vlan_counter"
2185 }
Yi Tsengbe342052017-11-03 10:21:23 -07002186 }
2187 ],
2188 "register_arrays" : [],
2189 "calculations" : [
2190 {
2191 "name" : "calc",
2192 "id" : 0,
2193 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002194 "filename" : "include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002195 "line" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07002196 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002197 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -07002198 },
2199 "algo" : "csum16",
2200 "input" : [
2201 {
2202 "type" : "field",
2203 "value" : ["ipv4", "version"]
2204 },
2205 {
2206 "type" : "field",
2207 "value" : ["ipv4", "ihl"]
2208 },
2209 {
2210 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09002211 "value" : ["ipv4", "dscp"]
2212 },
2213 {
2214 "type" : "field",
2215 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -07002216 },
2217 {
2218 "type" : "field",
2219 "value" : ["ipv4", "total_len"]
2220 },
2221 {
2222 "type" : "field",
2223 "value" : ["ipv4", "identification"]
2224 },
2225 {
2226 "type" : "field",
2227 "value" : ["ipv4", "flags"]
2228 },
2229 {
2230 "type" : "field",
2231 "value" : ["ipv4", "frag_offset"]
2232 },
2233 {
2234 "type" : "field",
2235 "value" : ["ipv4", "ttl"]
2236 },
2237 {
2238 "type" : "field",
2239 "value" : ["ipv4", "protocol"]
2240 },
2241 {
2242 "type" : "field",
2243 "value" : ["ipv4", "src_addr"]
2244 },
2245 {
2246 "type" : "field",
2247 "value" : ["ipv4", "dst_addr"]
2248 }
2249 ]
2250 },
2251 {
2252 "name" : "calc_0",
2253 "id" : 1,
2254 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002255 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09002256 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07002257 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002258 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -07002259 },
2260 "algo" : "csum16",
2261 "input" : [
2262 {
2263 "type" : "field",
2264 "value" : ["ipv4", "version"]
2265 },
2266 {
2267 "type" : "field",
2268 "value" : ["ipv4", "ihl"]
2269 },
2270 {
2271 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09002272 "value" : ["ipv4", "dscp"]
2273 },
2274 {
2275 "type" : "field",
2276 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -07002277 },
2278 {
2279 "type" : "field",
2280 "value" : ["ipv4", "total_len"]
2281 },
2282 {
2283 "type" : "field",
2284 "value" : ["ipv4", "identification"]
2285 },
2286 {
2287 "type" : "field",
2288 "value" : ["ipv4", "flags"]
2289 },
2290 {
2291 "type" : "field",
2292 "value" : ["ipv4", "frag_offset"]
2293 },
2294 {
2295 "type" : "field",
2296 "value" : ["ipv4", "ttl"]
2297 },
2298 {
2299 "type" : "field",
2300 "value" : ["ipv4", "protocol"]
2301 },
2302 {
2303 "type" : "field",
2304 "value" : ["ipv4", "src_addr"]
2305 },
2306 {
2307 "type" : "field",
2308 "value" : ["ipv4", "dst_addr"]
2309 }
2310 ]
Yi Tsengbe342052017-11-03 10:21:23 -07002311 }
2312 ],
2313 "learn_lists" : [],
2314 "actions" : [
2315 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002316 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002317 "id" : 0,
2318 "runtime_data" : [],
2319 "primitives" : []
2320 },
2321 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002322 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002323 "id" : 1,
2324 "runtime_data" : [],
2325 "primitives" : []
2326 },
2327 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002328 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002329 "id" : 2,
2330 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08002331 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07002332 },
2333 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002334 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002335 "id" : 3,
2336 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08002337 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07002338 },
2339 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002340 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002341 "id" : 4,
2342 "runtime_data" : [],
2343 "primitives" : []
2344 },
2345 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002346 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002347 "id" : 5,
2348 "runtime_data" : [],
2349 "primitives" : []
2350 },
2351 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002352 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002353 "id" : 6,
2354 "runtime_data" : [],
2355 "primitives" : []
2356 },
2357 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08002358 "name" : "nop",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002359 "id" : 7,
Yi Tseng47eac892018-07-11 02:17:04 +08002360 "runtime_data" : [],
Wailok Shumfb7e7872021-06-18 17:30:08 +08002361 "primitives" : []
2362 },
2363 {
2364 "name" : "FabricIngress.filtering.deny",
2365 "id" : 8,
2366 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08002367 "primitives" : [
2368 {
Yi Tsengbe342052017-11-03 10:21:23 -07002369 "op" : "assign",
2370 "parameters" : [
2371 {
2372 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002373 "value" : ["scalars", "userMetadata._skip_forwarding14"]
Yi Tsengbe342052017-11-03 10:21:23 -07002374 },
2375 {
2376 "type" : "expression",
2377 "value" : {
2378 "type" : "expression",
2379 "value" : {
2380 "op" : "b2d",
2381 "left" : null,
2382 "right" : {
2383 "type" : "bool",
2384 "value" : true
2385 }
2386 }
2387 }
2388 }
2389 ],
2390 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002391 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002392 "line" : 36,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002393 "column" : 40,
2394 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002395 }
2396 },
2397 {
2398 "op" : "assign",
2399 "parameters" : [
2400 {
2401 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002402 "value" : ["scalars", "userMetadata._skip_next15"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002403 },
2404 {
2405 "type" : "expression",
2406 "value" : {
2407 "type" : "expression",
2408 "value" : {
2409 "op" : "b2d",
2410 "left" : null,
2411 "right" : {
2412 "type" : "bool",
2413 "value" : true
2414 }
2415 }
2416 }
2417 }
2418 ],
2419 "source_info" : {
2420 "filename" : "include/control/filtering.p4",
2421 "line" : 37,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002422 "column" : 34,
2423 "source_fragment" : "= true; ..."
Yi Tsengbe342052017-11-03 10:21:23 -07002424 }
Wailok Shumfb7e7872021-06-18 17:30:08 +08002425 },
2426 {
2427 "op" : "assign",
2428 "parameters" : [
2429 {
2430 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002431 "value" : ["scalars", "userMetadata._port_type29"]
Wailok Shumfb7e7872021-06-18 17:30:08 +08002432 },
2433 {
2434 "type" : "hexstr",
2435 "value" : "0x00"
2436 }
2437 ],
2438 "source_info" : {
2439 "filename" : "include/control/../define.p4",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002440 "line" : 136,
Wailok Shumfb7e7872021-06-18 17:30:08 +08002441 "column" : 38,
2442 "source_fragment" : "0x0; ..."
2443 }
Yi Tsengbe342052017-11-03 10:21:23 -07002444 }
2445 ]
2446 },
2447 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002448 "name" : "FabricIngress.filtering.permit",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002449 "id" : 9,
2450 "runtime_data" : [
2451 {
2452 "name" : "port_type",
2453 "bitwidth" : 2
2454 }
2455 ],
2456 "primitives" : [
2457 {
2458 "op" : "assign",
2459 "parameters" : [
2460 {
2461 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002462 "value" : ["scalars", "userMetadata._port_type29"]
Wailok Shumfb7e7872021-06-18 17:30:08 +08002463 },
2464 {
2465 "type" : "runtime_data",
2466 "value" : 0
2467 }
2468 ],
2469 "source_info" : {
2470 "filename" : "include/control/filtering.p4",
2471 "line" : 44,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002472 "column" : 34,
2473 "source_fragment" : "= port_type; ..."
Wailok Shumfb7e7872021-06-18 17:30:08 +08002474 }
2475 }
2476 ]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002477 },
2478 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002479 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002480 "id" : 10,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002481 "runtime_data" : [
2482 {
2483 "name" : "vlan_id",
2484 "bitwidth" : 12
Wailok Shumfb7e7872021-06-18 17:30:08 +08002485 },
2486 {
2487 "name" : "port_type",
2488 "bitwidth" : 2
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002489 }
2490 ],
2491 "primitives" : [
2492 {
2493 "op" : "assign",
2494 "parameters" : [
2495 {
2496 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002497 "value" : ["scalars", "userMetadata._vlan_id9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002498 },
2499 {
2500 "type" : "runtime_data",
2501 "value" : 0
2502 }
2503 ],
2504 "source_info" : {
2505 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002506 "line" : 49,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002507 "column" : 32,
2508 "source_fragment" : "= vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002509 }
Wailok Shumfb7e7872021-06-18 17:30:08 +08002510 },
2511 {
2512 "op" : "assign",
2513 "parameters" : [
2514 {
2515 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002516 "value" : ["scalars", "userMetadata._port_type29"]
Wailok Shumfb7e7872021-06-18 17:30:08 +08002517 },
2518 {
2519 "type" : "runtime_data",
2520 "value" : 1
2521 }
2522 ],
2523 "source_info" : {
2524 "filename" : "include/control/filtering.p4",
2525 "line" : 44,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002526 "column" : 34,
2527 "source_fragment" : "= port_type; ..."
Wailok Shumfb7e7872021-06-18 17:30:08 +08002528 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002529 }
2530 ]
2531 },
2532 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002533 "name" : "FabricIngress.filtering.set_forwarding_type",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002534 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07002535 "runtime_data" : [
2536 {
2537 "name" : "fwd_type",
2538 "bitwidth" : 3
2539 }
2540 ],
2541 "primitives" : [
2542 {
2543 "op" : "assign",
2544 "parameters" : [
2545 {
2546 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002547 "value" : ["scalars", "userMetadata._fwd_type16"]
Yi Tsengbe342052017-11-03 10:21:23 -07002548 },
2549 {
2550 "type" : "runtime_data",
2551 "value" : 0
2552 }
2553 ],
2554 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002555 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002556 "line" : 90,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002557 "column" : 33,
2558 "source_fragment" : "= fwd_type; ..."
Yi Tsengbe342052017-11-03 10:21:23 -07002559 }
2560 }
2561 ]
2562 },
2563 {
Yi Tseng47eac892018-07-11 02:17:04 +08002564 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002565 "id" : 12,
Carmelo Casconef645e842018-07-16 18:31:52 +02002566 "runtime_data" : [
2567 {
2568 "name" : "next_id",
2569 "bitwidth" : 32
2570 }
2571 ],
2572 "primitives" : [
2573 {
2574 "op" : "assign",
2575 "parameters" : [
2576 {
2577 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002578 "value" : ["scalars", "userMetadata._next_id17"]
Carmelo Casconef645e842018-07-16 18:31:52 +02002579 },
2580 {
2581 "type" : "runtime_data",
2582 "value" : 0
2583 }
2584 ],
2585 "source_info" : {
2586 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002587 "line" : 30,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002588 "column" : 32,
2589 "source_fragment" : "= next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02002590 }
2591 }
2592 ]
2593 },
2594 {
2595 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002596 "id" : 13,
Carmelo Casconef645e842018-07-16 18:31:52 +02002597 "runtime_data" : [
2598 {
2599 "name" : "next_id",
2600 "bitwidth" : 32
2601 }
2602 ],
2603 "primitives" : [
2604 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002605 "op" : "assign",
Carmelo Casconef645e842018-07-16 18:31:52 +02002606 "parameters" : [
2607 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002608 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002609 "value" : ["scalars", "userMetadata._mpls_label12"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002610 },
2611 {
2612 "type" : "hexstr",
2613 "value" : "0x000000"
Carmelo Casconef645e842018-07-16 18:31:52 +02002614 }
2615 ],
2616 "source_info" : {
2617 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002618 "line" : 66,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002619 "column" : 35,
2620 "source_fragment" : "= 0; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02002621 }
2622 },
2623 {
2624 "op" : "assign",
2625 "parameters" : [
2626 {
2627 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002628 "value" : ["scalars", "userMetadata._next_id17"]
Carmelo Casconef645e842018-07-16 18:31:52 +02002629 },
2630 {
2631 "type" : "runtime_data",
2632 "value" : 0
2633 }
2634 ],
2635 "source_info" : {
2636 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002637 "line" : 30,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002638 "column" : 32,
2639 "source_fragment" : "= next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02002640 }
2641 }
2642 ]
2643 },
2644 {
Charles Chan384aea22018-08-23 22:08:02 -07002645 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002646 "id" : 14,
Carmelo Casconef645e842018-07-16 18:31:52 +02002647 "runtime_data" : [
2648 {
2649 "name" : "next_id",
2650 "bitwidth" : 32
2651 }
2652 ],
2653 "primitives" : [
2654 {
2655 "op" : "assign",
2656 "parameters" : [
2657 {
2658 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002659 "value" : ["scalars", "userMetadata._next_id17"]
Carmelo Casconef645e842018-07-16 18:31:52 +02002660 },
2661 {
2662 "type" : "runtime_data",
2663 "value" : 0
2664 }
2665 ],
2666 "source_info" : {
2667 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002668 "line" : 30,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002669 "column" : 32,
2670 "source_fragment" : "= next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02002671 }
2672 }
2673 ]
2674 },
2675 {
Charles Chancd03f072018-08-31 17:46:37 -07002676 "name" : "FabricIngress.forwarding.nop_routing_v4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002677 "id" : 15,
Charles Chancd03f072018-08-31 17:46:37 -07002678 "runtime_data" : [],
2679 "primitives" : []
2680 },
2681 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08002682 "name" : "FabricIngress.pre_next.set_mpls_label",
2683 "id" : 16,
2684 "runtime_data" : [
2685 {
2686 "name" : "label",
2687 "bitwidth" : 20
2688 }
2689 ],
2690 "primitives" : [
2691 {
2692 "op" : "assign",
2693 "parameters" : [
2694 {
2695 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002696 "value" : ["scalars", "userMetadata._mpls_label12"]
Wailok Shumfb7e7872021-06-18 17:30:08 +08002697 },
2698 {
2699 "type" : "runtime_data",
2700 "value" : 0
2701 }
2702 ],
2703 "source_info" : {
2704 "filename" : "include/control/pre_next.p4",
2705 "line" : 32,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002706 "column" : 35,
2707 "source_fragment" : "= label; ..."
Wailok Shumfb7e7872021-06-18 17:30:08 +08002708 }
2709 }
2710 ]
2711 },
2712 {
2713 "name" : "FabricIngress.pre_next.set_vlan",
2714 "id" : 17,
2715 "runtime_data" : [
2716 {
2717 "name" : "vlan_id",
2718 "bitwidth" : 12
2719 }
2720 ],
2721 "primitives" : [
2722 {
2723 "op" : "assign",
2724 "parameters" : [
2725 {
2726 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002727 "value" : ["scalars", "userMetadata._vlan_id9"]
Wailok Shumfb7e7872021-06-18 17:30:08 +08002728 },
2729 {
2730 "type" : "runtime_data",
2731 "value" : 0
2732 }
2733 ],
2734 "source_info" : {
2735 "filename" : "include/control/pre_next.p4",
2736 "line" : 57,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002737 "column" : 32,
2738 "source_fragment" : "= vlan_id; ..."
Wailok Shumfb7e7872021-06-18 17:30:08 +08002739 }
2740 }
2741 ]
2742 },
2743 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002744 "name" : "FabricIngress.acl.set_next_id_acl",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002745 "id" : 18,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002746 "runtime_data" : [
2747 {
2748 "name" : "next_id",
2749 "bitwidth" : 32
2750 }
2751 ],
2752 "primitives" : [
2753 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002754 "op" : "assign",
2755 "parameters" : [
2756 {
2757 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002758 "value" : ["scalars", "userMetadata._next_id17"]
Esin Karaman971fb7f2017-12-28 13:44:52 +00002759 },
2760 {
2761 "type" : "runtime_data",
2762 "value" : 0
2763 }
2764 ],
2765 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002766 "filename" : "include/control/acl.p4",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002767 "line" : 32,
2768 "column" : 26,
2769 "source_fragment" : "= next_id; ..."
Yi Tseng47eac892018-07-11 02:17:04 +08002770 }
2771 }
2772 ]
2773 },
2774 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002775 "name" : "FabricIngress.acl.punt_to_cpu",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002776 "id" : 19,
Yi Tsengbe342052017-11-03 10:21:23 -07002777 "runtime_data" : [],
2778 "primitives" : [
2779 {
2780 "op" : "assign",
2781 "parameters" : [
2782 {
2783 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07002784 "value" : ["standard_metadata", "egress_spec"]
2785 },
2786 {
2787 "type" : "hexstr",
2788 "value" : "0x00ff"
2789 }
2790 ],
2791 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002792 "filename" : "include/control/acl.p4",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002793 "line" : 38,
Carmelo Casconeb531b682018-01-30 17:55:56 -08002794 "column" : 8,
2795 "source_fragment" : "standard_metadata.egress_spec = 255"
Yi Tsengbe342052017-11-03 10:21:23 -07002796 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002797 },
2798 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002799 "op" : "assign",
2800 "parameters" : [
2801 {
2802 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002803 "value" : ["scalars", "userMetadata._skip_next15"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002804 },
2805 {
2806 "type" : "expression",
2807 "value" : {
2808 "type" : "expression",
2809 "value" : {
2810 "op" : "b2d",
2811 "left" : null,
2812 "right" : {
2813 "type" : "bool",
2814 "value" : true
2815 }
2816 }
2817 }
2818 }
2819 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002820 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002821 "filename" : "include/control/acl.p4",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002822 "line" : 39,
2823 "column" : 28,
2824 "source_fragment" : "= true; ..."
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002825 }
2826 }
2827 ]
2828 },
2829 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002830 "name" : "FabricIngress.acl.set_clone_session_id",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002831 "id" : 20,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002832 "runtime_data" : [
2833 {
2834 "name" : "clone_id",
2835 "bitwidth" : 32
2836 }
2837 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002838 "primitives" : [
2839 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002840 "op" : "clone_ingress_pkt_to_egress",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002841 "parameters" : [
2842 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002843 "type" : "runtime_data",
2844 "value" : 0
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002845 },
2846 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002847 "type" : "hexstr",
2848 "value" : "0x1"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002849 }
2850 ],
2851 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002852 "filename" : "include/control/acl.p4",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002853 "line" : 45,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002854 "column" : 8,
Daniele Moro3b7a21b2019-06-25 17:33:40 -07002855 "source_fragment" : "clone3(CloneType.I2E, clone_id, {standard_metadata.ingress_port})"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002856 }
Yi Tsengbe342052017-11-03 10:21:23 -07002857 }
2858 ]
2859 },
2860 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002861 "name" : "FabricIngress.acl.drop",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002862 "id" : 21,
Yi Tseng47eac892018-07-11 02:17:04 +08002863 "runtime_data" : [],
2864 "primitives" : [
2865 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002866 "op" : "mark_to_drop",
2867 "parameters" : [
2868 {
2869 "type" : "header",
2870 "value" : "standard_metadata"
2871 }
2872 ],
Yi Tseng47eac892018-07-11 02:17:04 +08002873 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002874 "filename" : "include/control/acl.p4",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002875 "line" : 50,
Yi Tseng47eac892018-07-11 02:17:04 +08002876 "column" : 8,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002877 "source_fragment" : "mark_to_drop(standard_metadata)"
Yi Tseng47eac892018-07-11 02:17:04 +08002878 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002879 },
2880 {
2881 "op" : "assign",
2882 "parameters" : [
2883 {
2884 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002885 "value" : ["scalars", "userMetadata._skip_next15"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002886 },
2887 {
2888 "type" : "expression",
2889 "value" : {
2890 "type" : "expression",
2891 "value" : {
2892 "op" : "b2d",
2893 "left" : null,
2894 "right" : {
2895 "type" : "bool",
2896 "value" : true
2897 }
2898 }
2899 }
2900 }
2901 ],
2902 "source_info" : {
2903 "filename" : "include/control/acl.p4",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002904 "line" : 51,
2905 "column" : 28,
2906 "source_fragment" : "= true; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002907 }
Yi Tseng47eac892018-07-11 02:17:04 +08002908 }
2909 ]
2910 },
2911 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002912 "name" : "FabricIngress.acl.nop_acl",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002913 "id" : 22,
Charles Chancf696e52018-08-16 16:25:13 -07002914 "runtime_data" : [],
2915 "primitives" : []
2916 },
2917 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002918 "name" : "FabricIngress.next.output_xconnect",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002919 "id" : 23,
2920 "runtime_data" : [
2921 {
2922 "name" : "port_num",
2923 "bitwidth" : 9
2924 }
2925 ],
2926 "primitives" : [
2927 {
2928 "op" : "assign",
2929 "parameters" : [
2930 {
2931 "type" : "field",
2932 "value" : ["standard_metadata", "egress_spec"]
2933 },
2934 {
2935 "type" : "runtime_data",
2936 "value" : 0
2937 }
2938 ],
2939 "source_info" : {
2940 "filename" : "include/control/next.p4",
2941 "line" : 31,
2942 "column" : 5,
2943 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2944 }
2945 }
2946 ]
2947 },
2948 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08002949 "name" : "FabricIngress.next.set_next_id_xconnect",
Charles Chancd03f072018-08-31 17:46:37 -07002950 "id" : 24,
Yi Tseng47eac892018-07-11 02:17:04 +08002951 "runtime_data" : [
2952 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08002953 "name" : "next_id",
2954 "bitwidth" : 32
Yi Tseng47eac892018-07-11 02:17:04 +08002955 }
2956 ],
2957 "primitives" : [
2958 {
2959 "op" : "assign",
2960 "parameters" : [
2961 {
2962 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002963 "value" : ["scalars", "userMetadata._next_id17"]
Yi Tseng47eac892018-07-11 02:17:04 +08002964 },
2965 {
2966 "type" : "runtime_data",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002967 "value" : 0
Yi Tseng47eac892018-07-11 02:17:04 +08002968 }
2969 ],
2970 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002971 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002972 "line" : 64,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02002973 "column" : 32,
2974 "source_fragment" : "= next_id; ..."
Yi Tseng47eac892018-07-11 02:17:04 +08002975 }
Wailok Shumfb7e7872021-06-18 17:30:08 +08002976 }
2977 ]
2978 },
2979 {
2980 "name" : "FabricIngress.next.output_hashed",
2981 "id" : 25,
2982 "runtime_data" : [
Yi Tseng47eac892018-07-11 02:17:04 +08002983 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08002984 "name" : "port_num",
2985 "bitwidth" : 9
2986 }
2987 ],
2988 "primitives" : [
Yi Tseng47eac892018-07-11 02:17:04 +08002989 {
2990 "op" : "assign",
2991 "parameters" : [
2992 {
2993 "type" : "field",
2994 "value" : ["standard_metadata", "egress_spec"]
2995 },
2996 {
2997 "type" : "runtime_data",
2998 "value" : 0
2999 }
3000 ],
3001 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003002 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003003 "line" : 31,
3004 "column" : 5,
Yi Tseng47eac892018-07-11 02:17:04 +08003005 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003006 }
3007 }
3008 ]
3009 },
3010 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08003011 "name" : "FabricIngress.next.routing_hashed",
3012 "id" : 26,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003013 "runtime_data" : [
3014 {
3015 "name" : "port_num",
3016 "bitwidth" : 9
3017 },
3018 {
3019 "name" : "smac",
3020 "bitwidth" : 48
3021 },
3022 {
3023 "name" : "dmac",
3024 "bitwidth" : 48
Yi Tsengbe342052017-11-03 10:21:23 -07003025 }
3026 ],
3027 "primitives" : [
3028 {
3029 "op" : "assign",
3030 "parameters" : [
3031 {
3032 "type" : "field",
3033 "value" : ["ethernet", "src_addr"]
3034 },
3035 {
3036 "type" : "runtime_data",
3037 "value" : 1
3038 }
3039 ],
3040 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003041 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003042 "line" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07003043 "column" : 8,
3044 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
3045 }
3046 },
3047 {
3048 "op" : "assign",
3049 "parameters" : [
3050 {
3051 "type" : "field",
3052 "value" : ["ethernet", "dst_addr"]
3053 },
3054 {
3055 "type" : "runtime_data",
3056 "value" : 2
3057 }
3058 ],
3059 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003060 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003061 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07003062 "column" : 8,
3063 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
3064 }
3065 },
3066 {
3067 "op" : "assign",
3068 "parameters" : [
3069 {
3070 "type" : "field",
3071 "value" : ["standard_metadata", "egress_spec"]
3072 },
3073 {
3074 "type" : "runtime_data",
3075 "value" : 0
3076 }
3077 ],
3078 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003079 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003080 "line" : 31,
3081 "column" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07003082 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
3083 }
Yi Tsengbe342052017-11-03 10:21:23 -07003084 }
3085 ]
3086 },
3087 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003088 "name" : "FabricIngress.next.set_mcast_group_id",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003089 "id" : 27,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003090 "runtime_data" : [
3091 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003092 "name" : "group_id",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003093 "bitwidth" : 16
3094 }
3095 ],
3096 "primitives" : [
3097 {
3098 "op" : "assign",
3099 "parameters" : [
3100 {
3101 "type" : "field",
3102 "value" : ["standard_metadata", "mcast_grp"]
3103 },
3104 {
3105 "type" : "runtime_data",
3106 "value" : 0
3107 }
3108 ],
3109 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003110 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003111 "line" : 166,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003112 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003113 "source_fragment" : "standard_metadata.mcast_grp = group_id"
Esin Karaman971fb7f2017-12-28 13:44:52 +00003114 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003115 },
3116 {
3117 "op" : "assign",
3118 "parameters" : [
3119 {
3120 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02003121 "value" : ["scalars", "userMetadata._is_multicast18"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003122 },
3123 {
3124 "type" : "expression",
3125 "value" : {
3126 "type" : "expression",
3127 "value" : {
3128 "op" : "b2d",
3129 "left" : null,
3130 "right" : {
3131 "type" : "bool",
3132 "value" : true
3133 }
3134 }
3135 }
3136 }
3137 ],
3138 "source_info" : {
3139 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003140 "line" : 167,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02003141 "column" : 37,
3142 "source_fragment" : "= true; ..."
3143 }
3144 }
3145 ]
3146 },
3147 {
3148 "name" : "FabricIngress.slice_tc_classifier.set_slice_id_tc",
3149 "id" : 28,
3150 "runtime_data" : [
3151 {
3152 "name" : "slice_id",
3153 "bitwidth" : 4
3154 },
3155 {
3156 "name" : "tc",
3157 "bitwidth" : 2
3158 }
3159 ],
3160 "primitives" : [
3161 {
3162 "op" : "assign",
3163 "parameters" : [
3164 {
3165 "type" : "field",
3166 "value" : ["scalars", "userMetadata._slice_id25"]
3167 },
3168 {
3169 "type" : "runtime_data",
3170 "value" : 0
3171 }
3172 ],
3173 "source_info" : {
3174 "filename" : "include/control/slicing.p4",
3175 "line" : 35,
3176 "column" : 27,
3177 "source_fragment" : "= slice_id; ..."
3178 }
3179 },
3180 {
3181 "op" : "assign",
3182 "parameters" : [
3183 {
3184 "type" : "field",
3185 "value" : ["scalars", "userMetadata._tc27"]
3186 },
3187 {
3188 "type" : "runtime_data",
3189 "value" : 1
3190 }
3191 ],
3192 "source_info" : {
3193 "filename" : "include/control/slicing.p4",
3194 "line" : 36,
3195 "column" : 21,
3196 "source_fragment" : "= tc; ..."
3197 }
3198 }
3199 ]
3200 },
3201 {
3202 "name" : "FabricIngress.slice_tc_classifier.trust_dscp",
3203 "id" : 29,
3204 "runtime_data" : [],
3205 "primitives" : [
3206 {
3207 "op" : "assign",
3208 "parameters" : [
3209 {
3210 "type" : "field",
3211 "value" : ["scalars", "userMetadata._slice_id25"]
3212 },
3213 {
3214 "type" : "expression",
3215 "value" : {
3216 "type" : "expression",
3217 "value" : {
3218 "op" : "&",
3219 "left" : {
3220 "type" : "expression",
3221 "value" : {
3222 "op" : "&",
3223 "left" : {
3224 "type" : "expression",
3225 "value" : {
3226 "op" : ">>",
3227 "left" : {
3228 "type" : "field",
3229 "value" : ["ipv4", "dscp"]
3230 },
3231 "right" : {
3232 "type" : "hexstr",
3233 "value" : "0x2"
3234 }
3235 }
3236 },
3237 "right" : {
3238 "type" : "hexstr",
3239 "value" : "0x3f"
3240 }
3241 }
3242 },
3243 "right" : {
3244 "type" : "hexstr",
3245 "value" : "0x0f"
3246 }
3247 }
3248 }
3249 }
3250 ],
3251 "source_info" : {
3252 "filename" : "include/control/slicing.p4",
3253 "line" : 44,
3254 "column" : 27,
3255 "source_fragment" : "= hdr.ipv4.dscp[4 +2 -1:2]; ..."
3256 }
3257 },
3258 {
3259 "op" : "assign",
3260 "parameters" : [
3261 {
3262 "type" : "field",
3263 "value" : ["scalars", "userMetadata._tc27"]
3264 },
3265 {
3266 "type" : "expression",
3267 "value" : {
3268 "type" : "expression",
3269 "value" : {
3270 "op" : "&",
3271 "left" : {
3272 "type" : "field",
3273 "value" : ["ipv4", "dscp"]
3274 },
3275 "right" : {
3276 "type" : "hexstr",
3277 "value" : "0x03"
3278 }
3279 }
3280 }
3281 }
3282 ],
3283 "source_info" : {
3284 "filename" : "include/control/slicing.p4",
3285 "line" : 45,
3286 "column" : 21,
3287 "source_fragment" : "= hdr.ipv4.dscp[2 -1:0]; ..."
3288 }
3289 }
3290 ]
3291 },
3292 {
3293 "name" : "FabricIngress.qos.set_queue",
3294 "id" : 30,
3295 "runtime_data" : [
3296 {
3297 "name" : "qid",
3298 "bitwidth" : 5
3299 }
3300 ],
3301 "primitives" : []
3302 },
3303 {
3304 "name" : "FabricIngress.qos.meter_drop",
3305 "id" : 31,
3306 "runtime_data" : [],
3307 "primitives" : [
3308 {
3309 "op" : "mark_to_drop",
3310 "parameters" : [
3311 {
3312 "type" : "header",
3313 "value" : "standard_metadata"
3314 }
3315 ],
3316 "source_info" : {
3317 "filename" : "include/control/slicing.p4",
3318 "line" : 89,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003319 "column" : 8,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02003320 "source_fragment" : "mark_to_drop(standard_metadata)"
3321 }
3322 }
3323 ]
3324 },
3325 {
3326 "name" : "lookup_md_init37",
3327 "id" : 32,
3328 "runtime_data" : [],
3329 "primitives" : [
3330 {
3331 "op" : "assign",
3332 "parameters" : [
3333 {
3334 "type" : "field",
3335 "value" : ["scalars", "userMetadata._lkp_l4_sport4"]
3336 },
3337 {
3338 "type" : "field",
3339 "value" : ["inner_tcp", "sport"]
3340 }
3341 ],
3342 "source_info" : {
3343 "filename" : "include/control/lookup_md_init.p4",
3344 "line" : 37,
3345 "column" : 32,
3346 "source_fragment" : "= hdr.inner_tcp.sport; ..."
3347 }
3348 },
3349 {
3350 "op" : "assign",
3351 "parameters" : [
3352 {
3353 "type" : "field",
3354 "value" : ["scalars", "userMetadata._lkp_l4_dport5"]
3355 },
3356 {
3357 "type" : "field",
3358 "value" : ["inner_tcp", "dport"]
3359 }
3360 ],
3361 "source_info" : {
3362 "filename" : "include/control/lookup_md_init.p4",
3363 "line" : 38,
3364 "column" : 32,
3365 "source_fragment" : "= hdr.inner_tcp.dport; ..."
3366 }
3367 }
3368 ]
3369 },
3370 {
3371 "name" : "lookup_md_init40",
3372 "id" : 33,
3373 "runtime_data" : [],
3374 "primitives" : [
3375 {
3376 "op" : "assign",
3377 "parameters" : [
3378 {
3379 "type" : "field",
3380 "value" : ["scalars", "userMetadata._lkp_l4_sport4"]
3381 },
3382 {
3383 "type" : "field",
3384 "value" : ["inner_udp", "sport"]
3385 }
3386 ],
3387 "source_info" : {
3388 "filename" : "include/control/lookup_md_init.p4",
3389 "line" : 40,
3390 "column" : 32,
3391 "source_fragment" : "= hdr.inner_udp.sport; ..."
3392 }
3393 },
3394 {
3395 "op" : "assign",
3396 "parameters" : [
3397 {
3398 "type" : "field",
3399 "value" : ["scalars", "userMetadata._lkp_l4_dport5"]
3400 },
3401 {
3402 "type" : "field",
3403 "value" : ["inner_udp", "dport"]
3404 }
3405 ],
3406 "source_info" : {
3407 "filename" : "include/control/lookup_md_init.p4",
3408 "line" : 41,
3409 "column" : 32,
3410 "source_fragment" : "= hdr.inner_udp.dport; ..."
3411 }
3412 }
3413 ]
3414 },
3415 {
3416 "name" : "lookup_md_init43",
3417 "id" : 34,
3418 "runtime_data" : [],
3419 "primitives" : [
3420 {
3421 "op" : "assign",
3422 "parameters" : [
3423 {
3424 "type" : "field",
3425 "value" : ["scalars", "userMetadata._lkp_icmp_type6"]
3426 },
3427 {
3428 "type" : "field",
3429 "value" : ["inner_icmp", "icmp_type"]
3430 }
3431 ],
3432 "source_info" : {
3433 "filename" : "include/control/lookup_md_init.p4",
3434 "line" : 43,
3435 "column" : 33,
3436 "source_fragment" : "= hdr.inner_icmp.icmp_type; ..."
3437 }
3438 },
3439 {
3440 "op" : "assign",
3441 "parameters" : [
3442 {
3443 "type" : "field",
3444 "value" : ["scalars", "userMetadata._lkp_icmp_code7"]
3445 },
3446 {
3447 "type" : "field",
3448 "value" : ["inner_icmp", "icmp_code"]
3449 }
3450 ],
3451 "source_info" : {
3452 "filename" : "include/control/lookup_md_init.p4",
3453 "line" : 44,
3454 "column" : 33,
3455 "source_fragment" : "= hdr.inner_icmp.icmp_code; ..."
3456 }
3457 }
3458 ]
3459 },
3460 {
3461 "name" : "lookup_md_init32",
3462 "id" : 35,
3463 "runtime_data" : [],
3464 "primitives" : [
3465 {
3466 "op" : "assign",
3467 "parameters" : [
3468 {
3469 "type" : "field",
3470 "value" : ["scalars", "userMetadata._lkp_is_ipv40"]
3471 },
3472 {
3473 "type" : "expression",
3474 "value" : {
3475 "type" : "expression",
3476 "value" : {
3477 "op" : "b2d",
3478 "left" : null,
3479 "right" : {
3480 "type" : "bool",
3481 "value" : true
3482 }
3483 }
3484 }
3485 }
3486 ],
3487 "source_info" : {
3488 "filename" : "include/control/lookup_md_init.p4",
3489 "line" : 32,
3490 "column" : 27,
3491 "source_fragment" : "= true; ..."
3492 }
3493 },
3494 {
3495 "op" : "assign",
3496 "parameters" : [
3497 {
3498 "type" : "field",
3499 "value" : ["scalars", "userMetadata._lkp_ipv4_src1"]
3500 },
3501 {
3502 "type" : "field",
3503 "value" : ["inner_ipv4", "src_addr"]
3504 }
3505 ],
3506 "source_info" : {
3507 "filename" : "include/control/lookup_md_init.p4",
3508 "line" : 33,
3509 "column" : 28,
3510 "source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
3511 }
3512 },
3513 {
3514 "op" : "assign",
3515 "parameters" : [
3516 {
3517 "type" : "field",
3518 "value" : ["scalars", "userMetadata._lkp_ipv4_dst2"]
3519 },
3520 {
3521 "type" : "field",
3522 "value" : ["inner_ipv4", "dst_addr"]
3523 }
3524 ],
3525 "source_info" : {
3526 "filename" : "include/control/lookup_md_init.p4",
3527 "line" : 34,
3528 "column" : 28,
3529 "source_fragment" : "= hdr.inner_ipv4.dst_addr; ..."
3530 }
3531 },
3532 {
3533 "op" : "assign",
3534 "parameters" : [
3535 {
3536 "type" : "field",
3537 "value" : ["scalars", "userMetadata._lkp_ip_proto3"]
3538 },
3539 {
3540 "type" : "field",
3541 "value" : ["inner_ipv4", "protocol"]
3542 }
3543 ],
3544 "source_info" : {
3545 "filename" : "include/control/lookup_md_init.p4",
3546 "line" : 35,
3547 "column" : 28,
3548 "source_fragment" : "= hdr.inner_ipv4.protocol; ..."
3549 }
3550 }
3551 ]
3552 },
3553 {
3554 "name" : "lookup_md_init52",
3555 "id" : 36,
3556 "runtime_data" : [],
3557 "primitives" : [
3558 {
3559 "op" : "assign",
3560 "parameters" : [
3561 {
3562 "type" : "field",
3563 "value" : ["scalars", "userMetadata._lkp_l4_sport4"]
3564 },
3565 {
3566 "type" : "field",
3567 "value" : ["tcp", "sport"]
3568 }
3569 ],
3570 "source_info" : {
3571 "filename" : "include/control/lookup_md_init.p4",
3572 "line" : 52,
3573 "column" : 32,
3574 "source_fragment" : "= hdr.tcp.sport; ..."
3575 }
3576 },
3577 {
3578 "op" : "assign",
3579 "parameters" : [
3580 {
3581 "type" : "field",
3582 "value" : ["scalars", "userMetadata._lkp_l4_dport5"]
3583 },
3584 {
3585 "type" : "field",
3586 "value" : ["tcp", "dport"]
3587 }
3588 ],
3589 "source_info" : {
3590 "filename" : "include/control/lookup_md_init.p4",
3591 "line" : 53,
3592 "column" : 32,
3593 "source_fragment" : "= hdr.tcp.dport; ..."
3594 }
3595 }
3596 ]
3597 },
3598 {
3599 "name" : "lookup_md_init55",
3600 "id" : 37,
3601 "runtime_data" : [],
3602 "primitives" : [
3603 {
3604 "op" : "assign",
3605 "parameters" : [
3606 {
3607 "type" : "field",
3608 "value" : ["scalars", "userMetadata._lkp_l4_sport4"]
3609 },
3610 {
3611 "type" : "field",
3612 "value" : ["udp", "sport"]
3613 }
3614 ],
3615 "source_info" : {
3616 "filename" : "include/control/lookup_md_init.p4",
3617 "line" : 55,
3618 "column" : 32,
3619 "source_fragment" : "= hdr.udp.sport; ..."
3620 }
3621 },
3622 {
3623 "op" : "assign",
3624 "parameters" : [
3625 {
3626 "type" : "field",
3627 "value" : ["scalars", "userMetadata._lkp_l4_dport5"]
3628 },
3629 {
3630 "type" : "field",
3631 "value" : ["udp", "dport"]
3632 }
3633 ],
3634 "source_info" : {
3635 "filename" : "include/control/lookup_md_init.p4",
3636 "line" : 56,
3637 "column" : 32,
3638 "source_fragment" : "= hdr.udp.dport; ..."
3639 }
3640 }
3641 ]
3642 },
3643 {
3644 "name" : "lookup_md_init58",
3645 "id" : 38,
3646 "runtime_data" : [],
3647 "primitives" : [
3648 {
3649 "op" : "assign",
3650 "parameters" : [
3651 {
3652 "type" : "field",
3653 "value" : ["scalars", "userMetadata._lkp_icmp_type6"]
3654 },
3655 {
3656 "type" : "field",
3657 "value" : ["icmp", "icmp_type"]
3658 }
3659 ],
3660 "source_info" : {
3661 "filename" : "include/control/lookup_md_init.p4",
3662 "line" : 58,
3663 "column" : 33,
3664 "source_fragment" : "= hdr.icmp.icmp_type; ..."
3665 }
3666 },
3667 {
3668 "op" : "assign",
3669 "parameters" : [
3670 {
3671 "type" : "field",
3672 "value" : ["scalars", "userMetadata._lkp_icmp_code7"]
3673 },
3674 {
3675 "type" : "field",
3676 "value" : ["icmp", "icmp_code"]
3677 }
3678 ],
3679 "source_info" : {
3680 "filename" : "include/control/lookup_md_init.p4",
3681 "line" : 59,
3682 "column" : 33,
3683 "source_fragment" : "= hdr.icmp.icmp_code; ..."
3684 }
3685 }
3686 ]
3687 },
3688 {
3689 "name" : "lookup_md_init47",
3690 "id" : 39,
3691 "runtime_data" : [],
3692 "primitives" : [
3693 {
3694 "op" : "assign",
3695 "parameters" : [
3696 {
3697 "type" : "field",
3698 "value" : ["scalars", "userMetadata._lkp_is_ipv40"]
3699 },
3700 {
3701 "type" : "expression",
3702 "value" : {
3703 "type" : "expression",
3704 "value" : {
3705 "op" : "b2d",
3706 "left" : null,
3707 "right" : {
3708 "type" : "bool",
3709 "value" : true
3710 }
3711 }
3712 }
3713 }
3714 ],
3715 "source_info" : {
3716 "filename" : "include/control/lookup_md_init.p4",
3717 "line" : 47,
3718 "column" : 27,
3719 "source_fragment" : "= true; ..."
3720 }
3721 },
3722 {
3723 "op" : "assign",
3724 "parameters" : [
3725 {
3726 "type" : "field",
3727 "value" : ["scalars", "userMetadata._lkp_ipv4_src1"]
3728 },
3729 {
3730 "type" : "field",
3731 "value" : ["ipv4", "src_addr"]
3732 }
3733 ],
3734 "source_info" : {
3735 "filename" : "include/control/lookup_md_init.p4",
3736 "line" : 48,
3737 "column" : 28,
3738 "source_fragment" : "= hdr.ipv4.src_addr; ..."
3739 }
3740 },
3741 {
3742 "op" : "assign",
3743 "parameters" : [
3744 {
3745 "type" : "field",
3746 "value" : ["scalars", "userMetadata._lkp_ipv4_dst2"]
3747 },
3748 {
3749 "type" : "field",
3750 "value" : ["ipv4", "dst_addr"]
3751 }
3752 ],
3753 "source_info" : {
3754 "filename" : "include/control/lookup_md_init.p4",
3755 "line" : 49,
3756 "column" : 28,
3757 "source_fragment" : "= hdr.ipv4.dst_addr; ..."
3758 }
3759 },
3760 {
3761 "op" : "assign",
3762 "parameters" : [
3763 {
3764 "type" : "field",
3765 "value" : ["scalars", "userMetadata._lkp_ip_proto3"]
3766 },
3767 {
3768 "type" : "field",
3769 "value" : ["ipv4", "protocol"]
3770 }
3771 ],
3772 "source_info" : {
3773 "filename" : "include/control/lookup_md_init.p4",
3774 "line" : 50,
3775 "column" : 28,
3776 "source_fragment" : "= hdr.ipv4.protocol; ..."
3777 }
3778 }
3779 ]
3780 },
3781 {
3782 "name" : "lookup_md_init23",
3783 "id" : 40,
3784 "runtime_data" : [],
3785 "primitives" : [
3786 {
3787 "op" : "assign",
3788 "parameters" : [
3789 {
3790 "type" : "field",
3791 "value" : ["scalars", "userMetadata._lkp_is_ipv40"]
3792 },
3793 {
3794 "type" : "expression",
3795 "value" : {
3796 "type" : "expression",
3797 "value" : {
3798 "op" : "b2d",
3799 "left" : null,
3800 "right" : {
3801 "type" : "bool",
3802 "value" : false
3803 }
3804 }
3805 }
3806 }
3807 ],
3808 "source_info" : {
3809 "filename" : "include/control/lookup_md_init.p4",
3810 "line" : 23,
3811 "column" : 23,
3812 "source_fragment" : "= false; ..."
3813 }
3814 },
3815 {
3816 "op" : "assign",
3817 "parameters" : [
3818 {
3819 "type" : "field",
3820 "value" : ["scalars", "userMetadata._lkp_ipv4_src1"]
3821 },
3822 {
3823 "type" : "hexstr",
3824 "value" : "0x00000000"
3825 }
3826 ],
3827 "source_info" : {
3828 "filename" : "include/control/lookup_md_init.p4",
3829 "line" : 24,
3830 "column" : 24,
3831 "source_fragment" : "= 0; ..."
3832 }
3833 },
3834 {
3835 "op" : "assign",
3836 "parameters" : [
3837 {
3838 "type" : "field",
3839 "value" : ["scalars", "userMetadata._lkp_ipv4_dst2"]
3840 },
3841 {
3842 "type" : "hexstr",
3843 "value" : "0x00000000"
3844 }
3845 ],
3846 "source_info" : {
3847 "filename" : "include/control/lookup_md_init.p4",
3848 "line" : 25,
3849 "column" : 24,
3850 "source_fragment" : "= 0; ..."
3851 }
3852 },
3853 {
3854 "op" : "assign",
3855 "parameters" : [
3856 {
3857 "type" : "field",
3858 "value" : ["scalars", "userMetadata._lkp_ip_proto3"]
3859 },
3860 {
3861 "type" : "hexstr",
3862 "value" : "0x00"
3863 }
3864 ],
3865 "source_info" : {
3866 "filename" : "include/control/lookup_md_init.p4",
3867 "line" : 26,
3868 "column" : 24,
3869 "source_fragment" : "= 0; ..."
3870 }
3871 },
3872 {
3873 "op" : "assign",
3874 "parameters" : [
3875 {
3876 "type" : "field",
3877 "value" : ["scalars", "userMetadata._lkp_l4_sport4"]
3878 },
3879 {
3880 "type" : "hexstr",
3881 "value" : "0x0000"
3882 }
3883 ],
3884 "source_info" : {
3885 "filename" : "include/control/lookup_md_init.p4",
3886 "line" : 27,
3887 "column" : 24,
3888 "source_fragment" : "= 0; ..."
3889 }
3890 },
3891 {
3892 "op" : "assign",
3893 "parameters" : [
3894 {
3895 "type" : "field",
3896 "value" : ["scalars", "userMetadata._lkp_l4_dport5"]
3897 },
3898 {
3899 "type" : "hexstr",
3900 "value" : "0x0000"
3901 }
3902 ],
3903 "source_info" : {
3904 "filename" : "include/control/lookup_md_init.p4",
3905 "line" : 28,
3906 "column" : 24,
3907 "source_fragment" : "= 0; ..."
3908 }
3909 },
3910 {
3911 "op" : "assign",
3912 "parameters" : [
3913 {
3914 "type" : "field",
3915 "value" : ["scalars", "userMetadata._lkp_icmp_type6"]
3916 },
3917 {
3918 "type" : "hexstr",
3919 "value" : "0x00"
3920 }
3921 ],
3922 "source_info" : {
3923 "filename" : "include/control/lookup_md_init.p4",
3924 "line" : 29,
3925 "column" : 25,
3926 "source_fragment" : "= 0; ..."
3927 }
3928 },
3929 {
3930 "op" : "assign",
3931 "parameters" : [
3932 {
3933 "type" : "field",
3934 "value" : ["scalars", "userMetadata._lkp_icmp_code7"]
3935 },
3936 {
3937 "type" : "hexstr",
3938 "value" : "0x00"
3939 }
3940 ],
3941 "source_info" : {
3942 "filename" : "include/control/lookup_md_init.p4",
3943 "line" : 30,
3944 "column" : 25,
3945 "source_fragment" : "= 0; ..."
Carmelo Casconea5400af2018-07-17 22:11:54 +02003946 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00003947 }
3948 ]
3949 },
3950 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003951 "name" : "packetio25",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02003952 "id" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07003953 "runtime_data" : [],
3954 "primitives" : [
3955 {
3956 "op" : "assign",
3957 "parameters" : [
3958 {
3959 "type" : "field",
3960 "value" : ["standard_metadata", "egress_spec"]
3961 },
3962 {
3963 "type" : "field",
3964 "value" : ["packet_out", "egress_port"]
3965 }
3966 ],
3967 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003968 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003969 "line" : 25,
Yi Tsengbe342052017-11-03 10:21:23 -07003970 "column" : 12,
3971 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
3972 }
Yi Tseng1d842672017-11-28 16:06:52 -08003973 },
3974 {
3975 "op" : "remove_header",
3976 "parameters" : [
3977 {
3978 "type" : "header",
3979 "value" : "packet_out"
3980 }
3981 ],
3982 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003983 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003984 "line" : 26,
Yi Tseng1d842672017-11-28 16:06:52 -08003985 "column" : 12,
3986 "source_fragment" : "hdr.packet_out.setInvalid()"
3987 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003988 },
3989 {
3990 "op" : "assign",
3991 "parameters" : [
3992 {
3993 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02003994 "value" : ["scalars", "userMetadata._is_controller_packet_out19"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003995 },
3996 {
3997 "type" : "expression",
3998 "value" : {
3999 "type" : "expression",
4000 "value" : {
4001 "op" : "b2d",
4002 "left" : null,
4003 "right" : {
4004 "type" : "bool",
4005 "value" : true
4006 }
4007 }
4008 }
4009 }
4010 ],
4011 "source_info" : {
4012 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004013 "line" : 27,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004014 "column" : 53,
4015 "source_fragment" : "= true; ..."
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004016 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004017 },
4018 {
4019 "op" : "exit",
4020 "parameters" : [],
4021 "source_info" : {
4022 "filename" : "include/control/packetio.p4",
4023 "line" : 29,
4024 "column" : 12,
4025 "source_fragment" : "exit"
4026 }
Yi Tsengbe342052017-11-03 10:21:23 -07004027 }
4028 ]
4029 },
4030 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004031 "name" : "filtering113",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004032 "id" : 42,
Yi Tsengbe342052017-11-03 10:21:23 -07004033 "runtime_data" : [],
4034 "primitives" : [
4035 {
4036 "op" : "assign",
4037 "parameters" : [
4038 {
4039 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004040 "value" : ["scalars", "userMetadata._vlan_id9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004041 },
4042 {
4043 "type" : "field",
4044 "value" : ["vlan_tag", "vlan_id"]
4045 }
4046 ],
4047 "source_info" : {
4048 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004049 "line" : 113,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004050 "column" : 36,
4051 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004052 }
4053 },
4054 {
4055 "op" : "assign",
4056 "parameters" : [
4057 {
4058 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004059 "value" : ["scalars", "userMetadata._vlan_pri10"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004060 },
4061 {
4062 "type" : "field",
4063 "value" : ["vlan_tag", "pri"]
4064 }
4065 ],
4066 "source_info" : {
4067 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004068 "line" : 114,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004069 "column" : 37,
4070 "source_fragment" : "= hdr.vlan_tag.pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004071 }
4072 },
4073 {
4074 "op" : "assign",
4075 "parameters" : [
4076 {
4077 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004078 "value" : ["scalars", "userMetadata._vlan_cfi11"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004079 },
4080 {
4081 "type" : "field",
4082 "value" : ["vlan_tag", "cfi"]
4083 }
4084 ],
4085 "source_info" : {
4086 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004087 "line" : 115,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004088 "column" : 37,
4089 "source_fragment" : "= hdr.vlan_tag.cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004090 }
Yi Tseng1d842672017-11-28 16:06:52 -08004091 }
4092 ]
4093 },
4094 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004095 "name" : "filtering129",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004096 "id" : 43,
Yi Tseng1d842672017-11-28 16:06:52 -08004097 "runtime_data" : [],
4098 "primitives" : [
4099 {
4100 "op" : "assign",
4101 "parameters" : [
4102 {
4103 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004104 "value" : ["scalars", "userMetadata._mpls_ttl13"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004105 },
4106 {
4107 "type" : "hexstr",
4108 "value" : "0x41"
4109 }
4110 ],
4111 "source_info" : {
4112 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004113 "line" : 129,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004114 "column" : 37,
4115 "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
Wailok Shum4f51bde2021-06-11 22:48:41 +08004116 }
4117 }
4118 ]
4119 },
4120 {
4121 "name" : "port_counter31",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004122 "id" : 44,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004123 "runtime_data" : [],
4124 "primitives" : [
4125 {
4126 "op" : "assign",
4127 "parameters" : [
4128 {
4129 "type" : "field",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07004130 "value" : ["scalars", "tmp_8"]
Yi Tseng1d842672017-11-28 16:06:52 -08004131 },
4132 {
4133 "type" : "expression",
4134 "value" : {
4135 "type" : "expression",
4136 "value" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004137 "op" : "&",
4138 "left" : {
4139 "type" : "field",
4140 "value" : ["standard_metadata", "egress_spec"]
4141 },
Yi Tseng1d842672017-11-28 16:06:52 -08004142 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004143 "type" : "hexstr",
4144 "value" : "0xffffffff"
Yi Tseng1d842672017-11-28 16:06:52 -08004145 }
4146 }
4147 }
4148 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004149 ],
4150 "source_info" : {
4151 "filename" : "include/control/port_counter.p4",
4152 "line" : 31,
4153 "column" : 38,
4154 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
4155 }
4156 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02004157 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004158 "op" : "count",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004159 "parameters" : [
4160 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004161 "type" : "counter_array",
4162 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004163 },
4164 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004165 "type" : "field",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07004166 "value" : ["scalars", "tmp_8"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02004167 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004168 ],
4169 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004170 "filename" : "include/control/port_counter.p4",
4171 "line" : 31,
4172 "column" : 12,
4173 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004174 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02004175 }
4176 ]
4177 },
4178 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004179 "name" : "port_counter34",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004180 "id" : 45,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004181 "runtime_data" : [],
4182 "primitives" : [
4183 {
4184 "op" : "assign",
4185 "parameters" : [
4186 {
4187 "type" : "field",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07004188 "value" : ["scalars", "tmp_9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004189 },
4190 {
4191 "type" : "expression",
4192 "value" : {
4193 "type" : "expression",
4194 "value" : {
4195 "op" : "&",
4196 "left" : {
4197 "type" : "field",
4198 "value" : ["standard_metadata", "ingress_port"]
4199 },
4200 "right" : {
4201 "type" : "hexstr",
4202 "value" : "0xffffffff"
4203 }
4204 }
4205 }
4206 }
4207 ],
4208 "source_info" : {
4209 "filename" : "include/control/port_counter.p4",
4210 "line" : 34,
4211 "column" : 39,
4212 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
4213 }
4214 },
4215 {
4216 "op" : "count",
4217 "parameters" : [
4218 {
4219 "type" : "counter_array",
4220 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
4221 },
4222 {
4223 "type" : "field",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07004224 "value" : ["scalars", "tmp_9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004225 }
4226 ],
4227 "source_info" : {
4228 "filename" : "include/control/port_counter.p4",
4229 "line" : 34,
4230 "column" : 12,
4231 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
4232 }
4233 }
4234 ]
4235 },
4236 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004237 "name" : "slicing114",
4238 "id" : 46,
4239 "runtime_data" : [],
4240 "primitives" : [
4241 {
4242 "op" : "assign",
4243 "parameters" : [
4244 {
4245 "type" : "field",
4246 "value" : ["scalars", "tmp_10"]
4247 },
4248 {
4249 "type" : "expression",
4250 "value" : {
4251 "type" : "expression",
4252 "value" : {
4253 "op" : "&",
4254 "left" : {
4255 "type" : "expression",
4256 "value" : {
4257 "op" : "|",
4258 "left" : {
4259 "type" : "expression",
4260 "value" : {
4261 "op" : "&",
4262 "left" : {
4263 "type" : "expression",
4264 "value" : {
4265 "op" : "<<",
4266 "left" : {
4267 "type" : "expression",
4268 "value" : {
4269 "op" : "&",
4270 "left" : {
4271 "type" : "field",
4272 "value" : ["scalars", "userMetadata._slice_id25"]
4273 },
4274 "right" : {
4275 "type" : "hexstr",
4276 "value" : "0x3f"
4277 }
4278 }
4279 },
4280 "right" : {
4281 "type" : "hexstr",
4282 "value" : "0x2"
4283 }
4284 }
4285 },
4286 "right" : {
4287 "type" : "hexstr",
4288 "value" : "0x3f"
4289 }
4290 }
4291 },
4292 "right" : {
4293 "type" : "expression",
4294 "value" : {
4295 "op" : "&",
4296 "left" : {
4297 "type" : "expression",
4298 "value" : {
4299 "op" : "&",
4300 "left" : {
4301 "type" : "field",
4302 "value" : ["scalars", "userMetadata._tc27"]
4303 },
4304 "right" : {
4305 "type" : "hexstr",
4306 "value" : "0x3f"
4307 }
4308 }
4309 },
4310 "right" : {
4311 "type" : "hexstr",
4312 "value" : "0x07"
4313 }
4314 }
4315 }
4316 }
4317 },
4318 "right" : {
4319 "type" : "hexstr",
4320 "value" : "0xffffffff"
4321 }
4322 }
4323 }
4324 }
4325 ],
4326 "source_info" : {
4327 "filename" : "include/control/slicing.p4",
4328 "line" : 114,
4329 "column" : 37,
4330 "source_fragment" : "(bit<32>) slice_tc"
4331 }
4332 },
4333 {
4334 "op" : "execute_meter",
4335 "parameters" : [
4336 {
4337 "type" : "meter_array",
4338 "value" : "FabricIngress.qos.slice_tc_meter"
4339 },
4340 {
4341 "type" : "field",
4342 "value" : ["scalars", "tmp_10"]
4343 },
4344 {
4345 "type" : "field",
4346 "value" : ["scalars", "userMetadata._packet_color26"]
4347 }
4348 ],
4349 "source_info" : {
4350 "filename" : "include/control/slicing.p4",
4351 "line" : 114,
4352 "column" : 8,
4353 "source_fragment" : "slice_tc_meter.execute_meter((bit<32>) slice_tc, fabric_md.packet_color)"
4354 }
4355 },
4356 {
4357 "op" : "assign",
4358 "parameters" : [
4359 {
4360 "type" : "field",
4361 "value" : ["scalars", "userMetadata._dscp28"]
4362 },
4363 {
4364 "type" : "expression",
4365 "value" : {
4366 "type" : "expression",
4367 "value" : {
4368 "op" : "|",
4369 "left" : {
4370 "type" : "expression",
4371 "value" : {
4372 "op" : "&",
4373 "left" : {
4374 "type" : "expression",
4375 "value" : {
4376 "op" : "<<",
4377 "left" : {
4378 "type" : "expression",
4379 "value" : {
4380 "op" : "&",
4381 "left" : {
4382 "type" : "field",
4383 "value" : ["scalars", "userMetadata._slice_id25"]
4384 },
4385 "right" : {
4386 "type" : "hexstr",
4387 "value" : "0x3f"
4388 }
4389 }
4390 },
4391 "right" : {
4392 "type" : "hexstr",
4393 "value" : "0x2"
4394 }
4395 }
4396 },
4397 "right" : {
4398 "type" : "hexstr",
4399 "value" : "0x3f"
4400 }
4401 }
4402 },
4403 "right" : {
4404 "type" : "expression",
4405 "value" : {
4406 "op" : "&",
4407 "left" : {
4408 "type" : "expression",
4409 "value" : {
4410 "op" : "&",
4411 "left" : {
4412 "type" : "field",
4413 "value" : ["scalars", "userMetadata._tc27"]
4414 },
4415 "right" : {
4416 "type" : "hexstr",
4417 "value" : "0x3f"
4418 }
4419 }
4420 },
4421 "right" : {
4422 "type" : "hexstr",
4423 "value" : "0x07"
4424 }
4425 }
4426 }
4427 }
4428 }
4429 }
4430 ],
4431 "source_info" : {
4432 "filename" : "include/control/slicing.p4",
4433 "line" : 110,
4434 "column" : 26,
4435 "source_fragment" : "fabric_md.slice_id++fabric_md.tc; ..."
4436 }
4437 }
4438 ]
4439 },
4440 {
4441 "name" : "nop",
4442 "id" : 47,
4443 "runtime_data" : [],
4444 "primitives" : []
4445 },
4446 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004447 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004448 "id" : 48,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004449 "runtime_data" : [],
4450 "primitives" : [
4451 {
4452 "op" : "remove_header",
4453 "parameters" : [
4454 {
4455 "type" : "header",
4456 "value" : "mpls"
4457 }
4458 ],
4459 "source_info" : {
4460 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004461 "line" : 204,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004462 "column" : 8,
4463 "source_fragment" : "hdr.mpls.setInvalid()"
4464 }
4465 },
4466 {
4467 "op" : "assign",
4468 "parameters" : [
4469 {
4470 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004471 "value" : ["eth_type", "value"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004472 },
4473 {
4474 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004475 "value" : ["scalars", "userMetadata._ip_eth_type8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004476 }
4477 ],
4478 "source_info" : {
4479 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004480 "line" : 206,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004481 "column" : 8,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004482 "source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004483 }
4484 }
4485 ]
4486 },
4487 {
4488 "name" : "FabricEgress.egress_next.set_mpls",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004489 "id" : 49,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004490 "runtime_data" : [],
4491 "primitives" : [
4492 {
4493 "op" : "add_header",
4494 "parameters" : [
4495 {
4496 "type" : "header",
4497 "value" : "mpls"
4498 }
4499 ],
4500 "source_info" : {
4501 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004502 "line" : 211,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004503 "column" : 8,
4504 "source_fragment" : "hdr.mpls.setValid()"
4505 }
4506 },
4507 {
4508 "op" : "assign",
4509 "parameters" : [
4510 {
4511 "type" : "field",
4512 "value" : ["mpls", "label"]
4513 },
4514 {
4515 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004516 "value" : ["scalars", "userMetadata._mpls_label12"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004517 }
4518 ],
4519 "source_info" : {
4520 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004521 "line" : 212,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004522 "column" : 8,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004523 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004524 }
4525 },
4526 {
4527 "op" : "assign",
4528 "parameters" : [
4529 {
4530 "type" : "field",
4531 "value" : ["mpls", "tc"]
4532 },
4533 {
4534 "type" : "hexstr",
4535 "value" : "0x00"
4536 }
4537 ],
4538 "source_info" : {
4539 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004540 "line" : 213,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004541 "column" : 8,
4542 "source_fragment" : "hdr.mpls.tc = 3w0"
4543 }
4544 },
4545 {
4546 "op" : "assign",
4547 "parameters" : [
4548 {
4549 "type" : "field",
4550 "value" : ["mpls", "bos"]
4551 },
4552 {
4553 "type" : "hexstr",
4554 "value" : "0x01"
4555 }
4556 ],
4557 "source_info" : {
4558 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004559 "line" : 214,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004560 "column" : 8,
4561 "source_fragment" : "hdr.mpls.bos = 1w1"
4562 }
4563 },
4564 {
4565 "op" : "assign",
4566 "parameters" : [
4567 {
4568 "type" : "field",
4569 "value" : ["mpls", "ttl"]
4570 },
4571 {
4572 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004573 "value" : ["scalars", "userMetadata._mpls_ttl13"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004574 }
4575 ],
4576 "source_info" : {
4577 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004578 "line" : 215,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004579 "column" : 8,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004580 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004581 }
4582 },
4583 {
4584 "op" : "assign",
4585 "parameters" : [
4586 {
4587 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07004588 "value" : ["eth_type", "value"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004589 },
4590 {
4591 "type" : "hexstr",
4592 "value" : "0x8847"
4593 }
4594 ],
4595 "source_info" : {
4596 "filename" : "include/control/../define.p4",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004597 "line" : 147,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004598 "column" : 31,
4599 "source_fragment" : "0x8847; ..."
4600 }
4601 }
4602 ]
4603 },
4604 {
4605 "name" : "FabricEgress.egress_next.push_vlan",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004606 "id" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004607 "runtime_data" : [],
4608 "primitives" : [
4609 {
4610 "op" : "add_header",
4611 "parameters" : [
4612 {
4613 "type" : "header",
4614 "value" : "vlan_tag"
4615 }
4616 ],
4617 "source_info" : {
4618 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004619 "line" : 223,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004620 "column" : 8,
4621 "source_fragment" : "hdr.vlan_tag.setValid()"
4622 }
4623 },
4624 {
4625 "op" : "assign",
4626 "parameters" : [
4627 {
4628 "type" : "field",
4629 "value" : ["vlan_tag", "cfi"]
4630 },
4631 {
4632 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004633 "value" : ["scalars", "userMetadata._vlan_cfi11"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004634 }
4635 ],
4636 "source_info" : {
4637 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004638 "line" : 224,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004639 "column" : 8,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004640 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004641 }
4642 },
4643 {
4644 "op" : "assign",
4645 "parameters" : [
4646 {
4647 "type" : "field",
4648 "value" : ["vlan_tag", "pri"]
4649 },
4650 {
4651 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004652 "value" : ["scalars", "userMetadata._vlan_pri10"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004653 }
4654 ],
4655 "source_info" : {
4656 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004657 "line" : 225,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004658 "column" : 8,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004659 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004660 }
4661 },
4662 {
4663 "op" : "assign",
4664 "parameters" : [
4665 {
4666 "type" : "field",
4667 "value" : ["vlan_tag", "eth_type"]
4668 },
4669 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004670 "type" : "hexstr",
4671 "value" : "0x8100"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004672 }
4673 ],
4674 "source_info" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004675 "filename" : "include/control/../define.p4",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004676 "line" : 146,
Daniele Moro5a2de712019-09-24 14:34:07 -07004677 "column" : 31,
4678 "source_fragment" : "0x8100; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004679 }
4680 },
4681 {
4682 "op" : "assign",
4683 "parameters" : [
4684 {
4685 "type" : "field",
4686 "value" : ["vlan_tag", "vlan_id"]
4687 },
4688 {
4689 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004690 "value" : ["scalars", "userMetadata._vlan_id9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004691 }
4692 ],
4693 "source_info" : {
4694 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004695 "line" : 227,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004696 "column" : 8,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004697 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004698 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004699 }
4700 ]
4701 },
4702 {
4703 "name" : "FabricEgress.egress_next.pop_vlan",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004704 "id" : 51,
Yi Tseng1d842672017-11-28 16:06:52 -08004705 "runtime_data" : [],
4706 "primitives" : [
4707 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004708 "op" : "remove_header",
4709 "parameters" : [
4710 {
4711 "type" : "header",
4712 "value" : "vlan_tag"
4713 }
4714 ],
4715 "source_info" : {
4716 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004717 "line" : 256,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004718 "column" : 8,
4719 "source_fragment" : "hdr.vlan_tag.setInvalid()"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004720 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02004721 }
4722 ]
4723 },
4724 {
pierventre48e78822020-12-15 17:34:54 +01004725 "name" : "FabricEgress.egress_next.drop",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004726 "id" : 52,
pierventre48e78822020-12-15 17:34:54 +01004727 "runtime_data" : [],
4728 "primitives" : [
4729 {
4730 "op" : "mark_to_drop",
4731 "parameters" : [
4732 {
4733 "type" : "header",
4734 "value" : "standard_metadata"
4735 }
4736 ],
4737 "source_info" : {
4738 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004739 "line" : 261,
pierventre48e78822020-12-15 17:34:54 +01004740 "column" : 8,
4741 "source_fragment" : "mark_to_drop(standard_metadata)"
4742 }
4743 }
4744 ]
4745 },
4746 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004747 "name" : "FabricEgress.dscp_rewriter.rewrite",
4748 "id" : 53,
4749 "runtime_data" : [],
4750 "primitives" : []
4751 },
4752 {
4753 "name" : "FabricEgress.dscp_rewriter.clear",
4754 "id" : 54,
4755 "runtime_data" : [],
4756 "primitives" : [
4757 {
4758 "op" : "assign",
4759 "parameters" : [
4760 {
4761 "type" : "field",
4762 "value" : ["scalars", "dscp_rewriter_tmp_dscp"]
4763 },
4764 {
4765 "type" : "hexstr",
4766 "value" : "0x00"
4767 }
4768 ],
4769 "source_info" : {
4770 "filename" : "include/control/slicing.p4",
4771 "line" : 135,
4772 "column" : 8,
4773 "source_fragment" : "tmp_dscp = 0"
4774 }
4775 }
4776 ]
4777 },
4778 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004779 "name" : "packetio41",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004780 "id" : 55,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004781 "runtime_data" : [],
4782 "primitives" : [
4783 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004784 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004785 "parameters" : [],
4786 "source_info" : {
4787 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004788 "line" : 41,
4789 "column" : 12,
4790 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004791 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02004792 }
4793 ]
4794 },
4795 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004796 "name" : "packetio44",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004797 "id" : 56,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004798 "runtime_data" : [],
4799 "primitives" : [
4800 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004801 "op" : "add_header",
4802 "parameters" : [
4803 {
4804 "type" : "header",
4805 "value" : "packet_in"
4806 }
4807 ],
4808 "source_info" : {
4809 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004810 "line" : 44,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004811 "column" : 12,
4812 "source_fragment" : "hdr.packet_in.setValid()"
4813 }
4814 },
4815 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004816 "op" : "assign",
4817 "parameters" : [
4818 {
4819 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004820 "value" : ["packet_in", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004821 },
4822 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004823 "type" : "field",
4824 "value" : ["standard_metadata", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004825 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004826 ],
4827 "source_info" : {
4828 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004829 "line" : 45,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004830 "column" : 12,
4831 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4832 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004833 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004834 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004835 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004836 "parameters" : [],
4837 "source_info" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004838 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004839 "line" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004840 "column" : 12,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004841 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004842 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004843 }
4844 ]
4845 },
4846 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004847 "name" : "next283",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004848 "id" : 57,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004849 "runtime_data" : [],
4850 "primitives" : [
4851 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004852 "op" : "mark_to_drop",
4853 "parameters" : [
4854 {
4855 "type" : "header",
4856 "value" : "standard_metadata"
4857 }
4858 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004859 "source_info" : {
4860 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004861 "line" : 283,
4862 "column" : 12,
4863 "source_fragment" : "mark_to_drop(standard_metadata)"
4864 }
4865 }
4866 ]
4867 },
4868 {
4869 "name" : "next310",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004870 "id" : 58,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004871 "runtime_data" : [],
4872 "primitives" : [
4873 {
4874 "op" : "mark_to_drop",
4875 "parameters" : [
4876 {
4877 "type" : "header",
4878 "value" : "standard_metadata"
4879 }
4880 ],
4881 "source_info" : {
4882 "filename" : "include/control/next.p4",
4883 "line" : 310,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004884 "column" : 35,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004885 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004886 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02004887 }
4888 ]
4889 },
4890 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004891 "name" : "next309",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004892 "id" : 59,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004893 "runtime_data" : [],
4894 "primitives" : [
4895 {
4896 "op" : "assign",
4897 "parameters" : [
4898 {
4899 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004900 "value" : ["mpls", "ttl"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02004901 },
4902 {
4903 "type" : "expression",
4904 "value" : {
4905 "type" : "expression",
4906 "value" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004907 "op" : "&",
4908 "left" : {
4909 "type" : "expression",
4910 "value" : {
4911 "op" : "+",
4912 "left" : {
4913 "type" : "field",
4914 "value" : ["mpls", "ttl"]
4915 },
4916 "right" : {
4917 "type" : "hexstr",
4918 "value" : "0xff"
4919 }
4920 }
4921 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02004922 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004923 "type" : "hexstr",
4924 "value" : "0xff"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004925 }
4926 }
4927 }
4928 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004929 ],
4930 "source_info" : {
4931 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004932 "line" : 309,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004933 "column" : 12,
4934 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
4935 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02004936 }
4937 ]
4938 },
4939 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004940 "name" : "next314",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004941 "id" : 60,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004942 "runtime_data" : [],
4943 "primitives" : [
4944 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004945 "op" : "mark_to_drop",
4946 "parameters" : [
4947 {
4948 "type" : "header",
4949 "value" : "standard_metadata"
4950 }
4951 ],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004952 "source_info" : {
4953 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004954 "line" : 314,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004955 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004956 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004957 }
4958 }
4959 ]
4960 },
4961 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004962 "name" : "next313",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02004963 "id" : 61,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004964 "runtime_data" : [],
4965 "primitives" : [
4966 {
4967 "op" : "assign",
4968 "parameters" : [
4969 {
4970 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08004971 "value" : ["ipv4", "ttl"]
4972 },
4973 {
4974 "type" : "expression",
4975 "value" : {
4976 "type" : "expression",
4977 "value" : {
4978 "op" : "&",
4979 "left" : {
4980 "type" : "expression",
4981 "value" : {
4982 "op" : "+",
4983 "left" : {
4984 "type" : "field",
4985 "value" : ["ipv4", "ttl"]
4986 },
4987 "right" : {
4988 "type" : "hexstr",
4989 "value" : "0xff"
4990 }
4991 }
4992 },
4993 "right" : {
4994 "type" : "hexstr",
4995 "value" : "0xff"
4996 }
4997 }
4998 }
4999 }
5000 ],
5001 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005002 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005003 "line" : 313,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005004 "column" : 16,
Yi Tseng1d842672017-11-28 16:06:52 -08005005 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
5006 }
5007 }
5008 ]
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005009 },
5010 {
5011 "name" : "slicing159",
5012 "id" : 62,
5013 "runtime_data" : [],
5014 "primitives" : [
5015 {
5016 "op" : "assign",
5017 "parameters" : [
5018 {
5019 "type" : "field",
5020 "value" : ["inner_ipv4", "dscp"]
5021 },
5022 {
5023 "type" : "field",
5024 "value" : ["scalars", "dscp_rewriter_tmp_dscp"]
5025 }
5026 ],
5027 "source_info" : {
5028 "filename" : "include/control/slicing.p4",
5029 "line" : 159,
5030 "column" : 16,
5031 "source_fragment" : "hdr.inner_ipv4.dscp = tmp_dscp"
5032 }
5033 }
5034 ]
5035 },
5036 {
5037 "name" : "slicing126",
5038 "id" : 63,
5039 "runtime_data" : [],
5040 "primitives" : [
5041 {
5042 "op" : "assign",
5043 "parameters" : [
5044 {
5045 "type" : "field",
5046 "value" : ["scalars", "dscp_rewriter_tmp_dscp"]
5047 },
5048 {
5049 "type" : "field",
5050 "value" : ["scalars", "userMetadata._dscp28"]
5051 }
5052 ],
5053 "source_info" : {
5054 "filename" : "include/control/slicing.p4",
5055 "line" : 126,
5056 "column" : 4,
5057 "source_fragment" : "bit<6> tmp_dscp = fabric_md.dscp; ..."
5058 }
5059 }
5060 ]
Yi Tsengbe342052017-11-03 10:21:23 -07005061 }
5062 ],
5063 "pipelines" : [
5064 {
5065 "name" : "ingress",
5066 "id" : 0,
5067 "source_info" : {
5068 "filename" : "fabric.p4",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005069 "line" : 49,
Yi Tsengbe342052017-11-03 10:21:23 -07005070 "column" : 8,
5071 "source_fragment" : "FabricIngress"
5072 },
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005073 "init_table" : "tbl_lookup_md_init23",
Yi Tsengbe342052017-11-03 10:21:23 -07005074 "tables" : [
5075 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005076 "name" : "tbl_lookup_md_init23",
Yi Tsengbe342052017-11-03 10:21:23 -07005077 "id" : 0,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005078 "source_info" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005079 "filename" : "include/control/lookup_md_init.p4",
5080 "line" : 23,
5081 "column" : 23,
5082 "source_fragment" : "= false; ..."
5083 },
5084 "key" : [],
5085 "match_type" : "exact",
5086 "type" : "simple",
5087 "max_size" : 1024,
5088 "with_counters" : false,
5089 "support_timeout" : false,
5090 "direct_meters" : null,
5091 "action_ids" : [40],
5092 "actions" : ["lookup_md_init23"],
5093 "base_default_next" : "node_3",
5094 "next_tables" : {
5095 "lookup_md_init23" : "node_3"
5096 },
5097 "default_entry" : {
5098 "action_id" : 40,
5099 "action_const" : true,
5100 "action_data" : [],
5101 "action_entry_const" : true
5102 }
5103 },
5104 {
5105 "name" : "tbl_lookup_md_init32",
5106 "id" : 1,
5107 "source_info" : {
5108 "filename" : "include/control/lookup_md_init.p4",
5109 "line" : 32,
5110 "column" : 27,
5111 "source_fragment" : "= true; ..."
5112 },
5113 "key" : [],
5114 "match_type" : "exact",
5115 "type" : "simple",
5116 "max_size" : 1024,
5117 "with_counters" : false,
5118 "support_timeout" : false,
5119 "direct_meters" : null,
5120 "action_ids" : [35],
5121 "actions" : ["lookup_md_init32"],
5122 "base_default_next" : "node_5",
5123 "next_tables" : {
5124 "lookup_md_init32" : "node_5"
5125 },
5126 "default_entry" : {
5127 "action_id" : 35,
5128 "action_const" : true,
5129 "action_data" : [],
5130 "action_entry_const" : true
5131 }
5132 },
5133 {
5134 "name" : "tbl_lookup_md_init37",
5135 "id" : 2,
5136 "source_info" : {
5137 "filename" : "include/control/lookup_md_init.p4",
5138 "line" : 37,
5139 "column" : 32,
5140 "source_fragment" : "= hdr.inner_tcp.sport; ..."
5141 },
5142 "key" : [],
5143 "match_type" : "exact",
5144 "type" : "simple",
5145 "max_size" : 1024,
5146 "with_counters" : false,
5147 "support_timeout" : false,
5148 "direct_meters" : null,
5149 "action_ids" : [32],
5150 "actions" : ["lookup_md_init37"],
5151 "base_default_next" : "node_19",
5152 "next_tables" : {
5153 "lookup_md_init37" : "node_19"
5154 },
5155 "default_entry" : {
5156 "action_id" : 32,
5157 "action_const" : true,
5158 "action_data" : [],
5159 "action_entry_const" : true
5160 }
5161 },
5162 {
5163 "name" : "tbl_lookup_md_init40",
5164 "id" : 3,
5165 "source_info" : {
5166 "filename" : "include/control/lookup_md_init.p4",
5167 "line" : 40,
5168 "column" : 32,
5169 "source_fragment" : "= hdr.inner_udp.sport; ..."
5170 },
5171 "key" : [],
5172 "match_type" : "exact",
5173 "type" : "simple",
5174 "max_size" : 1024,
5175 "with_counters" : false,
5176 "support_timeout" : false,
5177 "direct_meters" : null,
5178 "action_ids" : [33],
5179 "actions" : ["lookup_md_init40"],
5180 "base_default_next" : "node_19",
5181 "next_tables" : {
5182 "lookup_md_init40" : "node_19"
5183 },
5184 "default_entry" : {
5185 "action_id" : 33,
5186 "action_const" : true,
5187 "action_data" : [],
5188 "action_entry_const" : true
5189 }
5190 },
5191 {
5192 "name" : "tbl_lookup_md_init43",
5193 "id" : 4,
5194 "source_info" : {
5195 "filename" : "include/control/lookup_md_init.p4",
5196 "line" : 43,
5197 "column" : 33,
5198 "source_fragment" : "= hdr.inner_icmp.icmp_type; ..."
5199 },
5200 "key" : [],
5201 "match_type" : "exact",
5202 "type" : "simple",
5203 "max_size" : 1024,
5204 "with_counters" : false,
5205 "support_timeout" : false,
5206 "direct_meters" : null,
5207 "action_ids" : [34],
5208 "actions" : ["lookup_md_init43"],
5209 "base_default_next" : "node_19",
5210 "next_tables" : {
5211 "lookup_md_init43" : "node_19"
5212 },
5213 "default_entry" : {
5214 "action_id" : 34,
5215 "action_const" : true,
5216 "action_data" : [],
5217 "action_entry_const" : true
5218 }
5219 },
5220 {
5221 "name" : "tbl_lookup_md_init47",
5222 "id" : 5,
5223 "source_info" : {
5224 "filename" : "include/control/lookup_md_init.p4",
5225 "line" : 47,
5226 "column" : 27,
5227 "source_fragment" : "= true; ..."
5228 },
5229 "key" : [],
5230 "match_type" : "exact",
5231 "type" : "simple",
5232 "max_size" : 1024,
5233 "with_counters" : false,
5234 "support_timeout" : false,
5235 "direct_meters" : null,
5236 "action_ids" : [39],
5237 "actions" : ["lookup_md_init47"],
5238 "base_default_next" : "node_13",
5239 "next_tables" : {
5240 "lookup_md_init47" : "node_13"
5241 },
5242 "default_entry" : {
5243 "action_id" : 39,
5244 "action_const" : true,
5245 "action_data" : [],
5246 "action_entry_const" : true
5247 }
5248 },
5249 {
5250 "name" : "tbl_lookup_md_init52",
5251 "id" : 6,
5252 "source_info" : {
5253 "filename" : "include/control/lookup_md_init.p4",
5254 "line" : 52,
5255 "column" : 32,
5256 "source_fragment" : "= hdr.tcp.sport; ..."
5257 },
5258 "key" : [],
5259 "match_type" : "exact",
5260 "type" : "simple",
5261 "max_size" : 1024,
5262 "with_counters" : false,
5263 "support_timeout" : false,
5264 "direct_meters" : null,
5265 "action_ids" : [36],
5266 "actions" : ["lookup_md_init52"],
5267 "base_default_next" : "node_19",
5268 "next_tables" : {
5269 "lookup_md_init52" : "node_19"
5270 },
5271 "default_entry" : {
5272 "action_id" : 36,
5273 "action_const" : true,
5274 "action_data" : [],
5275 "action_entry_const" : true
5276 }
5277 },
5278 {
5279 "name" : "tbl_lookup_md_init55",
5280 "id" : 7,
5281 "source_info" : {
5282 "filename" : "include/control/lookup_md_init.p4",
5283 "line" : 55,
5284 "column" : 32,
5285 "source_fragment" : "= hdr.udp.sport; ..."
5286 },
5287 "key" : [],
5288 "match_type" : "exact",
5289 "type" : "simple",
5290 "max_size" : 1024,
5291 "with_counters" : false,
5292 "support_timeout" : false,
5293 "direct_meters" : null,
5294 "action_ids" : [37],
5295 "actions" : ["lookup_md_init55"],
5296 "base_default_next" : "node_19",
5297 "next_tables" : {
5298 "lookup_md_init55" : "node_19"
5299 },
5300 "default_entry" : {
5301 "action_id" : 37,
5302 "action_const" : true,
5303 "action_data" : [],
5304 "action_entry_const" : true
5305 }
5306 },
5307 {
5308 "name" : "tbl_lookup_md_init58",
5309 "id" : 8,
5310 "source_info" : {
5311 "filename" : "include/control/lookup_md_init.p4",
5312 "line" : 58,
5313 "column" : 33,
5314 "source_fragment" : "= hdr.icmp.icmp_type; ..."
5315 },
5316 "key" : [],
5317 "match_type" : "exact",
5318 "type" : "simple",
5319 "max_size" : 1024,
5320 "with_counters" : false,
5321 "support_timeout" : false,
5322 "direct_meters" : null,
5323 "action_ids" : [38],
5324 "actions" : ["lookup_md_init58"],
5325 "base_default_next" : "node_19",
5326 "next_tables" : {
5327 "lookup_md_init58" : "node_19"
5328 },
5329 "default_entry" : {
5330 "action_id" : 38,
5331 "action_const" : true,
5332 "action_data" : [],
5333 "action_entry_const" : true
5334 }
5335 },
5336 {
5337 "name" : "tbl_packetio25",
5338 "id" : 9,
5339 "source_info" : {
Carmelo Cascone3032b872019-04-13 01:23:54 -07005340 "filename" : "include/control/packetio.p4",
5341 "line" : 25,
5342 "column" : 42,
5343 "source_fragment" : "= hdr.packet_out.egress_port; ..."
5344 },
Yi Tsengbe342052017-11-03 10:21:23 -07005345 "key" : [],
5346 "match_type" : "exact",
5347 "type" : "simple",
5348 "max_size" : 1024,
5349 "with_counters" : false,
5350 "support_timeout" : false,
5351 "direct_meters" : null,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005352 "action_ids" : [41],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005353 "actions" : ["packetio25"],
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005354 "base_default_next" : "FabricIngress.slice_tc_classifier.classifier",
Yi Tsengbe342052017-11-03 10:21:23 -07005355 "next_tables" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005356 "packetio25" : "FabricIngress.slice_tc_classifier.classifier"
Yi Tsengbe342052017-11-03 10:21:23 -07005357 },
5358 "default_entry" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005359 "action_id" : 41,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005360 "action_const" : true,
5361 "action_data" : [],
5362 "action_entry_const" : true
5363 }
5364 },
5365 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005366 "name" : "FabricIngress.slice_tc_classifier.classifier",
5367 "id" : 10,
5368 "source_info" : {
5369 "filename" : "include/control/slicing.p4",
5370 "line" : 49,
5371 "column" : 10,
5372 "source_fragment" : "classifier"
5373 },
5374 "key" : [
5375 {
5376 "match_type" : "ternary",
5377 "name" : "ig_port",
5378 "target" : ["standard_metadata", "ingress_port"],
5379 "mask" : null
5380 },
5381 {
5382 "match_type" : "ternary",
5383 "name" : "ipv4_src",
5384 "target" : ["scalars", "userMetadata._lkp_ipv4_src1"],
5385 "mask" : null
5386 },
5387 {
5388 "match_type" : "ternary",
5389 "name" : "ipv4_dst",
5390 "target" : ["scalars", "userMetadata._lkp_ipv4_dst2"],
5391 "mask" : null
5392 },
5393 {
5394 "match_type" : "ternary",
5395 "name" : "ip_proto",
5396 "target" : ["scalars", "userMetadata._lkp_ip_proto3"],
5397 "mask" : null
5398 },
5399 {
5400 "match_type" : "ternary",
5401 "name" : "l4_sport",
5402 "target" : ["scalars", "userMetadata._lkp_l4_sport4"],
5403 "mask" : null
5404 },
5405 {
5406 "match_type" : "ternary",
5407 "name" : "l4_dport",
5408 "target" : ["scalars", "userMetadata._lkp_l4_dport5"],
5409 "mask" : null
5410 }
5411 ],
5412 "match_type" : "ternary",
5413 "type" : "simple",
5414 "max_size" : 512,
5415 "with_counters" : true,
5416 "support_timeout" : false,
5417 "direct_meters" : null,
5418 "action_ids" : [28, 29],
5419 "actions" : ["FabricIngress.slice_tc_classifier.set_slice_id_tc", "FabricIngress.slice_tc_classifier.trust_dscp"],
5420 "base_default_next" : "node_22",
5421 "next_tables" : {
5422 "FabricIngress.slice_tc_classifier.set_slice_id_tc" : "node_22",
5423 "FabricIngress.slice_tc_classifier.trust_dscp" : "node_22"
5424 },
5425 "default_entry" : {
5426 "action_id" : 28,
5427 "action_const" : true,
5428 "action_data" : ["0x0", "0x0"],
5429 "action_entry_const" : true
5430 }
5431 },
5432 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005433 "name" : "tbl_filtering113",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005434 "id" : 11,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005435 "source_info" : {
5436 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005437 "line" : 113,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005438 "column" : 36,
5439 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07005440 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005441 "key" : [],
5442 "match_type" : "exact",
5443 "type" : "simple",
5444 "max_size" : 1024,
5445 "with_counters" : false,
5446 "support_timeout" : false,
5447 "direct_meters" : null,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005448 "action_ids" : [42],
Wailok Shumfb7e7872021-06-18 17:30:08 +08005449 "actions" : ["filtering113"],
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005450 "base_default_next" : "node_24",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005451 "next_tables" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005452 "filtering113" : "node_24"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005453 },
5454 "default_entry" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005455 "action_id" : 42,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005456 "action_const" : true,
5457 "action_data" : [],
5458 "action_entry_const" : true
5459 }
5460 },
5461 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005462 "name" : "tbl_filtering129",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005463 "id" : 12,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005464 "source_info" : {
5465 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005466 "line" : 129,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005467 "column" : 37,
5468 "source_fragment" : "="
5469 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005470 "key" : [],
5471 "match_type" : "exact",
5472 "type" : "simple",
5473 "max_size" : 1024,
5474 "with_counters" : false,
5475 "support_timeout" : false,
5476 "direct_meters" : null,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005477 "action_ids" : [43],
Wailok Shumfb7e7872021-06-18 17:30:08 +08005478 "actions" : ["filtering129"],
Daniele Moro5a2de712019-09-24 14:34:07 -07005479 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005480 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005481 "filtering129" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005482 },
5483 "default_entry" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005484 "action_id" : 43,
Yi Tsengbe342052017-11-03 10:21:23 -07005485 "action_const" : true,
5486 "action_data" : [],
5487 "action_entry_const" : true
5488 }
5489 },
5490 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07005491 "name" : "FabricIngress.filtering.ingress_port_vlan",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005492 "id" : 13,
Daniele Moro7c3a0022019-07-12 13:38:34 -07005493 "source_info" : {
5494 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005495 "line" : 55,
Yi Tsengbe342052017-11-03 10:21:23 -07005496 "column" : 10,
5497 "source_fragment" : "ingress_port_vlan"
5498 },
5499 "key" : [
5500 {
5501 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005502 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07005503 "target" : ["standard_metadata", "ingress_port"],
5504 "mask" : null
5505 },
5506 {
5507 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005508 "name" : "vlan_is_valid",
Yi Tsengbe342052017-11-03 10:21:23 -07005509 "target" : ["vlan_tag", "$valid$"],
5510 "mask" : null
5511 },
5512 {
5513 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005514 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07005515 "target" : ["vlan_tag", "vlan_id"],
5516 "mask" : null
5517 }
5518 ],
5519 "match_type" : "ternary",
5520 "type" : "simple",
5521 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08005522 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07005523 "support_timeout" : false,
5524 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005525 "action_ids" : [8, 9, 10],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005526 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
5527 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Yi Tsengbe342052017-11-03 10:21:23 -07005528 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005529 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
5530 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
5531 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
Yi Tsengbe342052017-11-03 10:21:23 -07005532 },
5533 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005534 "action_id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07005535 "action_const" : true,
5536 "action_data" : [],
5537 "action_entry_const" : true
5538 }
5539 },
5540 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005541 "name" : "FabricIngress.filtering.fwd_classifier",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005542 "id" : 14,
Yi Tsengbe342052017-11-03 10:21:23 -07005543 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005544 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005545 "line" : 94,
Yi Tsengbe342052017-11-03 10:21:23 -07005546 "column" : 10,
5547 "source_fragment" : "fwd_classifier"
5548 },
5549 "key" : [
5550 {
5551 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005552 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07005553 "target" : ["standard_metadata", "ingress_port"],
5554 "mask" : null
5555 },
5556 {
Charles Chan384aea22018-08-23 22:08:02 -07005557 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005558 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07005559 "target" : ["ethernet", "dst_addr"],
5560 "mask" : null
5561 },
5562 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005563 "match_type" : "ternary",
5564 "name" : "eth_type",
5565 "target" : ["eth_type", "value"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07005566 "mask" : null
5567 },
5568 {
5569 "match_type" : "exact",
Daniele Moro5a2de712019-09-24 14:34:07 -07005570 "name" : "ip_eth_type",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005571 "target" : ["scalars", "userMetadata._ip_eth_type8"],
Yi Tsengbe342052017-11-03 10:21:23 -07005572 "mask" : null
5573 }
5574 ],
Charles Chan384aea22018-08-23 22:08:02 -07005575 "match_type" : "ternary",
Yi Tsengbe342052017-11-03 10:21:23 -07005576 "type" : "simple",
5577 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08005578 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07005579 "support_timeout" : false,
5580 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005581 "action_ids" : [11],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005582 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005583 "base_default_next" : "node_28",
Yi Tsengbe342052017-11-03 10:21:23 -07005584 "next_tables" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005585 "FabricIngress.filtering.set_forwarding_type" : "node_28"
Yi Tsengbe342052017-11-03 10:21:23 -07005586 },
5587 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005588 "action_id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07005589 "action_const" : true,
5590 "action_data" : ["0x0"],
5591 "action_entry_const" : true
5592 }
5593 },
5594 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005595 "name" : "FabricIngress.forwarding.bridging",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005596 "id" : 15,
Yi Tsengbe342052017-11-03 10:21:23 -07005597 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005598 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005599 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07005600 "column" : 10,
5601 "source_fragment" : "bridging"
5602 },
5603 "key" : [
5604 {
5605 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005606 "name" : "vlan_id",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005607 "target" : ["scalars", "userMetadata._vlan_id9"],
Yi Tsengbe342052017-11-03 10:21:23 -07005608 "mask" : null
5609 },
5610 {
5611 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005612 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07005613 "target" : ["ethernet", "dst_addr"],
5614 "mask" : null
5615 }
5616 ],
5617 "match_type" : "ternary",
5618 "type" : "simple",
5619 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08005620 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07005621 "support_timeout" : false,
5622 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005623 "action_ids" : [12, 0],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005624 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005625 "base_default_next" : "node_35",
Yi Tseng1d842672017-11-28 16:06:52 -08005626 "next_tables" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005627 "FabricIngress.forwarding.set_next_id_bridging" : "node_35",
5628 "nop" : "node_35"
Yi Tseng1d842672017-11-28 16:06:52 -08005629 },
5630 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005631 "action_id" : 0,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005632 "action_const" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08005633 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005634 "action_entry_const" : true
Yi Tseng1d842672017-11-28 16:06:52 -08005635 }
5636 },
5637 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005638 "name" : "FabricIngress.forwarding.mpls",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005639 "id" : 16,
Yi Tseng1d842672017-11-28 16:06:52 -08005640 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005641 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005642 "line" : 71,
Yi Tseng1d842672017-11-28 16:06:52 -08005643 "column" : 10,
5644 "source_fragment" : "mpls"
5645 },
5646 "key" : [
5647 {
5648 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005649 "name" : "mpls_label",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005650 "target" : ["scalars", "userMetadata._mpls_label12"],
Yi Tseng1d842672017-11-28 16:06:52 -08005651 "mask" : null
5652 }
5653 ],
5654 "match_type" : "exact",
5655 "type" : "simple",
5656 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08005657 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08005658 "support_timeout" : false,
5659 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005660 "action_ids" : [13, 1],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005661 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005662 "base_default_next" : "node_35",
Yi Tseng1d842672017-11-28 16:06:52 -08005663 "next_tables" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005664 "FabricIngress.forwarding.pop_mpls_and_next" : "node_35",
5665 "nop" : "node_35"
Yi Tseng1d842672017-11-28 16:06:52 -08005666 },
5667 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005668 "action_id" : 1,
Yi Tseng1d842672017-11-28 16:06:52 -08005669 "action_const" : true,
5670 "action_data" : [],
5671 "action_entry_const" : true
5672 }
5673 },
5674 {
Charles Chan384aea22018-08-23 22:08:02 -07005675 "name" : "FabricIngress.forwarding.routing_v4",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005676 "id" : 17,
Yi Tseng1d842672017-11-28 16:06:52 -08005677 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005678 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005679 "line" : 108,
Yi Tseng1d842672017-11-28 16:06:52 -08005680 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07005681 "source_fragment" : "routing_v4"
Yi Tseng1d842672017-11-28 16:06:52 -08005682 },
5683 "key" : [
5684 {
5685 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005686 "name" : "ipv4_dst",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005687 "target" : ["scalars", "userMetadata._ipv4_dst_addr24"],
Yi Tseng1d842672017-11-28 16:06:52 -08005688 "mask" : null
5689 }
5690 ],
5691 "match_type" : "lpm",
5692 "type" : "simple",
5693 "max_size" : 1024,
Daniele Moro5a2de712019-09-24 14:34:07 -07005694 "with_counters" : false,
Yi Tseng1d842672017-11-28 16:06:52 -08005695 "support_timeout" : false,
5696 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005697 "action_ids" : [14, 15, 2],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005698 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005699 "base_default_next" : "node_35",
Yi Tsengbe342052017-11-03 10:21:23 -07005700 "next_tables" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005701 "FabricIngress.forwarding.set_next_id_routing_v4" : "node_35",
5702 "FabricIngress.forwarding.nop_routing_v4" : "node_35",
5703 "nop" : "node_35"
Yi Tsengbe342052017-11-03 10:21:23 -07005704 },
5705 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005706 "action_id" : 2,
CyberHasHe9ba39c2019-10-11 05:59:12 +08005707 "action_const" : false,
Yi Tsengbe342052017-11-03 10:21:23 -07005708 "action_data" : [],
CyberHasHe9ba39c2019-10-11 05:59:12 +08005709 "action_entry_const" : false
Yi Tsengbe342052017-11-03 10:21:23 -07005710 }
5711 },
5712 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005713 "name" : "FabricIngress.pre_next.next_mpls",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005714 "id" : 18,
Yi Tsengbe342052017-11-03 10:21:23 -07005715 "source_info" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005716 "filename" : "include/control/pre_next.p4",
5717 "line" : 36,
5718 "column" : 10,
5719 "source_fragment" : "next_mpls"
5720 },
5721 "key" : [
5722 {
5723 "match_type" : "exact",
5724 "name" : "next_id",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005725 "target" : ["scalars", "userMetadata._next_id17"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08005726 "mask" : null
5727 }
5728 ],
5729 "match_type" : "exact",
5730 "type" : "simple",
5731 "max_size" : 1024,
5732 "with_counters" : true,
5733 "support_timeout" : false,
5734 "direct_meters" : null,
5735 "action_ids" : [16, 3],
5736 "actions" : ["FabricIngress.pre_next.set_mpls_label", "nop"],
5737 "base_default_next" : "FabricIngress.pre_next.next_vlan",
5738 "next_tables" : {
5739 "FabricIngress.pre_next.set_mpls_label" : "FabricIngress.pre_next.next_vlan",
5740 "nop" : "FabricIngress.pre_next.next_vlan"
5741 },
5742 "default_entry" : {
5743 "action_id" : 3,
5744 "action_const" : true,
5745 "action_data" : [],
5746 "action_entry_const" : true
5747 }
5748 },
5749 {
5750 "name" : "FabricIngress.pre_next.next_vlan",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005751 "id" : 19,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005752 "source_info" : {
5753 "filename" : "include/control/pre_next.p4",
5754 "line" : 73,
5755 "column" : 10,
5756 "source_fragment" : "next_vlan"
5757 },
5758 "key" : [
5759 {
5760 "match_type" : "exact",
5761 "name" : "next_id",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005762 "target" : ["scalars", "userMetadata._next_id17"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08005763 "mask" : null
5764 }
5765 ],
5766 "match_type" : "exact",
5767 "type" : "simple",
5768 "max_size" : 1024,
5769 "with_counters" : true,
5770 "support_timeout" : false,
5771 "direct_meters" : null,
5772 "action_ids" : [17, 4],
5773 "actions" : ["FabricIngress.pre_next.set_vlan", "nop"],
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005774 "base_default_next" : "FabricIngress.acl.acl",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005775 "next_tables" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005776 "FabricIngress.pre_next.set_vlan" : "FabricIngress.acl.acl",
5777 "nop" : "FabricIngress.acl.acl"
Wailok Shumfb7e7872021-06-18 17:30:08 +08005778 },
5779 "default_entry" : {
5780 "action_id" : 4,
5781 "action_const" : true,
5782 "action_data" : [],
5783 "action_entry_const" : true
5784 }
5785 },
5786 {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005787 "name" : "FabricIngress.acl.acl",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005788 "id" : 20,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005789 "source_info" : {
5790 "filename" : "include/control/acl.p4",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005791 "line" : 59,
Yi Tsengbe342052017-11-03 10:21:23 -07005792 "column" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07005793 "source_fragment" : "acl"
5794 },
5795 "key" : [
5796 {
5797 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005798 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07005799 "target" : ["standard_metadata", "ingress_port"],
5800 "mask" : null
5801 },
5802 {
5803 "match_type" : "ternary",
Daniele Moro0cecfe12019-12-13 17:24:33 -08005804 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07005805 "target" : ["ethernet", "dst_addr"],
5806 "mask" : null
5807 },
5808 {
5809 "match_type" : "ternary",
Daniele Moro0cecfe12019-12-13 17:24:33 -08005810 "name" : "eth_src",
Yi Tsengbe342052017-11-03 10:21:23 -07005811 "target" : ["ethernet", "src_addr"],
5812 "mask" : null
5813 },
5814 {
5815 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005816 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07005817 "target" : ["vlan_tag", "vlan_id"],
5818 "mask" : null
5819 },
5820 {
5821 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005822 "name" : "eth_type",
Daniele Moro5a2de712019-09-24 14:34:07 -07005823 "target" : ["eth_type", "value"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08005824 "mask" : null
5825 },
5826 {
5827 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005828 "name" : "ipv4_src",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005829 "target" : ["scalars", "userMetadata._lkp_ipv4_src1"],
Yi Tsengbe342052017-11-03 10:21:23 -07005830 "mask" : null
5831 },
5832 {
5833 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005834 "name" : "ipv4_dst",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005835 "target" : ["scalars", "userMetadata._lkp_ipv4_dst2"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08005836 "mask" : null
5837 },
5838 {
5839 "match_type" : "ternary",
5840 "name" : "ip_proto",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005841 "target" : ["scalars", "userMetadata._lkp_ip_proto3"],
Yi Tsengbe342052017-11-03 10:21:23 -07005842 "mask" : null
5843 },
5844 {
5845 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005846 "name" : "icmp_type",
Yi Tsengbe342052017-11-03 10:21:23 -07005847 "target" : ["icmp", "icmp_type"],
5848 "mask" : null
5849 },
5850 {
5851 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005852 "name" : "icmp_code",
Yi Tsengbe342052017-11-03 10:21:23 -07005853 "target" : ["icmp", "icmp_code"],
5854 "mask" : null
Wailok Shum4f51bde2021-06-11 22:48:41 +08005855 },
5856 {
5857 "match_type" : "ternary",
5858 "name" : "l4_sport",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005859 "target" : ["scalars", "userMetadata._lkp_l4_sport4"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08005860 "mask" : null
5861 },
5862 {
5863 "match_type" : "ternary",
5864 "name" : "l4_dport",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005865 "target" : ["scalars", "userMetadata._lkp_l4_dport5"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08005866 "mask" : null
Wailok Shumfb7e7872021-06-18 17:30:08 +08005867 },
5868 {
5869 "match_type" : "ternary",
5870 "name" : "port_type",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005871 "target" : ["scalars", "userMetadata._port_type29"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08005872 "mask" : null
Yi Tsengbe342052017-11-03 10:21:23 -07005873 }
5874 ],
5875 "match_type" : "ternary",
5876 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005877 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08005878 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07005879 "support_timeout" : false,
5880 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005881 "action_ids" : [18, 19, 20, 21, 22],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005882 "actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.set_clone_session_id", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"],
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005883 "base_default_next" : "node_39",
Yi Tsengbe342052017-11-03 10:21:23 -07005884 "next_tables" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005885 "FabricIngress.acl.set_next_id_acl" : "node_39",
5886 "FabricIngress.acl.punt_to_cpu" : "node_39",
5887 "FabricIngress.acl.set_clone_session_id" : "node_39",
5888 "FabricIngress.acl.drop" : "node_39",
5889 "FabricIngress.acl.nop_acl" : "node_39"
Yi Tsengbe342052017-11-03 10:21:23 -07005890 },
5891 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005892 "action_id" : 22,
Yi Tsengbe342052017-11-03 10:21:23 -07005893 "action_const" : true,
5894 "action_data" : [],
5895 "action_entry_const" : true
5896 }
5897 },
5898 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005899 "name" : "FabricIngress.next.xconnect",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005900 "id" : 21,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005901 "source_info" : {
5902 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005903 "line" : 68,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005904 "column" : 10,
5905 "source_fragment" : "xconnect"
5906 },
5907 "key" : [
5908 {
5909 "match_type" : "exact",
5910 "name" : "ig_port",
5911 "target" : ["standard_metadata", "ingress_port"],
5912 "mask" : null
5913 },
5914 {
5915 "match_type" : "exact",
5916 "name" : "next_id",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005917 "target" : ["scalars", "userMetadata._next_id17"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005918 "mask" : null
5919 }
5920 ],
5921 "match_type" : "exact",
5922 "type" : "simple",
5923 "max_size" : 1024,
5924 "with_counters" : true,
5925 "support_timeout" : false,
5926 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005927 "action_ids" : [23, 24, 5],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005928 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
5929 "base_default_next" : "FabricIngress.next.hashed",
5930 "next_tables" : {
5931 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
5932 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
5933 "nop" : "FabricIngress.next.hashed"
5934 },
5935 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005936 "action_id" : 5,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005937 "action_const" : true,
5938 "action_data" : [],
5939 "action_entry_const" : true
5940 }
5941 },
5942 {
5943 "name" : "FabricIngress.next.hashed",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005944 "id" : 22,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005945 "source_info" : {
5946 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005947 "line" : 138,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005948 "column" : 10,
5949 "source_fragment" : "hashed"
5950 },
5951 "key" : [
5952 {
5953 "match_type" : "exact",
5954 "name" : "next_id",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005955 "target" : ["scalars", "userMetadata._next_id17"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005956 "mask" : null
5957 }
5958 ],
5959 "match_type" : "exact",
5960 "type" : "indirect_ws",
5961 "action_profile" : "FabricIngress.next.hashed_selector",
5962 "max_size" : 1024,
5963 "with_counters" : true,
5964 "support_timeout" : false,
5965 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005966 "action_ids" : [25, 26, 6],
5967 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "nop"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005968 "base_default_next" : "FabricIngress.next.multicast",
5969 "next_tables" : {
5970 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
5971 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005972 "nop" : "FabricIngress.next.multicast"
5973 }
5974 },
5975 {
5976 "name" : "FabricIngress.next.multicast",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005977 "id" : 23,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005978 "source_info" : {
5979 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005980 "line" : 171,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005981 "column" : 10,
5982 "source_fragment" : "multicast"
5983 },
5984 "key" : [
5985 {
5986 "match_type" : "exact",
5987 "name" : "next_id",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02005988 "target" : ["scalars", "userMetadata._next_id17"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005989 "mask" : null
5990 }
5991 ],
5992 "match_type" : "exact",
5993 "type" : "simple",
5994 "max_size" : 1024,
5995 "with_counters" : true,
5996 "support_timeout" : false,
5997 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005998 "action_ids" : [27, 7],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005999 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006000 "base_default_next" : "node_43",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006001 "next_tables" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006002 "FabricIngress.next.set_mcast_group_id" : "node_43",
6003 "nop" : "node_43"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006004 },
6005 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08006006 "action_id" : 7,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006007 "action_const" : true,
6008 "action_data" : [],
6009 "action_entry_const" : true
6010 }
6011 },
6012 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02006013 "name" : "tbl_port_counter31",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006014 "id" : 24,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006015 "source_info" : {
6016 "filename" : "include/control/port_counter.p4",
6017 "line" : 31,
6018 "column" : 12,
6019 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
6020 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006021 "key" : [],
6022 "match_type" : "exact",
6023 "type" : "simple",
6024 "max_size" : 1024,
6025 "with_counters" : false,
6026 "support_timeout" : false,
6027 "direct_meters" : null,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006028 "action_ids" : [44],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02006029 "actions" : ["port_counter31"],
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006030 "base_default_next" : "node_45",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006031 "next_tables" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006032 "port_counter31" : "node_45"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006033 },
6034 "default_entry" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006035 "action_id" : 44,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006036 "action_const" : true,
6037 "action_data" : [],
6038 "action_entry_const" : true
6039 }
6040 },
6041 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02006042 "name" : "tbl_port_counter34",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006043 "id" : 25,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006044 "source_info" : {
6045 "filename" : "include/control/port_counter.p4",
6046 "line" : 34,
6047 "column" : 12,
6048 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
6049 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006050 "key" : [],
6051 "match_type" : "exact",
6052 "type" : "simple",
6053 "max_size" : 1024,
6054 "with_counters" : false,
6055 "support_timeout" : false,
6056 "direct_meters" : null,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006057 "action_ids" : [45],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02006058 "actions" : ["port_counter34"],
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006059 "base_default_next" : "tbl_slicing114",
Esin Karaman971fb7f2017-12-28 13:44:52 +00006060 "next_tables" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006061 "port_counter34" : "tbl_slicing114"
Yi Tseng27b9bc02018-04-12 14:52:40 +08006062 },
6063 "default_entry" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006064 "action_id" : 45,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006065 "action_const" : true,
6066 "action_data" : [],
6067 "action_entry_const" : true
6068 }
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006069 },
6070 {
6071 "name" : "tbl_slicing114",
6072 "id" : 26,
6073 "source_info" : {
6074 "filename" : "include/control/slicing.p4",
6075 "line" : 114,
6076 "column" : 8,
6077 "source_fragment" : "slice_tc_meter.execute_meter((bit<32>) slice_tc, fabric_md.packet_color); ..."
6078 },
6079 "key" : [],
6080 "match_type" : "exact",
6081 "type" : "simple",
6082 "max_size" : 1024,
6083 "with_counters" : false,
6084 "support_timeout" : false,
6085 "direct_meters" : null,
6086 "action_ids" : [46],
6087 "actions" : ["slicing114"],
6088 "base_default_next" : "FabricIngress.qos.queues",
6089 "next_tables" : {
6090 "slicing114" : "FabricIngress.qos.queues"
6091 },
6092 "default_entry" : {
6093 "action_id" : 46,
6094 "action_const" : true,
6095 "action_data" : [],
6096 "action_entry_const" : true
6097 }
6098 },
6099 {
6100 "name" : "FabricIngress.qos.queues",
6101 "id" : 27,
6102 "source_info" : {
6103 "filename" : "include/control/slicing.p4",
6104 "line" : 93,
6105 "column" : 10,
6106 "source_fragment" : "queues"
6107 },
6108 "key" : [
6109 {
6110 "match_type" : "exact",
6111 "name" : "slice_id",
6112 "target" : ["scalars", "userMetadata._slice_id25"],
6113 "mask" : null
6114 },
6115 {
6116 "match_type" : "exact",
6117 "name" : "tc",
6118 "target" : ["scalars", "userMetadata._tc27"],
6119 "mask" : null
6120 },
6121 {
6122 "match_type" : "ternary",
6123 "name" : "color",
6124 "target" : ["scalars", "userMetadata._packet_color26"],
6125 "mask" : null
6126 }
6127 ],
6128 "match_type" : "ternary",
6129 "type" : "simple",
6130 "max_size" : 128,
6131 "with_counters" : true,
6132 "support_timeout" : false,
6133 "direct_meters" : null,
6134 "action_ids" : [30, 31],
6135 "actions" : ["FabricIngress.qos.set_queue", "FabricIngress.qos.meter_drop"],
6136 "base_default_next" : null,
6137 "next_tables" : {
6138 "FabricIngress.qos.set_queue" : null,
6139 "FabricIngress.qos.meter_drop" : null
6140 },
6141 "default_entry" : {
6142 "action_id" : 30,
6143 "action_const" : true,
6144 "action_data" : ["0x0"],
6145 "action_entry_const" : true
6146 }
Yi Tsengbe342052017-11-03 10:21:23 -07006147 }
6148 ],
6149 "action_profiles" : [
6150 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006151 "name" : "FabricIngress.next.hashed_selector",
Yi Tsengbe342052017-11-03 10:21:23 -07006152 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006153 "source_info" : {
6154 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08006155 "line" : 125,
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006156 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006157 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006158 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07006159 "max_size" : 1024,
Yi Tsengbe342052017-11-03 10:21:23 -07006160 "selector" : {
6161 "algo" : "crc16",
6162 "input" : [
6163 {
6164 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006165 "value" : ["scalars", "userMetadata._ipv4_src_addr23"]
Yi Tsengbe342052017-11-03 10:21:23 -07006166 },
6167 {
6168 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006169 "value" : ["scalars", "userMetadata._ipv4_dst_addr24"]
Yi Tsengbe342052017-11-03 10:21:23 -07006170 },
6171 {
6172 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006173 "value" : ["scalars", "userMetadata._ip_proto20"]
Yi Tsengbe342052017-11-03 10:21:23 -07006174 },
6175 {
6176 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006177 "value" : ["scalars", "userMetadata._l4_sport21"]
Yi Tsengbe342052017-11-03 10:21:23 -07006178 },
6179 {
6180 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006181 "value" : ["scalars", "userMetadata._l4_dport22"]
Yi Tsengbe342052017-11-03 10:21:23 -07006182 }
6183 ]
6184 }
6185 }
6186 ],
6187 "conditionals" : [
6188 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006189 "name" : "node_3",
Yi Tsengbe342052017-11-03 10:21:23 -07006190 "id" : 0,
6191 "source_info" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006192 "filename" : "include/control/lookup_md_init.p4",
6193 "line" : 31,
6194 "column" : 12,
6195 "source_fragment" : "hdr.inner_ipv4.isValid()"
6196 },
6197 "expression" : {
6198 "type" : "expression",
6199 "value" : {
6200 "op" : "d2b",
6201 "left" : null,
6202 "right" : {
6203 "type" : "field",
6204 "value" : ["inner_ipv4", "$valid$"]
6205 }
6206 }
6207 },
6208 "true_next" : "tbl_lookup_md_init32",
6209 "false_next" : "node_11"
6210 },
6211 {
6212 "name" : "node_5",
6213 "id" : 1,
6214 "source_info" : {
6215 "filename" : "include/control/lookup_md_init.p4",
6216 "line" : 36,
6217 "column" : 16,
6218 "source_fragment" : "hdr.inner_tcp.isValid()"
6219 },
6220 "expression" : {
6221 "type" : "expression",
6222 "value" : {
6223 "op" : "d2b",
6224 "left" : null,
6225 "right" : {
6226 "type" : "field",
6227 "value" : ["inner_tcp", "$valid$"]
6228 }
6229 }
6230 },
6231 "true_next" : "tbl_lookup_md_init37",
6232 "false_next" : "node_7"
6233 },
6234 {
6235 "name" : "node_7",
6236 "id" : 2,
6237 "source_info" : {
6238 "filename" : "include/control/lookup_md_init.p4",
6239 "line" : 39,
6240 "column" : 23,
6241 "source_fragment" : "hdr.inner_udp.isValid()"
6242 },
6243 "expression" : {
6244 "type" : "expression",
6245 "value" : {
6246 "op" : "d2b",
6247 "left" : null,
6248 "right" : {
6249 "type" : "field",
6250 "value" : ["inner_udp", "$valid$"]
6251 }
6252 }
6253 },
6254 "true_next" : "tbl_lookup_md_init40",
6255 "false_next" : "node_9"
6256 },
6257 {
6258 "name" : "node_9",
6259 "id" : 3,
6260 "source_info" : {
6261 "filename" : "include/control/lookup_md_init.p4",
6262 "line" : 42,
6263 "column" : 23,
6264 "source_fragment" : "hdr.inner_icmp.isValid()"
6265 },
6266 "expression" : {
6267 "type" : "expression",
6268 "value" : {
6269 "op" : "d2b",
6270 "left" : null,
6271 "right" : {
6272 "type" : "field",
6273 "value" : ["inner_icmp", "$valid$"]
6274 }
6275 }
6276 },
6277 "true_next" : "tbl_lookup_md_init43",
6278 "false_next" : "node_19"
6279 },
6280 {
6281 "name" : "node_11",
6282 "id" : 4,
6283 "source_info" : {
6284 "filename" : "include/control/lookup_md_init.p4",
6285 "line" : 46,
6286 "column" : 19,
6287 "source_fragment" : "hdr.ipv4.isValid()"
6288 },
6289 "expression" : {
6290 "type" : "expression",
6291 "value" : {
6292 "op" : "d2b",
6293 "left" : null,
6294 "right" : {
6295 "type" : "field",
6296 "value" : ["ipv4", "$valid$"]
6297 }
6298 }
6299 },
6300 "true_next" : "tbl_lookup_md_init47",
6301 "false_next" : "node_19"
6302 },
6303 {
6304 "name" : "node_13",
6305 "id" : 5,
6306 "source_info" : {
6307 "filename" : "include/control/lookup_md_init.p4",
6308 "line" : 51,
6309 "column" : 16,
6310 "source_fragment" : "hdr.tcp.isValid()"
6311 },
6312 "expression" : {
6313 "type" : "expression",
6314 "value" : {
6315 "op" : "d2b",
6316 "left" : null,
6317 "right" : {
6318 "type" : "field",
6319 "value" : ["tcp", "$valid$"]
6320 }
6321 }
6322 },
6323 "true_next" : "tbl_lookup_md_init52",
6324 "false_next" : "node_15"
6325 },
6326 {
6327 "name" : "node_15",
6328 "id" : 6,
6329 "source_info" : {
6330 "filename" : "include/control/lookup_md_init.p4",
6331 "line" : 54,
6332 "column" : 23,
6333 "source_fragment" : "hdr.udp.isValid()"
6334 },
6335 "expression" : {
6336 "type" : "expression",
6337 "value" : {
6338 "op" : "d2b",
6339 "left" : null,
6340 "right" : {
6341 "type" : "field",
6342 "value" : ["udp", "$valid$"]
6343 }
6344 }
6345 },
6346 "true_next" : "tbl_lookup_md_init55",
6347 "false_next" : "node_17"
6348 },
6349 {
6350 "name" : "node_17",
6351 "id" : 7,
6352 "source_info" : {
6353 "filename" : "include/control/lookup_md_init.p4",
6354 "line" : 57,
6355 "column" : 23,
6356 "source_fragment" : "hdr.icmp.isValid()"
6357 },
6358 "expression" : {
6359 "type" : "expression",
6360 "value" : {
6361 "op" : "d2b",
6362 "left" : null,
6363 "right" : {
6364 "type" : "field",
6365 "value" : ["icmp", "$valid$"]
6366 }
6367 }
6368 },
6369 "true_next" : "tbl_lookup_md_init58",
6370 "false_next" : "node_19"
6371 },
6372 {
6373 "name" : "node_19",
6374 "id" : 8,
6375 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006376 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006377 "line" : 24,
Yi Tsengbe342052017-11-03 10:21:23 -07006378 "column" : 12,
6379 "source_fragment" : "hdr.packet_out.isValid()"
6380 },
6381 "expression" : {
6382 "type" : "expression",
6383 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08006384 "op" : "d2b",
6385 "left" : null,
6386 "right" : {
Yi Tsengbe342052017-11-03 10:21:23 -07006387 "type" : "field",
6388 "value" : ["packet_out", "$valid$"]
Yi Tsengbe342052017-11-03 10:21:23 -07006389 }
6390 }
6391 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02006392 "true_next" : "tbl_packetio25",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006393 "false_next" : "FabricIngress.slice_tc_classifier.classifier"
Yi Tsengbe342052017-11-03 10:21:23 -07006394 },
6395 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006396 "name" : "node_22",
6397 "id" : 9,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006398 "source_info" : {
6399 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08006400 "line" : 112,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006401 "column" : 12,
6402 "source_fragment" : "hdr.vlan_tag.isValid()"
6403 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006404 "expression" : {
6405 "type" : "expression",
6406 "value" : {
6407 "op" : "d2b",
6408 "left" : null,
6409 "right" : {
6410 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006411 "value" : ["vlan_tag", "$valid$"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006412 }
6413 }
6414 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08006415 "true_next" : "tbl_filtering113",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006416 "false_next" : "node_24"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006417 },
6418 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006419 "name" : "node_24",
6420 "id" : 10,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006421 "source_info" : {
6422 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08006423 "line" : 124,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006424 "column" : 12,
6425 "source_fragment" : "!hdr.mpls.isValid()"
6426 },
6427 "expression" : {
6428 "type" : "expression",
6429 "value" : {
6430 "op" : "not",
6431 "left" : null,
6432 "right" : {
6433 "type" : "expression",
6434 "value" : {
6435 "op" : "d2b",
6436 "left" : null,
6437 "right" : {
6438 "type" : "field",
6439 "value" : ["mpls", "$valid$"]
6440 }
6441 }
6442 }
6443 }
6444 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08006445 "true_next" : "tbl_filtering129",
Daniele Moro5a2de712019-09-24 14:34:07 -07006446 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07006447 },
6448 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006449 "name" : "node_28",
6450 "id" : 11,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006451 "source_info" : {
6452 "filename" : "fabric.p4",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006453 "line" : 80,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006454 "column" : 12,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02006455 "source_fragment" : "fabric_metadata.skip_forwarding"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006456 },
6457 "expression" : {
6458 "type" : "expression",
6459 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02006460 "op" : "not",
6461 "left" : null,
6462 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006463 "type" : "expression",
6464 "value" : {
6465 "op" : "d2b",
6466 "left" : null,
6467 "right" : {
6468 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006469 "value" : ["scalars", "userMetadata._skip_forwarding14"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006470 }
6471 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006472 }
6473 }
6474 },
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006475 "true_next" : "node_29",
6476 "false_next" : "node_35"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006477 },
6478 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006479 "name" : "node_29",
6480 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07006481 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006482 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006483 "line" : 150,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006484 "column" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07006485 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
6486 },
6487 "expression" : {
6488 "type" : "expression",
6489 "value" : {
6490 "op" : "==",
6491 "left" : {
6492 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006493 "value" : ["scalars", "userMetadata._fwd_type16"]
Yi Tsengbe342052017-11-03 10:21:23 -07006494 },
6495 "right" : {
6496 "type" : "hexstr",
6497 "value" : "0x00"
6498 }
6499 }
6500 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006501 "true_next" : "FabricIngress.forwarding.bridging",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006502 "false_next" : "node_31"
Yi Tsengbe342052017-11-03 10:21:23 -07006503 },
6504 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006505 "name" : "node_31",
6506 "id" : 13,
Yi Tsengbe342052017-11-03 10:21:23 -07006507 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006508 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006509 "line" : 151,
Yi Tsengbe342052017-11-03 10:21:23 -07006510 "column" : 17,
6511 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
6512 },
6513 "expression" : {
6514 "type" : "expression",
6515 "value" : {
6516 "op" : "==",
6517 "left" : {
6518 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006519 "value" : ["scalars", "userMetadata._fwd_type16"]
Yi Tsengbe342052017-11-03 10:21:23 -07006520 },
6521 "right" : {
6522 "type" : "hexstr",
6523 "value" : "0x01"
6524 }
6525 }
6526 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006527 "true_next" : "FabricIngress.forwarding.mpls",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006528 "false_next" : "node_33"
Yi Tsengbe342052017-11-03 10:21:23 -07006529 },
6530 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006531 "name" : "node_33",
6532 "id" : 14,
Yi Tsengbe342052017-11-03 10:21:23 -07006533 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006534 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07006535 "line" : 152,
Yi Tsengbe342052017-11-03 10:21:23 -07006536 "column" : 17,
6537 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
6538 },
6539 "expression" : {
6540 "type" : "expression",
6541 "value" : {
6542 "op" : "==",
6543 "left" : {
6544 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006545 "value" : ["scalars", "userMetadata._fwd_type16"]
Yi Tsengbe342052017-11-03 10:21:23 -07006546 },
6547 "right" : {
6548 "type" : "hexstr",
6549 "value" : "0x02"
6550 }
6551 }
6552 },
Charles Chan384aea22018-08-23 22:08:02 -07006553 "true_next" : "FabricIngress.forwarding.routing_v4",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006554 "false_next" : "node_35"
Wailok Shumfb7e7872021-06-18 17:30:08 +08006555 },
6556 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006557 "name" : "node_35",
6558 "id" : 15,
Wailok Shumfb7e7872021-06-18 17:30:08 +08006559 "source_info" : {
6560 "filename" : "fabric.p4",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006561 "line" : 83,
Wailok Shumfb7e7872021-06-18 17:30:08 +08006562 "column" : 12,
6563 "source_fragment" : "fabric_metadata.skip_next"
6564 },
6565 "expression" : {
6566 "type" : "expression",
6567 "value" : {
6568 "op" : "not",
6569 "left" : null,
6570 "right" : {
6571 "type" : "expression",
6572 "value" : {
6573 "op" : "d2b",
6574 "left" : null,
6575 "right" : {
6576 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006577 "value" : ["scalars", "userMetadata._skip_next15"]
Wailok Shumfb7e7872021-06-18 17:30:08 +08006578 }
6579 }
6580 }
6581 }
6582 },
6583 "true_next" : "FabricIngress.pre_next.next_mpls",
Wailok Shum4f51bde2021-06-11 22:48:41 +08006584 "false_next" : "FabricIngress.acl.acl"
6585 },
6586 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006587 "name" : "node_39",
6588 "id" : 16,
Wailok Shum4f51bde2021-06-11 22:48:41 +08006589 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006590 "filename" : "fabric.p4",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006591 "line" : 87,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006592 "column" : 12,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02006593 "source_fragment" : "fabric_metadata.skip_next"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006594 },
6595 "expression" : {
6596 "type" : "expression",
6597 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02006598 "op" : "not",
6599 "left" : null,
6600 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006601 "type" : "expression",
6602 "value" : {
6603 "op" : "d2b",
6604 "left" : null,
6605 "right" : {
6606 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006607 "value" : ["scalars", "userMetadata._skip_next15"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006608 }
6609 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006610 }
6611 }
6612 },
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006613 "true_next" : "FabricIngress.next.xconnect",
6614 "false_next" : "tbl_slicing114"
Yi Tseng27b9bc02018-04-12 14:52:40 +08006615 },
6616 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006617 "name" : "node_43",
6618 "id" : 17,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006619 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006620 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006621 "line" : 30,
Yi Tsengbe342052017-11-03 10:21:23 -07006622 "column" : 12,
6623 "source_fragment" : "standard_metadata.egress_spec < 511"
6624 },
6625 "expression" : {
6626 "type" : "expression",
6627 "value" : {
6628 "op" : "<",
6629 "left" : {
6630 "type" : "field",
6631 "value" : ["standard_metadata", "egress_spec"]
6632 },
6633 "right" : {
6634 "type" : "hexstr",
6635 "value" : "0x01ff"
6636 }
6637 }
6638 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02006639 "true_next" : "tbl_port_counter31",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006640 "false_next" : "node_45"
Yi Tsengbe342052017-11-03 10:21:23 -07006641 },
6642 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006643 "name" : "node_45",
6644 "id" : 18,
Yi Tsengbe342052017-11-03 10:21:23 -07006645 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006646 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006647 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07006648 "column" : 12,
6649 "source_fragment" : "standard_metadata.ingress_port < 511"
6650 },
6651 "expression" : {
6652 "type" : "expression",
6653 "value" : {
6654 "op" : "<",
6655 "left" : {
6656 "type" : "field",
6657 "value" : ["standard_metadata", "ingress_port"]
6658 },
6659 "right" : {
6660 "type" : "hexstr",
6661 "value" : "0x01ff"
6662 }
6663 }
6664 },
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006665 "true_next" : "tbl_port_counter34",
6666 "false_next" : "tbl_slicing114"
Yi Tseng3a5731e2018-01-22 11:38:58 -08006667 }
6668 ]
6669 },
6670 {
6671 "name" : "egress",
6672 "id" : 1,
6673 "source_info" : {
6674 "filename" : "fabric.p4",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006675 "line" : 105,
Yi Tseng3a5731e2018-01-22 11:38:58 -08006676 "column" : 8,
6677 "source_fragment" : "FabricEgress"
6678 },
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006679 "init_table" : "node_51",
Yi Tseng3a5731e2018-01-22 11:38:58 -08006680 "tables" : [
6681 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02006682 "name" : "tbl_packetio41",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006683 "id" : 28,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006684 "source_info" : {
6685 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006686 "line" : 41,
6687 "column" : 12,
6688 "source_fragment" : "exit"
Carmelo Cascone3032b872019-04-13 01:23:54 -07006689 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006690 "key" : [],
6691 "match_type" : "exact",
6692 "type" : "simple",
6693 "max_size" : 1024,
6694 "with_counters" : false,
6695 "support_timeout" : false,
6696 "direct_meters" : null,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006697 "action_ids" : [55],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02006698 "actions" : ["packetio41"],
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006699 "base_default_next" : "node_53",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006700 "next_tables" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006701 "packetio41" : "node_53"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006702 },
6703 "default_entry" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006704 "action_id" : 55,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006705 "action_const" : true,
6706 "action_data" : [],
6707 "action_entry_const" : true
6708 }
6709 },
6710 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02006711 "name" : "tbl_packetio44",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006712 "id" : 29,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006713 "source_info" : {
6714 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006715 "line" : 44,
6716 "column" : 12,
6717 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07006718 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006719 "key" : [],
6720 "match_type" : "exact",
6721 "type" : "simple",
6722 "max_size" : 1024,
6723 "with_counters" : false,
6724 "support_timeout" : false,
6725 "direct_meters" : null,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006726 "action_ids" : [56],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02006727 "actions" : ["packetio44"],
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006728 "base_default_next" : "node_55",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006729 "next_tables" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006730 "packetio44" : "node_55"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006731 },
6732 "default_entry" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006733 "action_id" : 56,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006734 "action_const" : true,
6735 "action_data" : [],
6736 "action_entry_const" : true
6737 }
6738 },
6739 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08006740 "name" : "tbl_next283",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006741 "id" : 30,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006742 "source_info" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006743 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08006744 "line" : 283,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006745 "column" : 12,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006746 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07006747 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006748 "key" : [],
6749 "match_type" : "exact",
6750 "type" : "simple",
6751 "max_size" : 1024,
6752 "with_counters" : false,
6753 "support_timeout" : false,
6754 "direct_meters" : null,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006755 "action_ids" : [57],
Wailok Shumfb7e7872021-06-18 17:30:08 +08006756 "actions" : ["next283"],
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006757 "base_default_next" : "node_57",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006758 "next_tables" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006759 "next283" : "node_57"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006760 },
6761 "default_entry" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006762 "action_id" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006763 "action_const" : true,
6764 "action_data" : [],
6765 "action_entry_const" : true
6766 }
6767 },
6768 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006769 "name" : "tbl_egress_next_pop_mpls_if_present",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006770 "id" : 31,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006771 "source_info" : {
6772 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08006773 "line" : 287,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006774 "column" : 36,
6775 "source_fragment" : "pop_mpls_if_present()"
6776 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006777 "key" : [],
6778 "match_type" : "exact",
6779 "type" : "simple",
6780 "max_size" : 1024,
6781 "with_counters" : false,
6782 "support_timeout" : false,
6783 "direct_meters" : null,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006784 "action_ids" : [48],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006785 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
6786 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6787 "next_tables" : {
6788 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
6789 },
6790 "default_entry" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006791 "action_id" : 48,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006792 "action_const" : true,
6793 "action_data" : [],
6794 "action_entry_const" : true
6795 }
6796 },
6797 {
6798 "name" : "tbl_egress_next_set_mpls",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006799 "id" : 32,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006800 "source_info" : {
6801 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08006802 "line" : 289,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006803 "column" : 12,
6804 "source_fragment" : "set_mpls()"
6805 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006806 "key" : [],
6807 "match_type" : "exact",
6808 "type" : "simple",
6809 "max_size" : 1024,
6810 "with_counters" : false,
6811 "support_timeout" : false,
6812 "direct_meters" : null,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006813 "action_ids" : [49],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006814 "actions" : ["FabricEgress.egress_next.set_mpls"],
6815 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6816 "next_tables" : {
6817 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
6818 },
6819 "default_entry" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006820 "action_id" : 49,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006821 "action_const" : true,
6822 "action_data" : [],
6823 "action_entry_const" : true
6824 }
6825 },
6826 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006827 "name" : "FabricEgress.egress_next.egress_vlan",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006828 "id" : 33,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006829 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006830 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08006831 "line" : 265,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006832 "column" : 10,
6833 "source_fragment" : "egress_vlan"
6834 },
6835 "key" : [
6836 {
6837 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006838 "name" : "vlan_id",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006839 "target" : ["scalars", "userMetadata._vlan_id9"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006840 "mask" : null
6841 },
6842 {
6843 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006844 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006845 "target" : ["standard_metadata", "egress_port"],
6846 "mask" : null
6847 }
6848 ],
6849 "match_type" : "exact",
6850 "type" : "simple",
6851 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08006852 "with_counters" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006853 "support_timeout" : false,
6854 "direct_meters" : null,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006855 "action_ids" : [50, 51, 52],
pierventre48e78822020-12-15 17:34:54 +01006856 "actions" : ["FabricEgress.egress_next.push_vlan", "FabricEgress.egress_next.pop_vlan", "FabricEgress.egress_next.drop"],
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006857 "base_default_next" : "node_62",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006858 "next_tables" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006859 "FabricEgress.egress_next.push_vlan" : "node_62",
6860 "FabricEgress.egress_next.pop_vlan" : "node_62",
6861 "FabricEgress.egress_next.drop" : "node_62"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006862 },
6863 "default_entry" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006864 "action_id" : 52,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006865 "action_const" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006866 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006867 "action_entry_const" : true
6868 }
6869 },
6870 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08006871 "name" : "tbl_next309",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006872 "id" : 34,
pierventre48e78822020-12-15 17:34:54 +01006873 "source_info" : {
6874 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08006875 "line" : 309,
pierventre48e78822020-12-15 17:34:54 +01006876 "column" : 25,
6877 "source_fragment" : "="
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006878 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006879 "key" : [],
6880 "match_type" : "exact",
6881 "type" : "simple",
6882 "max_size" : 1024,
6883 "with_counters" : false,
6884 "support_timeout" : false,
6885 "direct_meters" : null,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006886 "action_ids" : [59],
Wailok Shumfb7e7872021-06-18 17:30:08 +08006887 "actions" : ["next309"],
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006888 "base_default_next" : "node_64",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006889 "next_tables" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006890 "next309" : "node_64"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006891 },
6892 "default_entry" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006893 "action_id" : 59,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006894 "action_const" : true,
6895 "action_data" : [],
6896 "action_entry_const" : true
6897 }
6898 },
6899 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08006900 "name" : "tbl_next310",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006901 "id" : 35,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006902 "source_info" : {
6903 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08006904 "line" : 310,
pierventre48e78822020-12-15 17:34:54 +01006905 "column" : 35,
6906 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07006907 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006908 "key" : [],
6909 "match_type" : "exact",
6910 "type" : "simple",
6911 "max_size" : 1024,
6912 "with_counters" : false,
6913 "support_timeout" : false,
6914 "direct_meters" : null,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006915 "action_ids" : [58],
Wailok Shumfb7e7872021-06-18 17:30:08 +08006916 "actions" : ["next310"],
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006917 "base_default_next" : "tbl_slicing126",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006918 "next_tables" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006919 "next310" : "tbl_slicing126"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006920 },
6921 "default_entry" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006922 "action_id" : 58,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006923 "action_const" : true,
6924 "action_data" : [],
6925 "action_entry_const" : true
6926 }
6927 },
6928 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08006929 "name" : "tbl_next313",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006930 "id" : 36,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006931 "source_info" : {
6932 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08006933 "line" : 313,
pierventre48e78822020-12-15 17:34:54 +01006934 "column" : 29,
Carmelo Cascone3032b872019-04-13 01:23:54 -07006935 "source_fragment" : "="
6936 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006937 "key" : [],
6938 "match_type" : "exact",
6939 "type" : "simple",
6940 "max_size" : 1024,
6941 "with_counters" : false,
6942 "support_timeout" : false,
6943 "direct_meters" : null,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006944 "action_ids" : [61],
Wailok Shumfb7e7872021-06-18 17:30:08 +08006945 "actions" : ["next313"],
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006946 "base_default_next" : "node_68",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006947 "next_tables" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006948 "next313" : "node_68"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006949 },
6950 "default_entry" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006951 "action_id" : 61,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006952 "action_const" : true,
6953 "action_data" : [],
6954 "action_entry_const" : true
6955 }
6956 },
6957 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08006958 "name" : "tbl_next314",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006959 "id" : 37,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006960 "source_info" : {
6961 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08006962 "line" : 314,
pierventre48e78822020-12-15 17:34:54 +01006963 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006964 "source_fragment" : "mark_to_drop(standard_metadata)"
6965 },
6966 "key" : [],
6967 "match_type" : "exact",
6968 "type" : "simple",
6969 "max_size" : 1024,
6970 "with_counters" : false,
6971 "support_timeout" : false,
6972 "direct_meters" : null,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006973 "action_ids" : [60],
Wailok Shumfb7e7872021-06-18 17:30:08 +08006974 "actions" : ["next314"],
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006975 "base_default_next" : "tbl_slicing126",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006976 "next_tables" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006977 "next314" : "tbl_slicing126"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006978 },
6979 "default_entry" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02006980 "action_id" : 60,
6981 "action_const" : true,
6982 "action_data" : [],
6983 "action_entry_const" : true
6984 }
6985 },
6986 {
6987 "name" : "tbl_slicing126",
6988 "id" : 38,
6989 "source_info" : {
6990 "filename" : "include/control/slicing.p4",
6991 "line" : 126,
6992 "column" : 4,
6993 "source_fragment" : "bit<6> tmp_dscp = fabric_md.dscp;"
6994 },
6995 "key" : [],
6996 "match_type" : "exact",
6997 "type" : "simple",
6998 "max_size" : 1024,
6999 "with_counters" : false,
7000 "support_timeout" : false,
7001 "direct_meters" : null,
7002 "action_ids" : [63],
7003 "actions" : ["slicing126"],
7004 "base_default_next" : "FabricEgress.dscp_rewriter.rewriter",
7005 "next_tables" : {
7006 "slicing126" : "FabricEgress.dscp_rewriter.rewriter"
7007 },
7008 "default_entry" : {
7009 "action_id" : 63,
7010 "action_const" : true,
7011 "action_data" : [],
7012 "action_entry_const" : true
7013 }
7014 },
7015 {
7016 "name" : "FabricEgress.dscp_rewriter.rewriter",
7017 "id" : 39,
7018 "source_info" : {
7019 "filename" : "include/control/slicing.p4",
7020 "line" : 138,
7021 "column" : 10,
7022 "source_fragment" : "rewriter"
7023 },
7024 "key" : [
7025 {
7026 "match_type" : "exact",
7027 "name" : "eg_port",
7028 "target" : ["standard_metadata", "egress_port"],
7029 "mask" : null
7030 }
7031 ],
7032 "match_type" : "exact",
7033 "type" : "simple",
7034 "max_size" : 512,
7035 "with_counters" : false,
7036 "support_timeout" : false,
7037 "direct_meters" : null,
7038 "action_ids" : [53, 54, 47],
7039 "actions" : ["FabricEgress.dscp_rewriter.rewrite", "FabricEgress.dscp_rewriter.clear", "nop"],
7040 "base_default_next" : null,
7041 "next_tables" : {
7042 "__MISS__" : null,
7043 "__HIT__" : "node_72"
7044 },
7045 "default_entry" : {
7046 "action_id" : 47,
7047 "action_const" : true,
7048 "action_data" : [],
7049 "action_entry_const" : true
7050 }
7051 },
7052 {
7053 "name" : "tbl_slicing159",
7054 "id" : 40,
7055 "source_info" : {
7056 "filename" : "include/control/slicing.p4",
7057 "line" : 159,
7058 "column" : 36,
7059 "source_fragment" : "="
7060 },
7061 "key" : [],
7062 "match_type" : "exact",
7063 "type" : "simple",
7064 "max_size" : 1024,
7065 "with_counters" : false,
7066 "support_timeout" : false,
7067 "direct_meters" : null,
7068 "action_ids" : [62],
7069 "actions" : ["slicing159"],
7070 "base_default_next" : null,
7071 "next_tables" : {
7072 "slicing159" : null
7073 },
7074 "default_entry" : {
7075 "action_id" : 62,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007076 "action_const" : true,
7077 "action_data" : [],
7078 "action_entry_const" : true
7079 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08007080 }
7081 ],
7082 "action_profiles" : [],
7083 "conditionals" : [
Yi Tseng1d842672017-11-28 16:06:52 -08007084 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007085 "name" : "node_51",
7086 "id" : 19,
Carmelo Casconea5400af2018-07-17 22:11:54 +02007087 "source_info" : {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007088 "filename" : "fabric.p4",
7089 "line" : 118,
7090 "column" : 33,
7091 "source_fragment" : "fabric_metadata"
Carmelo Casconea5400af2018-07-17 22:11:54 +02007092 },
7093 "expression" : {
7094 "type" : "expression",
7095 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02007096 "op" : "d2b",
7097 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02007098 "right" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02007099 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007100 "value" : ["scalars", "userMetadata._is_controller_packet_out19"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02007101 }
7102 }
7103 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02007104 "true_next" : "tbl_packetio41",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007105 "false_next" : "node_53"
Carmelo Casconea5400af2018-07-17 22:11:54 +02007106 },
7107 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007108 "name" : "node_53",
7109 "id" : 20,
Yi Tsengbe342052017-11-03 10:21:23 -07007110 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007111 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007112 "line" : 43,
Yi Tsengbe342052017-11-03 10:21:23 -07007113 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08007114 "source_fragment" : "standard_metadata.egress_port == 255"
Yi Tsengbe342052017-11-03 10:21:23 -07007115 },
7116 "expression" : {
7117 "type" : "expression",
7118 "value" : {
7119 "op" : "==",
7120 "left" : {
7121 "type" : "field",
7122 "value" : ["standard_metadata", "egress_port"]
7123 },
7124 "right" : {
7125 "type" : "hexstr",
7126 "value" : "0x00ff"
7127 }
7128 }
7129 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02007130 "true_next" : "tbl_packetio44",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007131 "false_next" : "node_55"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007132 },
7133 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007134 "name" : "node_55",
7135 "id" : 21,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007136 "source_info" : {
7137 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08007138 "line" : 281,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007139 "column" : 12,
7140 "source_fragment" : "fabric_metadata.is_multicast == true ..."
7141 },
7142 "expression" : {
7143 "type" : "expression",
7144 "value" : {
7145 "op" : "and",
7146 "left" : {
7147 "type" : "expression",
7148 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02007149 "op" : "d2b",
7150 "left" : null,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007151 "right" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02007152 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007153 "value" : ["scalars", "userMetadata._is_multicast18"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007154 }
7155 }
7156 },
7157 "right" : {
7158 "type" : "expression",
7159 "value" : {
7160 "op" : "==",
7161 "left" : {
7162 "type" : "field",
7163 "value" : ["standard_metadata", "ingress_port"]
7164 },
7165 "right" : {
7166 "type" : "field",
7167 "value" : ["standard_metadata", "egress_port"]
7168 }
7169 }
7170 }
7171 }
7172 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08007173 "true_next" : "tbl_next283",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007174 "false_next" : "node_57"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007175 },
7176 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007177 "name" : "node_57",
7178 "id" : 22,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007179 "source_info" : {
7180 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08007181 "line" : 286,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007182 "column" : 12,
7183 "source_fragment" : "fabric_metadata.mpls_label == 0"
7184 },
7185 "expression" : {
7186 "type" : "expression",
7187 "value" : {
7188 "op" : "==",
7189 "left" : {
7190 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007191 "value" : ["scalars", "userMetadata._mpls_label12"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007192 },
7193 "right" : {
7194 "type" : "hexstr",
7195 "value" : "0x000000"
7196 }
7197 }
7198 },
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007199 "true_next" : "node_58",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007200 "false_next" : "tbl_egress_next_set_mpls"
7201 },
7202 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007203 "name" : "node_58",
7204 "id" : 23,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007205 "source_info" : {
7206 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08007207 "line" : 287,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007208 "column" : 16,
7209 "source_fragment" : "hdr.mpls.isValid()"
7210 },
7211 "expression" : {
7212 "type" : "expression",
7213 "value" : {
7214 "op" : "d2b",
7215 "left" : null,
7216 "right" : {
7217 "type" : "field",
7218 "value" : ["mpls", "$valid$"]
7219 }
7220 }
7221 },
7222 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07007223 "false_next" : "FabricEgress.egress_next.egress_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007224 },
7225 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007226 "name" : "node_62",
7227 "id" : 24,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007228 "source_info" : {
7229 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08007230 "line" : 308,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007231 "column" : 12,
7232 "source_fragment" : "hdr.mpls.isValid()"
7233 },
7234 "expression" : {
7235 "type" : "expression",
7236 "value" : {
7237 "op" : "d2b",
7238 "left" : null,
7239 "right" : {
7240 "type" : "field",
7241 "value" : ["mpls", "$valid$"]
7242 }
7243 }
7244 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08007245 "true_next" : "tbl_next309",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007246 "false_next" : "node_66"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007247 },
7248 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007249 "name" : "node_64",
7250 "id" : 25,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007251 "source_info" : {
7252 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08007253 "line" : 310,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007254 "column" : 16,
7255 "source_fragment" : "hdr.mpls.ttl == 0"
7256 },
7257 "expression" : {
7258 "type" : "expression",
7259 "value" : {
7260 "op" : "==",
7261 "left" : {
7262 "type" : "field",
7263 "value" : ["mpls", "ttl"]
7264 },
7265 "right" : {
7266 "type" : "hexstr",
7267 "value" : "0x00"
7268 }
7269 }
7270 },
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007271 "true_next" : "tbl_next310",
7272 "false_next" : "tbl_slicing126"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007273 },
7274 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007275 "name" : "node_66",
7276 "id" : 26,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007277 "source_info" : {
7278 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08007279 "line" : 312,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007280 "column" : 15,
Charles Chan74ad51e2020-09-12 19:05:42 -07007281 "source_fragment" : "hdr.ipv4.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007282 },
7283 "expression" : {
7284 "type" : "expression",
7285 "value" : {
Charles Chan74ad51e2020-09-12 19:05:42 -07007286 "op" : "and",
7287 "left" : {
7288 "type" : "expression",
7289 "value" : {
7290 "op" : "d2b",
7291 "left" : null,
7292 "right" : {
7293 "type" : "field",
7294 "value" : ["ipv4", "$valid$"]
7295 }
7296 }
7297 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007298 "right" : {
Charles Chan74ad51e2020-09-12 19:05:42 -07007299 "type" : "expression",
7300 "value" : {
7301 "op" : "!=",
7302 "left" : {
7303 "type" : "field",
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007304 "value" : ["scalars", "userMetadata._fwd_type16"]
Charles Chan74ad51e2020-09-12 19:05:42 -07007305 },
7306 "right" : {
7307 "type" : "hexstr",
7308 "value" : "0x00"
7309 }
7310 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007311 }
7312 }
7313 },
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007314 "true_next" : "tbl_next313",
7315 "false_next" : "tbl_slicing126"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007316 },
7317 {
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007318 "name" : "node_68",
7319 "id" : 27,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007320 "source_info" : {
7321 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08007322 "line" : 314,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007323 "column" : 20,
7324 "source_fragment" : "hdr.ipv4.ttl == 0"
7325 },
7326 "expression" : {
7327 "type" : "expression",
7328 "value" : {
7329 "op" : "==",
7330 "left" : {
7331 "type" : "field",
7332 "value" : ["ipv4", "ttl"]
7333 },
7334 "right" : {
7335 "type" : "hexstr",
7336 "value" : "0x00"
7337 }
7338 }
7339 },
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007340 "true_next" : "tbl_next314",
7341 "false_next" : "tbl_slicing126"
7342 },
7343 {
7344 "name" : "node_72",
7345 "id" : 28,
7346 "source_info" : {
7347 "filename" : "include/control/slicing.p4",
7348 "line" : 158,
7349 "column" : 16,
7350 "source_fragment" : "hdr.ipv4.isValid()"
7351 },
7352 "expression" : {
7353 "type" : "expression",
7354 "value" : {
7355 "op" : "d2b",
7356 "left" : null,
7357 "right" : {
7358 "type" : "field",
7359 "value" : ["ipv4", "$valid$"]
7360 }
7361 }
7362 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007363 "false_next" : null,
Daniele Moro08c9e7f2021-07-28 18:53:34 +02007364 "true_next" : "tbl_slicing159"
Yi Tsengbe342052017-11-03 10:21:23 -07007365 }
7366 ]
7367 }
7368 ],
7369 "checksums" : [
7370 {
7371 "name" : "cksum",
7372 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07007373 "source_info" : {
7374 "filename" : "include/checksum.p4",
7375 "line" : 28,
7376 "column" : 8,
7377 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
7378 },
Yi Tsengbe342052017-11-03 10:21:23 -07007379 "target" : ["ipv4", "hdr_checksum"],
7380 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08007381 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08007382 "verify" : false,
7383 "update" : true,
Yi Tsengbd46d052018-01-22 17:18:16 -08007384 "if_cond" : {
7385 "type" : "expression",
7386 "value" : {
7387 "op" : "d2b",
7388 "left" : null,
7389 "right" : {
7390 "type" : "field",
7391 "value" : ["ipv4", "$valid$"]
7392 }
7393 }
7394 }
Yi Tsengbe342052017-11-03 10:21:23 -07007395 },
7396 {
7397 "name" : "cksum_0",
7398 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07007399 "source_info" : {
7400 "filename" : "include/checksum.p4",
7401 "line" : 57,
7402 "column" : 8,
7403 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
7404 },
Yi Tsengbe342052017-11-03 10:21:23 -07007405 "target" : ["ipv4", "hdr_checksum"],
7406 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08007407 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08007408 "verify" : true,
7409 "update" : false,
Yi Tsengbd46d052018-01-22 17:18:16 -08007410 "if_cond" : {
7411 "type" : "expression",
7412 "value" : {
7413 "op" : "d2b",
7414 "left" : null,
7415 "right" : {
7416 "type" : "field",
7417 "value" : ["ipv4", "$valid$"]
7418 }
7419 }
7420 }
Yi Tsengbe342052017-11-03 10:21:23 -07007421 }
7422 ],
7423 "force_arith" : [],
7424 "extern_instances" : [],
7425 "field_aliases" : [
7426 [
7427 "queueing_metadata.enq_timestamp",
7428 ["standard_metadata", "enq_timestamp"]
7429 ],
7430 [
7431 "queueing_metadata.enq_qdepth",
7432 ["standard_metadata", "enq_qdepth"]
7433 ],
7434 [
7435 "queueing_metadata.deq_timedelta",
7436 ["standard_metadata", "deq_timedelta"]
7437 ],
7438 [
7439 "queueing_metadata.deq_qdepth",
7440 ["standard_metadata", "deq_qdepth"]
7441 ],
7442 [
7443 "intrinsic_metadata.ingress_global_timestamp",
7444 ["standard_metadata", "ingress_global_timestamp"]
7445 ],
7446 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08007447 "intrinsic_metadata.egress_global_timestamp",
7448 ["standard_metadata", "egress_global_timestamp"]
7449 ],
7450 [
Yi Tsengbe342052017-11-03 10:21:23 -07007451 "intrinsic_metadata.mcast_grp",
7452 ["standard_metadata", "mcast_grp"]
7453 ],
7454 [
Yi Tsengbe342052017-11-03 10:21:23 -07007455 "intrinsic_metadata.egress_rid",
7456 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08007457 ],
7458 [
Carmelo Cascone9b607da2019-05-08 14:03:01 -07007459 "intrinsic_metadata.priority",
7460 ["standard_metadata", "priority"]
Yi Tsengbe342052017-11-03 10:21:23 -07007461 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007462 ],
7463 "program" : "fabric.p4",
7464 "__meta__" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02007465 "version" : [2, 23],
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007466 "compiler" : "https://github.com/p4lang/p4c"
7467 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08007468}