blob: 62424ccd784b8f302932b7a64cb83e067c424fd4 [file] [log] [blame]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001{
2 "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],
10 ["tmp_8", 32, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080011 ["last_ipv4_dscp_0", 6, false],
Robert MacDavidde12b982020-07-15 18:38:59 -070012 ["tmp_1", 16, false],
Carmelo Cascone2388cc12021-05-26 19:30:30 +020013 ["tmp_3", 16, false],
14 ["tmp_5", 4, false],
15 ["tmp_6", 16, false],
Carmelo Cascone2a308ff2021-06-01 18:31:57 -070016 ["tmp_7", 64, false],
17 ["tmp_9", 32, false],
18 ["tmp_10", 32, false],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -070019 ["bng_ingress_upstream_hasReturned", 1, false],
20 ["key_0", 64, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080021 ["process_int_main_process_int_transit_hasReturned", 1, false],
Carmelo Cascone2388cc12021-05-26 19:30:30 +020022 ["userMetadata._ip_eth_type0", 16, false],
23 ["userMetadata._vlan_id1", 12, false],
24 ["userMetadata._vlan_pri2", 3, false],
25 ["userMetadata._vlan_cfi3", 1, false],
26 ["userMetadata._push_double_vlan4", 1, false],
27 ["userMetadata._inner_vlan_id5", 12, false],
28 ["userMetadata._inner_vlan_pri6", 3, false],
29 ["userMetadata._inner_vlan_cfi7", 1, false],
30 ["userMetadata._mpls_label8", 20, false],
31 ["userMetadata._mpls_ttl9", 8, false],
32 ["userMetadata._skip_forwarding10", 1, false],
33 ["userMetadata._skip_next11", 1, false],
34 ["userMetadata._fwd_type12", 3, false],
35 ["userMetadata._next_id13", 32, false],
36 ["userMetadata._is_multicast14", 1, false],
37 ["userMetadata._is_controller_packet_out15", 1, false],
38 ["userMetadata._ip_proto16", 8, false],
39 ["userMetadata._l4_sport17", 16, false],
40 ["userMetadata._l4_dport18", 16, false],
41 ["userMetadata._ipv4_src_addr19", 32, false],
42 ["userMetadata._ipv4_dst_addr20", 32, false],
43 ["userMetadata._inner_l4_sport21", 16, false],
44 ["userMetadata._inner_l4_dport22", 16, false],
45 ["userMetadata._spgw_ipv4_len23", 16, false],
46 ["userMetadata._spgw_teid24", 32, false],
47 ["userMetadata._spgw_tunnel_src_port25", 16, false],
48 ["userMetadata._spgw_tunnel_src_addr26", 32, false],
49 ["userMetadata._spgw_tunnel_dst_addr27", 32, false],
50 ["userMetadata._spgw_ctr_id28", 32, false],
51 ["userMetadata._spgw_far_id29", 32, false],
52 ["userMetadata._spgw_src_iface30", 8, false],
53 ["userMetadata._spgw_skip_spgw31", 1, false],
54 ["userMetadata._spgw_notify_spgwc32", 1, false],
55 ["userMetadata._spgw_needs_gtpu_encap33", 1, false],
56 ["userMetadata._spgw_needs_gtpu_decap34", 1, false],
57 ["userMetadata._spgw_skip_egress_pdr_ctr35", 1, false],
58 ["userMetadata._bng_type36", 2, false],
59 ["userMetadata._bng_line_id37", 32, false],
60 ["userMetadata._bng_pppoe_session_id38", 16, false],
61 ["userMetadata._bng_ds_meter_result39", 32, false],
62 ["userMetadata._bng_s_tag40", 12, false],
63 ["userMetadata._bng_c_tag41", 12, false],
64 ["userMetadata._int_meta_source42", 1, false],
65 ["userMetadata._int_meta_transit43", 1, false],
66 ["userMetadata._int_meta_sink44", 1, false],
67 ["userMetadata._int_meta_switch_id45", 32, false],
68 ["userMetadata._int_meta_new_words46", 8, false],
69 ["userMetadata._int_meta_new_bytes47", 16, false],
70 ["userMetadata._int_meta_ig_tstamp48", 32, false],
71 ["userMetadata._int_meta_eg_tstamp49", 32, false],
Carmelo Cascone2a308ff2021-06-01 18:31:57 -070072 ["_padding_0", 2, false]
Carmelo Cascone2388cc12021-05-26 19:30:30 +020073 ]
74 },
75 {
76 "name" : "packet_out_header_t",
77 "id" : 1,
78 "fields" : [
79 ["egress_port", 9, false],
80 ["do_forwarding", 1, false],
81 ["_pad", 6, false]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020082 ]
83 },
84 {
Carmelo Cascone2a308ff2021-06-01 18:31:57 -070085 "name" : "gtpu_t",
Carmelo Cascone2388cc12021-05-26 19:30:30 +020086 "id" : 2,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020087 "fields" : [
Carmelo Cascone2a308ff2021-06-01 18:31:57 -070088 ["version", 3, false],
89 ["pt", 1, false],
90 ["spare", 1, false],
91 ["ex_flag", 1, false],
92 ["seq_flag", 1, false],
93 ["npdu_flag", 1, false],
94 ["msgtype", 8, false],
95 ["msglen", 16, false],
96 ["teid", 32, false]
97 ]
98 },
99 {
100 "name" : "standard_metadata",
101 "id" : 3,
102 "fields" : [
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200103 ["ingress_port", 9, false],
104 ["egress_spec", 9, false],
105 ["egress_port", 9, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200106 ["instance_type", 32, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200107 ["packet_length", 32, false],
108 ["enq_timestamp", 32, false],
109 ["enq_qdepth", 19, false],
110 ["deq_timedelta", 32, false],
111 ["deq_qdepth", 19, false],
112 ["ingress_global_timestamp", 48, false],
113 ["egress_global_timestamp", 48, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200114 ["mcast_grp", 16, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200115 ["egress_rid", 16, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -0700116 ["checksum_error", 1, false],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700117 ["parser_error", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -0700118 ["priority", 3, false],
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200119 ["_padding", 3, false]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200120 ]
121 },
122 {
123 "name" : "ethernet_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700124 "id" : 4,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200125 "fields" : [
126 ["dst_addr", 48, false],
Daniele Moro5a2de712019-09-24 14:34:07 -0700127 ["src_addr", 48, false]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200128 ]
129 },
130 {
131 "name" : "vlan_tag_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700132 "id" : 5,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200133 "fields" : [
Daniele Moro5a2de712019-09-24 14:34:07 -0700134 ["eth_type", 16, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200135 ["pri", 3, false],
136 ["cfi", 1, false],
Daniele Moro5a2de712019-09-24 14:34:07 -0700137 ["vlan_id", 12, false]
138 ]
139 },
140 {
141 "name" : "eth_type_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700142 "id" : 6,
Daniele Moro5a2de712019-09-24 14:34:07 -0700143 "fields" : [
144 ["value", 16, false]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200145 ]
146 },
147 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700148 "name" : "pppoe_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700149 "id" : 7,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200150 "fields" : [
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700151 ["version", 4, false],
152 ["type_id", 4, false],
153 ["code", 8, false],
154 ["session_id", 16, false],
155 ["length", 16, false],
156 ["protocol", 16, false]
157 ]
158 },
159 {
160 "name" : "mpls_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700161 "id" : 8,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700162 "fields" : [
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200163 ["label", 20, false],
164 ["tc", 3, false],
165 ["bos", 1, false],
166 ["ttl", 8, false]
167 ]
168 },
169 {
170 "name" : "ipv4_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700171 "id" : 9,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200172 "fields" : [
173 ["version", 4, false],
174 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900175 ["dscp", 6, false],
176 ["ecn", 2, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200177 ["total_len", 16, false],
178 ["identification", 16, false],
179 ["flags", 3, false],
180 ["frag_offset", 13, false],
181 ["ttl", 8, false],
182 ["protocol", 8, false],
183 ["hdr_checksum", 16, false],
184 ["src_addr", 32, false],
185 ["dst_addr", 32, false]
186 ]
187 },
188 {
189 "name" : "udp_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700190 "id" : 10,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200191 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800192 ["sport", 16, false],
193 ["dport", 16, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200194 ["len", 16, false],
195 ["checksum", 16, false]
196 ]
197 },
198 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800199 "name" : "tcp_t",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200200 "id" : 11,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200201 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800202 ["sport", 16, false],
203 ["dport", 16, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200204 ["seq_no", 32, false],
205 ["ack_no", 32, false],
206 ["data_offset", 4, false],
207 ["res", 3, false],
208 ["ecn", 3, false],
209 ["ctrl", 6, false],
210 ["window", 16, false],
211 ["checksum", 16, false],
212 ["urgent_ptr", 16, false]
213 ]
214 },
215 {
216 "name" : "icmp_t",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200217 "id" : 12,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200218 "fields" : [
219 ["icmp_type", 8, false],
220 ["icmp_code", 8, false],
221 ["checksum", 16, false],
222 ["identifier", 16, false],
223 ["sequence_number", 16, false],
224 ["timestamp", 64, false]
225 ]
226 },
227 {
Robert MacDavidde12b982020-07-15 18:38:59 -0700228 "name" : "ipv6_t",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200229 "id" : 13,
Robert MacDavidde12b982020-07-15 18:38:59 -0700230 "fields" : [
231 ["version", 4, false],
232 ["traffic_class", 8, false],
233 ["flow_label", 20, false],
234 ["payload_len", 16, false],
235 ["next_hdr", 8, false],
236 ["hop_limit", 8, false],
237 ["src_addr", 128, false],
238 ["dst_addr", 128, false]
239 ]
240 },
241 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200242 "name" : "packet_in_header_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700243 "id" : 14,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200244 "fields" : [
245 ["ingress_port", 9, false],
246 ["_pad", 7, false]
247 ]
248 },
249 {
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900250 "name" : "report_fixed_header_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700251 "id" : 15,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200252 "fields" : [
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900253 ["ver", 4, false],
254 ["nproto", 4, false],
255 ["d", 1, false],
256 ["q", 1, false],
257 ["f", 1, false],
258 ["rsvd", 15, false],
259 ["hw_id", 6, false],
260 ["seq_no", 32, false],
261 ["ingress_tstamp", 32, false]
262 ]
263 },
264 {
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900265 "name" : "intl4_shim_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700266 "id" : 16,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900267 "fields" : [
268 ["int_type", 8, false],
269 ["rsvd1", 8, false],
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700270 ["len_words", 8, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900271 ["rsvd2", 8, false]
272 ]
273 },
274 {
275 "name" : "int_header_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700276 "id" : 17,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900277 "fields" : [
278 ["ver", 2, false],
279 ["rep", 2, false],
280 ["c", 1, false],
281 ["e", 1, false],
282 ["rsvd1", 5, false],
283 ["ins_cnt", 5, false],
284 ["max_hop_cnt", 8, false],
285 ["total_hop_cnt", 8, false],
286 ["instruction_mask_0003", 4, false],
287 ["instruction_mask_0407", 4, false],
288 ["instruction_mask_0811", 4, false],
289 ["instruction_mask_1215", 4, false],
290 ["rsvd2", 16, false]
291 ]
292 },
293 {
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900294 "name" : "int_switch_id_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700295 "id" : 18,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900296 "fields" : [
297 ["switch_id", 32, false]
298 ]
299 },
300 {
301 "name" : "int_port_ids_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700302 "id" : 19,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900303 "fields" : [
304 ["ingress_port_id", 16, false],
305 ["egress_port_id", 16, false]
306 ]
307 },
308 {
309 "name" : "int_hop_latency_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700310 "id" : 20,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900311 "fields" : [
312 ["hop_latency", 32, false]
313 ]
314 },
315 {
316 "name" : "int_q_occupancy_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700317 "id" : 21,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900318 "fields" : [
319 ["q_id", 8, false],
320 ["q_occupancy", 24, false]
321 ]
322 },
323 {
324 "name" : "int_ingress_tstamp_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700325 "id" : 22,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900326 "fields" : [
327 ["ingress_tstamp", 32, false]
328 ]
329 },
330 {
331 "name" : "int_egress_tstamp_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700332 "id" : 23,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900333 "fields" : [
334 ["egress_tstamp", 32, false]
335 ]
336 },
337 {
338 "name" : "int_q_congestion_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700339 "id" : 24,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900340 "fields" : [
341 ["q_id", 8, false],
342 ["q_congestion", 24, false]
343 ]
344 },
345 {
346 "name" : "int_egress_port_tx_util_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700347 "id" : 25,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900348 "fields" : [
349 ["egress_port_tx_util", 32, false]
350 ]
351 },
352 {
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700353 "name" : "int_data_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700354 "id" : 26,
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700355 "fields" : [
356 ["data", "*"]
357 ],
358 "max_length" : 1004
359 },
360 {
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900361 "name" : "intl4_tail_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700362 "id" : 27,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900363 "fields" : [
364 ["next_proto", 8, false],
365 ["dest_port", 16, false],
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700366 ["padding", 2, false],
367 ["dscp", 6, false]
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900368 ]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200369 }
370 ],
371 "headers" : [
372 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200373 "name" : "tmp",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200374 "id" : 0,
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200375 "header_type" : "packet_out_header_t",
376 "metadata" : false,
377 "pi_omit" : true
378 },
379 {
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700380 "name" : "gtpu_0",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200381 "id" : 1,
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700382 "header_type" : "gtpu_t",
383 "metadata" : false,
384 "pi_omit" : true
385 },
386 {
387 "name" : "scalars",
388 "id" : 2,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200389 "header_type" : "scalars_0",
390 "metadata" : true,
391 "pi_omit" : true
392 },
393 {
394 "name" : "standard_metadata",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700395 "id" : 3,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200396 "header_type" : "standard_metadata",
397 "metadata" : true,
398 "pi_omit" : true
399 },
400 {
401 "name" : "ethernet",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700402 "id" : 4,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200403 "header_type" : "ethernet_t",
404 "metadata" : false,
405 "pi_omit" : true
406 },
407 {
408 "name" : "vlan_tag",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800409 "id" : 5,
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200410 "header_type" : "vlan_tag_t",
411 "metadata" : false,
412 "pi_omit" : true
413 },
414 {
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700415 "name" : "inner_vlan_tag",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200416 "id" : 6,
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700417 "header_type" : "vlan_tag_t",
418 "metadata" : false,
419 "pi_omit" : true
420 },
421 {
422 "name" : "eth_type",
423 "id" : 7,
Daniele Moro5a2de712019-09-24 14:34:07 -0700424 "header_type" : "eth_type_t",
425 "metadata" : false,
426 "pi_omit" : true
427 },
428 {
429 "name" : "pppoe",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700430 "id" : 8,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700431 "header_type" : "pppoe_t",
432 "metadata" : false,
433 "pi_omit" : true
434 },
435 {
436 "name" : "mpls",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700437 "id" : 9,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200438 "header_type" : "mpls_t",
439 "metadata" : false,
440 "pi_omit" : true
441 },
442 {
443 "name" : "gtpu_ipv4",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700444 "id" : 10,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200445 "header_type" : "ipv4_t",
446 "metadata" : false,
447 "pi_omit" : true
448 },
449 {
450 "name" : "gtpu_udp",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700451 "id" : 11,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200452 "header_type" : "udp_t",
453 "metadata" : false,
454 "pi_omit" : true
455 },
456 {
Robert MacDavidde12b982020-07-15 18:38:59 -0700457 "name" : "outer_gtpu",
Robert MacDavidde12b982020-07-15 18:38:59 -0700458 "id" : 12,
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200459 "header_type" : "gtpu_t",
460 "metadata" : false,
461 "pi_omit" : true
462 },
463 {
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700464 "name" : "gtpu",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200465 "id" : 13,
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700466 "header_type" : "gtpu_t",
467 "metadata" : false,
468 "pi_omit" : true
469 },
470 {
471 "name" : "inner_ipv4",
472 "id" : 14,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200473 "header_type" : "ipv4_t",
474 "metadata" : false,
475 "pi_omit" : true
476 },
477 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700478 "name" : "inner_udp",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700479 "id" : 15,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700480 "header_type" : "udp_t",
481 "metadata" : false,
482 "pi_omit" : true
483 },
484 {
Robert MacDavidde12b982020-07-15 18:38:59 -0700485 "name" : "inner_tcp",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700486 "id" : 16,
Robert MacDavidde12b982020-07-15 18:38:59 -0700487 "header_type" : "tcp_t",
488 "metadata" : false,
489 "pi_omit" : true
490 },
491 {
492 "name" : "inner_icmp",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700493 "id" : 17,
Robert MacDavidde12b982020-07-15 18:38:59 -0700494 "header_type" : "icmp_t",
495 "metadata" : false,
496 "pi_omit" : true
497 },
498 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700499 "name" : "ipv4",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700500 "id" : 18,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700501 "header_type" : "ipv4_t",
502 "metadata" : false,
503 "pi_omit" : true
504 },
505 {
506 "name" : "ipv6",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700507 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800508 "header_type" : "ipv6_t",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200509 "metadata" : false,
510 "pi_omit" : true
511 },
512 {
513 "name" : "tcp",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700514 "id" : 20,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200515 "header_type" : "tcp_t",
516 "metadata" : false,
517 "pi_omit" : true
518 },
519 {
520 "name" : "udp",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700521 "id" : 21,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200522 "header_type" : "udp_t",
523 "metadata" : false,
524 "pi_omit" : true
525 },
526 {
527 "name" : "icmp",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700528 "id" : 22,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200529 "header_type" : "icmp_t",
530 "metadata" : false,
531 "pi_omit" : true
532 },
533 {
534 "name" : "packet_out",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700535 "id" : 23,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200536 "header_type" : "packet_out_header_t",
537 "metadata" : false,
538 "pi_omit" : true
539 },
540 {
541 "name" : "packet_in",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700542 "id" : 24,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200543 "header_type" : "packet_in_header_t",
544 "metadata" : false,
545 "pi_omit" : true
546 },
547 {
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900548 "name" : "report_ethernet",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700549 "id" : 25,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900550 "header_type" : "ethernet_t",
551 "metadata" : false,
552 "pi_omit" : true
553 },
554 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700555 "name" : "report_eth_type",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700556 "id" : 26,
Daniele Moro5a2de712019-09-24 14:34:07 -0700557 "header_type" : "eth_type_t",
558 "metadata" : false,
559 "pi_omit" : true
560 },
561 {
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900562 "name" : "report_ipv4",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700563 "id" : 27,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900564 "header_type" : "ipv4_t",
565 "metadata" : false,
566 "pi_omit" : true
567 },
568 {
569 "name" : "report_udp",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700570 "id" : 28,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900571 "header_type" : "udp_t",
572 "metadata" : false,
573 "pi_omit" : true
574 },
575 {
576 "name" : "report_fixed_header",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700577 "id" : 29,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900578 "header_type" : "report_fixed_header_t",
579 "metadata" : false,
580 "pi_omit" : true
581 },
582 {
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900583 "name" : "intl4_shim",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700584 "id" : 30,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900585 "header_type" : "intl4_shim_t",
586 "metadata" : false,
587 "pi_omit" : true
588 },
589 {
590 "name" : "int_header",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700591 "id" : 31,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900592 "header_type" : "int_header_t",
593 "metadata" : false,
594 "pi_omit" : true
595 },
596 {
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900597 "name" : "int_switch_id",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700598 "id" : 32,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900599 "header_type" : "int_switch_id_t",
600 "metadata" : false,
601 "pi_omit" : true
602 },
603 {
604 "name" : "int_port_ids",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700605 "id" : 33,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900606 "header_type" : "int_port_ids_t",
607 "metadata" : false,
608 "pi_omit" : true
609 },
610 {
611 "name" : "int_hop_latency",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700612 "id" : 34,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900613 "header_type" : "int_hop_latency_t",
614 "metadata" : false,
615 "pi_omit" : true
616 },
617 {
618 "name" : "int_q_occupancy",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700619 "id" : 35,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900620 "header_type" : "int_q_occupancy_t",
621 "metadata" : false,
622 "pi_omit" : true
623 },
624 {
625 "name" : "int_ingress_tstamp",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700626 "id" : 36,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900627 "header_type" : "int_ingress_tstamp_t",
628 "metadata" : false,
629 "pi_omit" : true
630 },
631 {
632 "name" : "int_egress_tstamp",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700633 "id" : 37,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900634 "header_type" : "int_egress_tstamp_t",
635 "metadata" : false,
636 "pi_omit" : true
637 },
638 {
639 "name" : "int_q_congestion",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700640 "id" : 38,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900641 "header_type" : "int_q_congestion_t",
642 "metadata" : false,
643 "pi_omit" : true
644 },
645 {
646 "name" : "int_egress_tx_util",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700647 "id" : 39,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900648 "header_type" : "int_egress_port_tx_util_t",
649 "metadata" : false,
650 "pi_omit" : true
651 },
652 {
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700653 "name" : "int_data",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700654 "id" : 40,
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700655 "header_type" : "int_data_t",
656 "metadata" : false,
657 "pi_omit" : true
658 },
659 {
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900660 "name" : "intl4_tail",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700661 "id" : 41,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900662 "header_type" : "intl4_tail_t",
663 "metadata" : false,
664 "pi_omit" : true
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200665 }
666 ],
667 "header_stacks" : [],
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700668 "header_union_types" : [],
669 "header_unions" : [],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200670 "header_union_stacks" : [],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900671 "field_lists" : [
672 {
673 "id" : 1,
674 "name" : "fl",
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700675 "source_info" : {
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700676 "filename" : "include/control/acl.p4",
677 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700678 "column" : 40,
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700679 "source_fragment" : "{standard_metadata.ingress_port}"
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700680 },
681 "elements" : [
682 {
683 "type" : "field",
684 "value" : ["standard_metadata", "ingress_port"]
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700685 }
686 ]
687 },
688 {
689 "id" : 2,
690 "name" : "fl_0",
Sundararajan Renganathanac96e5b2020-07-10 02:43:40 +0000691 "source_info" : {
692 "filename" : "include/int/int_main.p4",
693 "line" : 89,
694 "column" : 60,
695 "source_fragment" : "{standard_metadata.ingress_port}"
696 },
697 "elements" : [
698 {
699 "type" : "field",
700 "value" : ["standard_metadata", "ingress_port"]
701 }
702 ]
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900703 }
704 ],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700705 "errors" : [
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700706 ["NoError", 1],
707 ["PacketTooShort", 2],
708 ["NoMatch", 3],
709 ["StackOutOfBounds", 4],
710 ["HeaderTooShort", 5],
711 ["ParserTimeout", 6],
712 ["ParserInvalidArgument", 7]
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700713 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200714 "enums" : [],
715 "parsers" : [
716 {
717 "name" : "parser",
718 "id" : 0,
719 "init_state" : "start",
720 "parse_states" : [
721 {
722 "name" : "start",
723 "id" : 0,
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700724 "parser_ops" : [
725 {
726 "parameters" : [
727 {
728 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800729 "value" : ["scalars", "last_ipv4_dscp_0"]
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700730 },
731 {
732 "type" : "hexstr",
733 "value" : "0x00"
734 }
735 ],
736 "op" : "set"
737 }
738 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200739 "transitions" : [
740 {
741 "type" : "hexstr",
742 "value" : "0x00ff",
743 "mask" : null,
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200744 "next_state" : "check_packet_out"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200745 },
746 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200747 "type" : "default",
748 "value" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200749 "mask" : null,
750 "next_state" : "parse_ethernet"
751 }
752 ],
753 "transition_key" : [
754 {
755 "type" : "field",
756 "value" : ["standard_metadata", "ingress_port"]
757 }
758 ]
759 },
760 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200761 "name" : "check_packet_out",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200762 "id" : 1,
763 "parser_ops" : [
764 {
765 "parameters" : [
766 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200767 "type" : "field",
768 "value" : ["scalars", "tmp_6"]
769 },
770 {
771 "type" : "lookahead",
772 "value" : [0, 16]
773 }
774 ],
775 "op" : "set"
776 },
777 {
778 "parameters" : [
779 {
780 "parameters" : [
781 {
782 "type" : "header",
783 "value" : "tmp"
784 }
785 ],
786 "op" : "add_header"
787 }
788 ],
789 "op" : "primitive"
790 },
791 {
792 "parameters" : [
793 {
794 "type" : "field",
795 "value" : ["tmp", "egress_port"]
796 },
797 {
798 "type" : "expression",
799 "value" : {
800 "type" : "expression",
801 "value" : {
802 "op" : "&",
803 "left" : {
804 "type" : "expression",
805 "value" : {
806 "op" : "&",
807 "left" : {
808 "type" : "expression",
809 "value" : {
810 "op" : ">>",
811 "left" : {
812 "type" : "field",
813 "value" : ["scalars", "tmp_6"]
814 },
815 "right" : {
816 "type" : "hexstr",
817 "value" : "0x7"
818 }
819 }
820 },
821 "right" : {
822 "type" : "hexstr",
823 "value" : "0xffff"
824 }
825 }
826 },
827 "right" : {
828 "type" : "hexstr",
829 "value" : "0x01ff"
830 }
831 }
832 }
833 }
834 ],
835 "op" : "set"
836 },
837 {
838 "parameters" : [
839 {
840 "type" : "field",
841 "value" : ["tmp", "do_forwarding"]
842 },
843 {
844 "type" : "expression",
845 "value" : {
846 "type" : "expression",
847 "value" : {
848 "op" : "&",
849 "left" : {
850 "type" : "expression",
851 "value" : {
852 "op" : "&",
853 "left" : {
854 "type" : "expression",
855 "value" : {
856 "op" : ">>",
857 "left" : {
858 "type" : "field",
859 "value" : ["scalars", "tmp_6"]
860 },
861 "right" : {
862 "type" : "hexstr",
863 "value" : "0x6"
864 }
865 }
866 },
867 "right" : {
868 "type" : "hexstr",
869 "value" : "0xffff"
870 }
871 }
872 },
873 "right" : {
874 "type" : "hexstr",
875 "value" : "0x01"
876 }
877 }
878 }
879 }
880 ],
881 "op" : "set"
882 },
883 {
884 "parameters" : [
885 {
886 "type" : "field",
887 "value" : ["tmp", "_pad"]
888 },
889 {
890 "type" : "expression",
891 "value" : {
892 "type" : "expression",
893 "value" : {
894 "op" : "&",
895 "left" : {
896 "type" : "field",
897 "value" : ["scalars", "tmp_6"]
898 },
899 "right" : {
900 "type" : "hexstr",
901 "value" : "0x3f"
902 }
903 }
904 }
905 }
906 ],
907 "op" : "set"
908 },
909 {
910 "parameters" : [
911 {
912 "type" : "field",
913 "value" : ["scalars", "tmp_0"]
914 },
915 {
916 "type" : "expression",
917 "value" : {
918 "type" : "expression",
919 "value" : {
920 "op" : "&",
921 "left" : {
922 "type" : "expression",
923 "value" : {
924 "op" : "&",
925 "left" : {
926 "type" : "expression",
927 "value" : {
928 "op" : ">>",
929 "left" : {
930 "type" : "field",
931 "value" : ["scalars", "tmp_6"]
932 },
933 "right" : {
934 "type" : "hexstr",
935 "value" : "0x6"
936 }
937 }
938 },
939 "right" : {
940 "type" : "hexstr",
941 "value" : "0xffff"
942 }
943 }
944 },
945 "right" : {
946 "type" : "hexstr",
947 "value" : "0x01"
948 }
949 }
950 }
951 }
952 ],
953 "op" : "set"
954 }
955 ],
956 "transitions" : [
957 {
958 "type" : "hexstr",
959 "value" : "0x00",
960 "mask" : null,
961 "next_state" : "parse_packet_out_and_accept"
962 },
963 {
964 "type" : "default",
965 "value" : null,
966 "mask" : null,
967 "next_state" : "strip_packet_out"
968 }
969 ],
970 "transition_key" : [
971 {
972 "type" : "field",
973 "value" : ["scalars", "tmp_0"]
974 }
975 ]
976 },
977 {
978 "name" : "parse_packet_out_and_accept",
979 "id" : 2,
980 "parser_ops" : [
981 {
982 "parameters" : [
983 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +0200984 "type" : "regular",
985 "value" : "packet_out"
986 }
987 ],
988 "op" : "extract"
989 }
990 ],
991 "transitions" : [
992 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200993 "type" : "default",
994 "value" : null,
995 "mask" : null,
996 "next_state" : null
997 }
998 ],
999 "transition_key" : []
1000 },
1001 {
1002 "name" : "strip_packet_out",
1003 "id" : 3,
1004 "parser_ops" : [
1005 {
1006 "parameters" : [
1007 {
1008 "type" : "hexstr",
1009 "value" : "0x00000010"
1010 }
1011 ],
1012 "op" : "advance"
1013 }
1014 ],
1015 "transitions" : [
1016 {
1017 "type" : "default",
1018 "value" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001019 "mask" : null,
1020 "next_state" : "parse_ethernet"
1021 }
1022 ],
1023 "transition_key" : []
1024 },
1025 {
1026 "name" : "parse_ethernet",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001027 "id" : 4,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001028 "parser_ops" : [
1029 {
1030 "parameters" : [
1031 {
1032 "type" : "regular",
1033 "value" : "ethernet"
1034 }
1035 ],
1036 "op" : "extract"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001037 },
1038 {
1039 "parameters" : [
1040 {
1041 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001042 "value" : ["scalars", "userMetadata._vlan_id1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001043 },
1044 {
Daniele Moro5a2de712019-09-24 14:34:07 -07001045 "type" : "hexstr",
1046 "value" : "0x0ffe"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001047 }
1048 ],
1049 "op" : "set"
1050 },
1051 {
1052 "parameters" : [
1053 {
1054 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001055 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001056 },
1057 {
Daniele Moro5a2de712019-09-24 14:34:07 -07001058 "type" : "lookahead",
1059 "value" : [0, 16]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001060 }
1061 ],
1062 "op" : "set"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001063 }
1064 ],
1065 "transitions" : [
1066 {
1067 "type" : "hexstr",
Daniele Moro77654f92019-07-30 10:29:54 -07001068 "value" : "0x88a8",
1069 "mask" : null,
1070 "next_state" : "parse_vlan_tag"
1071 },
1072 {
1073 "type" : "hexstr",
1074 "value" : "0x9100",
1075 "mask" : null,
1076 "next_state" : "parse_vlan_tag"
1077 },
1078 {
1079 "type" : "hexstr",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001080 "value" : "0x8100",
1081 "mask" : null,
1082 "next_state" : "parse_vlan_tag"
1083 },
1084 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001085 "type" : "default",
1086 "value" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001087 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07001088 "next_state" : "parse_eth_type"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001089 }
1090 ],
1091 "transition_key" : [
1092 {
1093 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001094 "value" : ["scalars", "tmp_1"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001095 }
1096 ]
1097 },
1098 {
1099 "name" : "parse_vlan_tag",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001100 "id" : 5,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001101 "parser_ops" : [
1102 {
1103 "parameters" : [
1104 {
1105 "type" : "regular",
1106 "value" : "vlan_tag"
1107 }
1108 ],
1109 "op" : "extract"
Daniele Moro5a2de712019-09-24 14:34:07 -07001110 },
1111 {
1112 "parameters" : [
1113 {
1114 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001115 "value" : ["scalars", "userMetadata._bng_s_tag40"]
Daniele Morob3d199b2019-11-01 14:01:46 -07001116 },
1117 {
1118 "type" : "field",
1119 "value" : ["vlan_tag", "vlan_id"]
1120 }
1121 ],
1122 "op" : "set"
1123 },
1124 {
1125 "parameters" : [
1126 {
1127 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001128 "value" : ["scalars", "tmp_3"]
Daniele Moro5a2de712019-09-24 14:34:07 -07001129 },
1130 {
1131 "type" : "lookahead",
1132 "value" : [0, 16]
1133 }
1134 ],
1135 "op" : "set"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001136 }
1137 ],
1138 "transitions" : [
1139 {
1140 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001141 "value" : "0x8100",
1142 "mask" : null,
1143 "next_state" : "parse_inner_vlan_tag"
1144 },
1145 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001146 "type" : "default",
1147 "value" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001148 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07001149 "next_state" : "parse_eth_type"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001150 }
1151 ],
1152 "transition_key" : [
1153 {
1154 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001155 "value" : ["scalars", "tmp_3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001156 }
1157 ]
1158 },
1159 {
1160 "name" : "parse_inner_vlan_tag",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001161 "id" : 6,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001162 "parser_ops" : [
1163 {
1164 "parameters" : [
1165 {
1166 "type" : "regular",
1167 "value" : "inner_vlan_tag"
1168 }
1169 ],
1170 "op" : "extract"
Daniele Morob3d199b2019-11-01 14:01:46 -07001171 },
1172 {
1173 "parameters" : [
1174 {
1175 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001176 "value" : ["scalars", "userMetadata._bng_c_tag41"]
Daniele Morob3d199b2019-11-01 14:01:46 -07001177 },
1178 {
1179 "type" : "field",
1180 "value" : ["inner_vlan_tag", "vlan_id"]
1181 }
1182 ],
1183 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001184 }
1185 ],
1186 "transitions" : [
1187 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001188 "type" : "default",
1189 "value" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001190 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07001191 "next_state" : "parse_eth_type"
1192 }
1193 ],
1194 "transition_key" : []
1195 },
1196 {
1197 "name" : "parse_eth_type",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001198 "id" : 7,
Daniele Moro5a2de712019-09-24 14:34:07 -07001199 "parser_ops" : [
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001200 {
Daniele Moro5a2de712019-09-24 14:34:07 -07001201 "parameters" : [
1202 {
1203 "type" : "regular",
1204 "value" : "eth_type"
1205 }
1206 ],
1207 "op" : "extract"
1208 }
1209 ],
1210 "transitions" : [
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001211 {
1212 "type" : "hexstr",
1213 "value" : "0x8847",
1214 "mask" : null,
1215 "next_state" : "parse_mpls"
1216 },
1217 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001218 "type" : "hexstr",
Daniele Moro5a2de712019-09-24 14:34:07 -07001219 "value" : "0x0800",
1220 "mask" : null,
1221 "next_state" : "parse_ipv4"
1222 },
1223 {
1224 "type" : "hexstr",
1225 "value" : "0x86dd",
1226 "mask" : null,
1227 "next_state" : "parse_ipv6"
1228 },
1229 {
1230 "type" : "hexstr",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001231 "value" : "0x8863",
1232 "mask" : null,
1233 "next_state" : "parse_pppoe"
1234 },
1235 {
1236 "type" : "hexstr",
1237 "value" : "0x8864",
1238 "mask" : null,
1239 "next_state" : "parse_pppoe"
1240 },
1241 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001242 "type" : "default",
1243 "value" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001244 "mask" : null,
1245 "next_state" : null
1246 }
1247 ],
1248 "transition_key" : [
1249 {
1250 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07001251 "value" : ["eth_type", "value"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001252 }
1253 ]
1254 },
1255 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001256 "name" : "parse_pppoe",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001257 "id" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001258 "parser_ops" : [
1259 {
1260 "parameters" : [
1261 {
1262 "type" : "regular",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001263 "value" : "pppoe"
1264 }
1265 ],
1266 "op" : "extract"
1267 }
1268 ],
1269 "transitions" : [
1270 {
1271 "type" : "hexstr",
Daniele Moroe22b5742019-06-28 15:32:37 -07001272 "value" : "0x0281",
1273 "mask" : null,
1274 "next_state" : "parse_mpls"
1275 },
1276 {
1277 "type" : "hexstr",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001278 "value" : "0x0021",
1279 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07001280 "next_state" : "parse_ipv4"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001281 },
1282 {
1283 "type" : "hexstr",
1284 "value" : "0x0057",
1285 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07001286 "next_state" : "parse_ipv6"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001287 },
1288 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001289 "type" : "default",
1290 "value" : null,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001291 "mask" : null,
1292 "next_state" : null
1293 }
1294 ],
1295 "transition_key" : [
1296 {
1297 "type" : "field",
1298 "value" : ["pppoe", "protocol"]
1299 }
1300 ]
1301 },
1302 {
1303 "name" : "parse_mpls",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001304 "id" : 9,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001305 "parser_ops" : [
1306 {
1307 "parameters" : [
1308 {
1309 "type" : "regular",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001310 "value" : "mpls"
1311 }
1312 ],
1313 "op" : "extract"
1314 },
1315 {
1316 "parameters" : [
1317 {
1318 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001319 "value" : ["scalars", "userMetadata._mpls_label8"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001320 },
1321 {
1322 "type" : "field",
1323 "value" : ["mpls", "label"]
1324 }
1325 ],
1326 "op" : "set"
1327 },
1328 {
1329 "parameters" : [
1330 {
1331 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001332 "value" : ["scalars", "userMetadata._mpls_ttl9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001333 },
1334 {
1335 "type" : "field",
1336 "value" : ["mpls", "ttl"]
1337 }
1338 ],
1339 "op" : "set"
1340 },
1341 {
1342 "parameters" : [
1343 {
1344 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001345 "value" : ["scalars", "tmp_5"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001346 },
1347 {
1348 "type" : "lookahead",
1349 "value" : [0, 4]
1350 }
1351 ],
1352 "op" : "set"
1353 }
1354 ],
1355 "transitions" : [
1356 {
1357 "type" : "hexstr",
1358 "value" : "0x04",
1359 "mask" : null,
1360 "next_state" : "parse_ipv4"
1361 },
1362 {
1363 "type" : "hexstr",
1364 "value" : "0x06",
1365 "mask" : null,
1366 "next_state" : "parse_ipv6"
1367 },
1368 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001369 "type" : "default",
1370 "value" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001371 "mask" : null,
1372 "next_state" : "parse_ethernet"
1373 }
1374 ],
1375 "transition_key" : [
1376 {
1377 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001378 "value" : ["scalars", "tmp_5"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001379 }
1380 ]
1381 },
1382 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07001383 "name" : "parse_ipv4",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001384 "id" : 10,
Daniele Moro7c3a0022019-07-12 13:38:34 -07001385 "parser_ops" : [
1386 {
1387 "parameters" : [
1388 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001389 "type" : "regular",
1390 "value" : "ipv4"
1391 }
1392 ],
1393 "op" : "extract"
1394 },
1395 {
1396 "parameters" : [
1397 {
1398 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001399 "value" : ["scalars", "userMetadata._ip_proto16"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001400 },
1401 {
1402 "type" : "field",
1403 "value" : ["ipv4", "protocol"]
1404 }
1405 ],
1406 "op" : "set"
Carmelo Cascone79a3a312018-08-16 17:14:43 -07001407 },
1408 {
1409 "parameters" : [
1410 {
1411 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001412 "value" : ["scalars", "userMetadata._ip_eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001413 },
1414 {
1415 "type" : "hexstr",
1416 "value" : "0x0800"
1417 }
1418 ],
1419 "op" : "set"
1420 },
1421 {
1422 "parameters" : [
1423 {
1424 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001425 "value" : ["scalars", "userMetadata._ipv4_src_addr19"]
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001426 },
1427 {
1428 "type" : "field",
1429 "value" : ["ipv4", "src_addr"]
1430 }
1431 ],
1432 "op" : "set"
1433 },
1434 {
1435 "parameters" : [
1436 {
1437 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001438 "value" : ["scalars", "userMetadata._ipv4_dst_addr20"]
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04001439 },
1440 {
1441 "type" : "field",
1442 "value" : ["ipv4", "dst_addr"]
1443 }
1444 ],
1445 "op" : "set"
1446 },
1447 {
1448 "parameters" : [
1449 {
1450 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001451 "value" : ["scalars", "last_ipv4_dscp_0"]
Carmelo Cascone79a3a312018-08-16 17:14:43 -07001452 },
1453 {
1454 "type" : "field",
1455 "value" : ["ipv4", "dscp"]
1456 }
1457 ],
1458 "op" : "set"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001459 }
1460 ],
1461 "transitions" : [
1462 {
1463 "type" : "hexstr",
1464 "value" : "0x06",
1465 "mask" : null,
1466 "next_state" : "parse_tcp"
1467 },
1468 {
1469 "type" : "hexstr",
1470 "value" : "0x11",
1471 "mask" : null,
1472 "next_state" : "parse_udp"
1473 },
1474 {
1475 "type" : "hexstr",
1476 "value" : "0x01",
1477 "mask" : null,
1478 "next_state" : "parse_icmp"
1479 },
1480 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001481 "type" : "default",
1482 "value" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001483 "mask" : null,
1484 "next_state" : null
1485 }
1486 ],
1487 "transition_key" : [
1488 {
1489 "type" : "field",
1490 "value" : ["ipv4", "protocol"]
1491 }
1492 ]
1493 },
1494 {
1495 "name" : "parse_ipv6",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001496 "id" : 11,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001497 "parser_ops" : [
1498 {
1499 "parameters" : [
1500 {
1501 "type" : "regular",
1502 "value" : "ipv6"
1503 }
1504 ],
1505 "op" : "extract"
1506 },
1507 {
1508 "parameters" : [
1509 {
1510 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001511 "value" : ["scalars", "userMetadata._ip_proto16"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001512 },
1513 {
1514 "type" : "field",
1515 "value" : ["ipv6", "next_hdr"]
1516 }
1517 ],
1518 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001519 },
1520 {
1521 "parameters" : [
1522 {
1523 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001524 "value" : ["scalars", "userMetadata._ip_eth_type0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001525 },
1526 {
1527 "type" : "hexstr",
1528 "value" : "0x86dd"
1529 }
1530 ],
1531 "op" : "set"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001532 }
1533 ],
1534 "transitions" : [
1535 {
1536 "type" : "hexstr",
1537 "value" : "0x06",
1538 "mask" : null,
1539 "next_state" : "parse_tcp"
1540 },
1541 {
1542 "type" : "hexstr",
1543 "value" : "0x11",
1544 "mask" : null,
1545 "next_state" : "parse_udp"
1546 },
1547 {
1548 "type" : "hexstr",
1549 "value" : "0x3a",
1550 "mask" : null,
1551 "next_state" : "parse_icmp"
1552 },
1553 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001554 "type" : "default",
1555 "value" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001556 "mask" : null,
1557 "next_state" : null
1558 }
1559 ],
1560 "transition_key" : [
1561 {
1562 "type" : "field",
1563 "value" : ["ipv6", "next_hdr"]
1564 }
1565 ]
1566 },
1567 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001568 "name" : "parse_tcp",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001569 "id" : 12,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001570 "parser_ops" : [
1571 {
1572 "parameters" : [
1573 {
1574 "type" : "regular",
1575 "value" : "tcp"
1576 }
1577 ],
1578 "op" : "extract"
1579 },
1580 {
1581 "parameters" : [
1582 {
1583 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001584 "value" : ["scalars", "userMetadata._l4_sport17"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001585 },
1586 {
1587 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001588 "value" : ["tcp", "sport"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001589 }
1590 ],
1591 "op" : "set"
1592 },
1593 {
1594 "parameters" : [
1595 {
1596 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001597 "value" : ["scalars", "userMetadata._l4_dport18"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001598 },
1599 {
1600 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001601 "value" : ["tcp", "dport"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001602 }
1603 ],
1604 "op" : "set"
1605 }
1606 ],
1607 "transitions" : [
1608 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001609 "type" : "default",
1610 "value" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001611 "mask" : null,
Carmelo Cascone79a3a312018-08-16 17:14:43 -07001612 "next_state" : "parse_int"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001613 }
1614 ],
Carmelo Cascone79a3a312018-08-16 17:14:43 -07001615 "transition_key" : []
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001616 },
1617 {
1618 "name" : "parse_udp",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001619 "id" : 13,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001620 "parser_ops" : [
1621 {
1622 "parameters" : [
1623 {
1624 "type" : "regular",
1625 "value" : "udp"
1626 }
1627 ],
1628 "op" : "extract"
1629 },
1630 {
1631 "parameters" : [
1632 {
1633 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001634 "value" : ["scalars", "userMetadata._l4_sport17"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001635 },
1636 {
1637 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001638 "value" : ["udp", "sport"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001639 }
1640 ],
1641 "op" : "set"
1642 },
1643 {
1644 "parameters" : [
1645 {
1646 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001647 "value" : ["scalars", "userMetadata._l4_dport18"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001648 },
1649 {
1650 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001651 "value" : ["udp", "dport"]
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001652 }
1653 ],
1654 "op" : "set"
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07001655 },
1656 {
1657 "parameters" : [
1658 {
1659 "type" : "field",
1660 "value" : ["scalars", "tmp_7"]
1661 },
1662 {
1663 "type" : "lookahead",
1664 "value" : [0, 64]
1665 }
1666 ],
1667 "op" : "set"
1668 },
1669 {
1670 "parameters" : [
1671 {
1672 "parameters" : [
1673 {
1674 "type" : "header",
1675 "value" : "gtpu_0"
1676 }
1677 ],
1678 "op" : "add_header"
1679 }
1680 ],
1681 "op" : "primitive"
1682 },
1683 {
1684 "parameters" : [
1685 {
1686 "type" : "field",
1687 "value" : ["gtpu_0", "version"]
1688 },
1689 {
1690 "type" : "expression",
1691 "value" : {
1692 "type" : "expression",
1693 "value" : {
1694 "op" : "&",
1695 "left" : {
1696 "type" : "expression",
1697 "value" : {
1698 "op" : "&",
1699 "left" : {
1700 "type" : "expression",
1701 "value" : {
1702 "op" : ">>",
1703 "left" : {
1704 "type" : "field",
1705 "value" : ["scalars", "tmp_7"]
1706 },
1707 "right" : {
1708 "type" : "hexstr",
1709 "value" : "0x3d"
1710 }
1711 }
1712 },
1713 "right" : {
1714 "type" : "hexstr",
1715 "value" : "0xffffffffffffffff"
1716 }
1717 }
1718 },
1719 "right" : {
1720 "type" : "hexstr",
1721 "value" : "0x07"
1722 }
1723 }
1724 }
1725 }
1726 ],
1727 "op" : "set"
1728 },
1729 {
1730 "parameters" : [
1731 {
1732 "type" : "field",
1733 "value" : ["gtpu_0", "pt"]
1734 },
1735 {
1736 "type" : "expression",
1737 "value" : {
1738 "type" : "expression",
1739 "value" : {
1740 "op" : "&",
1741 "left" : {
1742 "type" : "expression",
1743 "value" : {
1744 "op" : "&",
1745 "left" : {
1746 "type" : "expression",
1747 "value" : {
1748 "op" : ">>",
1749 "left" : {
1750 "type" : "field",
1751 "value" : ["scalars", "tmp_7"]
1752 },
1753 "right" : {
1754 "type" : "hexstr",
1755 "value" : "0x3c"
1756 }
1757 }
1758 },
1759 "right" : {
1760 "type" : "hexstr",
1761 "value" : "0xffffffffffffffff"
1762 }
1763 }
1764 },
1765 "right" : {
1766 "type" : "hexstr",
1767 "value" : "0x01"
1768 }
1769 }
1770 }
1771 }
1772 ],
1773 "op" : "set"
1774 },
1775 {
1776 "parameters" : [
1777 {
1778 "type" : "field",
1779 "value" : ["gtpu_0", "spare"]
1780 },
1781 {
1782 "type" : "expression",
1783 "value" : {
1784 "type" : "expression",
1785 "value" : {
1786 "op" : "&",
1787 "left" : {
1788 "type" : "expression",
1789 "value" : {
1790 "op" : "&",
1791 "left" : {
1792 "type" : "expression",
1793 "value" : {
1794 "op" : ">>",
1795 "left" : {
1796 "type" : "field",
1797 "value" : ["scalars", "tmp_7"]
1798 },
1799 "right" : {
1800 "type" : "hexstr",
1801 "value" : "0x3b"
1802 }
1803 }
1804 },
1805 "right" : {
1806 "type" : "hexstr",
1807 "value" : "0xffffffffffffffff"
1808 }
1809 }
1810 },
1811 "right" : {
1812 "type" : "hexstr",
1813 "value" : "0x01"
1814 }
1815 }
1816 }
1817 }
1818 ],
1819 "op" : "set"
1820 },
1821 {
1822 "parameters" : [
1823 {
1824 "type" : "field",
1825 "value" : ["gtpu_0", "ex_flag"]
1826 },
1827 {
1828 "type" : "expression",
1829 "value" : {
1830 "type" : "expression",
1831 "value" : {
1832 "op" : "&",
1833 "left" : {
1834 "type" : "expression",
1835 "value" : {
1836 "op" : "&",
1837 "left" : {
1838 "type" : "expression",
1839 "value" : {
1840 "op" : ">>",
1841 "left" : {
1842 "type" : "field",
1843 "value" : ["scalars", "tmp_7"]
1844 },
1845 "right" : {
1846 "type" : "hexstr",
1847 "value" : "0x3a"
1848 }
1849 }
1850 },
1851 "right" : {
1852 "type" : "hexstr",
1853 "value" : "0xffffffffffffffff"
1854 }
1855 }
1856 },
1857 "right" : {
1858 "type" : "hexstr",
1859 "value" : "0x01"
1860 }
1861 }
1862 }
1863 }
1864 ],
1865 "op" : "set"
1866 },
1867 {
1868 "parameters" : [
1869 {
1870 "type" : "field",
1871 "value" : ["gtpu_0", "seq_flag"]
1872 },
1873 {
1874 "type" : "expression",
1875 "value" : {
1876 "type" : "expression",
1877 "value" : {
1878 "op" : "&",
1879 "left" : {
1880 "type" : "expression",
1881 "value" : {
1882 "op" : "&",
1883 "left" : {
1884 "type" : "expression",
1885 "value" : {
1886 "op" : ">>",
1887 "left" : {
1888 "type" : "field",
1889 "value" : ["scalars", "tmp_7"]
1890 },
1891 "right" : {
1892 "type" : "hexstr",
1893 "value" : "0x39"
1894 }
1895 }
1896 },
1897 "right" : {
1898 "type" : "hexstr",
1899 "value" : "0xffffffffffffffff"
1900 }
1901 }
1902 },
1903 "right" : {
1904 "type" : "hexstr",
1905 "value" : "0x01"
1906 }
1907 }
1908 }
1909 }
1910 ],
1911 "op" : "set"
1912 },
1913 {
1914 "parameters" : [
1915 {
1916 "type" : "field",
1917 "value" : ["gtpu_0", "npdu_flag"]
1918 },
1919 {
1920 "type" : "expression",
1921 "value" : {
1922 "type" : "expression",
1923 "value" : {
1924 "op" : "&",
1925 "left" : {
1926 "type" : "expression",
1927 "value" : {
1928 "op" : "&",
1929 "left" : {
1930 "type" : "expression",
1931 "value" : {
1932 "op" : ">>",
1933 "left" : {
1934 "type" : "field",
1935 "value" : ["scalars", "tmp_7"]
1936 },
1937 "right" : {
1938 "type" : "hexstr",
1939 "value" : "0x38"
1940 }
1941 }
1942 },
1943 "right" : {
1944 "type" : "hexstr",
1945 "value" : "0xffffffffffffffff"
1946 }
1947 }
1948 },
1949 "right" : {
1950 "type" : "hexstr",
1951 "value" : "0x01"
1952 }
1953 }
1954 }
1955 }
1956 ],
1957 "op" : "set"
1958 },
1959 {
1960 "parameters" : [
1961 {
1962 "type" : "field",
1963 "value" : ["gtpu_0", "msgtype"]
1964 },
1965 {
1966 "type" : "expression",
1967 "value" : {
1968 "type" : "expression",
1969 "value" : {
1970 "op" : "&",
1971 "left" : {
1972 "type" : "expression",
1973 "value" : {
1974 "op" : "&",
1975 "left" : {
1976 "type" : "expression",
1977 "value" : {
1978 "op" : ">>",
1979 "left" : {
1980 "type" : "field",
1981 "value" : ["scalars", "tmp_7"]
1982 },
1983 "right" : {
1984 "type" : "hexstr",
1985 "value" : "0x30"
1986 }
1987 }
1988 },
1989 "right" : {
1990 "type" : "hexstr",
1991 "value" : "0xffffffffffffffff"
1992 }
1993 }
1994 },
1995 "right" : {
1996 "type" : "hexstr",
1997 "value" : "0xff"
1998 }
1999 }
2000 }
2001 }
2002 ],
2003 "op" : "set"
2004 },
2005 {
2006 "parameters" : [
2007 {
2008 "type" : "field",
2009 "value" : ["gtpu_0", "msglen"]
2010 },
2011 {
2012 "type" : "expression",
2013 "value" : {
2014 "type" : "expression",
2015 "value" : {
2016 "op" : "&",
2017 "left" : {
2018 "type" : "expression",
2019 "value" : {
2020 "op" : "&",
2021 "left" : {
2022 "type" : "expression",
2023 "value" : {
2024 "op" : ">>",
2025 "left" : {
2026 "type" : "field",
2027 "value" : ["scalars", "tmp_7"]
2028 },
2029 "right" : {
2030 "type" : "hexstr",
2031 "value" : "0x20"
2032 }
2033 }
2034 },
2035 "right" : {
2036 "type" : "hexstr",
2037 "value" : "0xffffffffffffffff"
2038 }
2039 }
2040 },
2041 "right" : {
2042 "type" : "hexstr",
2043 "value" : "0xffff"
2044 }
2045 }
2046 }
2047 }
2048 ],
2049 "op" : "set"
2050 },
2051 {
2052 "parameters" : [
2053 {
2054 "type" : "field",
2055 "value" : ["gtpu_0", "teid"]
2056 },
2057 {
2058 "type" : "expression",
2059 "value" : {
2060 "type" : "expression",
2061 "value" : {
2062 "op" : "&",
2063 "left" : {
2064 "type" : "field",
2065 "value" : ["scalars", "tmp_7"]
2066 },
2067 "right" : {
2068 "type" : "hexstr",
2069 "value" : "0xffffffff"
2070 }
2071 }
2072 }
2073 }
2074 ],
2075 "op" : "set"
2076 },
2077 {
2078 "parameters" : [
2079 {
2080 "type" : "field",
2081 "value" : ["scalars", "tmp_2"]
2082 },
2083 {
2084 "type" : "expression",
2085 "value" : {
2086 "type" : "expression",
2087 "value" : {
2088 "op" : "&",
2089 "left" : {
2090 "type" : "expression",
2091 "value" : {
2092 "op" : "&",
2093 "left" : {
2094 "type" : "expression",
2095 "value" : {
2096 "op" : ">>",
2097 "left" : {
2098 "type" : "field",
2099 "value" : ["scalars", "tmp_7"]
2100 },
2101 "right" : {
2102 "type" : "hexstr",
2103 "value" : "0x3d"
2104 }
2105 }
2106 },
2107 "right" : {
2108 "type" : "hexstr",
2109 "value" : "0xffffffffffffffff"
2110 }
2111 }
2112 },
2113 "right" : {
2114 "type" : "hexstr",
2115 "value" : "0x07"
2116 }
2117 }
2118 }