blob: 9be7b890b800f95529321312d45163a61a99b3b6 [file] [log] [blame]
Carmelo Cascone54650342016-05-31 11:29:21 -07001{
2 "header_types": [
3 {
4 "name": "standard_metadata_t",
5 "id": 0,
6 "fields": [
7 [
8 "ingress_port",
9 9
10 ],
11 [
12 "packet_length",
13 32
14 ],
15 [
16 "egress_spec",
17 9
18 ],
19 [
20 "egress_port",
21 9
22 ],
23 [
24 "egress_instance",
25 32
26 ],
27 [
28 "instance_type",
29 32
30 ],
31 [
32 "clone_spec",
33 32
34 ],
35 [
36 "_padding",
37 5
38 ]
39 ],
40 "length_exp": null,
41 "max_length": null
42 },
43 {
44 "name": "ethernet_t",
45 "id": 1,
46 "fields": [
47 [
48 "dstAddr",
49 48
50 ],
51 [
52 "srcAddr",
53 48
54 ],
55 [
56 "etherType",
57 16
58 ]
59 ],
60 "length_exp": null,
61 "max_length": null
62 },
63 {
64 "name": "intrinsic_metadata_t",
65 "id": 2,
66 "fields": [
67 [
68 "ingress_global_timestamp",
69 32
70 ],
71 [
72 "lf_field_list",
73 32
74 ],
75 [
76 "mcast_grp",
77 16
78 ],
79 [
80 "egress_rid",
81 16
82 ]
83 ],
84 "length_exp": null,
85 "max_length": null
86 }
87 ],
88 "headers": [
89 {
90 "name": "standard_metadata",
91 "id": 0,
92 "header_type": "standard_metadata_t",
93 "metadata": true
94 },
95 {
96 "name": "ethernet",
97 "id": 1,
98 "header_type": "ethernet_t",
99 "metadata": false
100 },
101 {
102 "name": "intrinsic_metadata",
103 "id": 2,
104 "header_type": "intrinsic_metadata_t",
105 "metadata": true
106 }
107 ],
108 "header_stacks": [],
109 "parsers": [
110 {
111 "name": "parser",
112 "id": 0,
113 "init_state": "start",
114 "parse_states": [
115 {
116 "name": "start",
117 "id": 0,
118 "parser_ops": [],
119 "transition_key": [],
120 "transitions": [
121 {
122 "value": "default",
123 "mask": null,
124 "next_state": "parse_ethernet"
125 }
126 ]
127 },
128 {
129 "name": "parse_ethernet",
130 "id": 1,
131 "parser_ops": [
132 {
133 "op": "extract",
134 "parameters": [
135 {
136 "type": "regular",
137 "value": "ethernet"
138 }
139 ]
140 }
141 ],
142 "transition_key": [],
143 "transitions": [
144 {
145 "value": "default",
146 "mask": null,
147 "next_state": null
148 }
149 ]
150 }
151 ]
152 }
153 ],
154 "deparsers": [
155 {
156 "name": "deparser",
157 "id": 0,
158 "order": [
159 "ethernet"
160 ]
161 }
162 ],
163 "meter_arrays": [],
164 "actions": [
165 {
166 "name": "set_egress_port",
167 "id": 0,
168 "runtime_data": [
169 {
170 "name": "port",
171 "bitwidth": 9
172 }
173 ],
174 "primitives": [
175 {
176 "op": "modify_field",
177 "parameters": [
178 {
179 "type": "field",
180 "value": [
181 "standard_metadata",
182 "egress_spec"
183 ]
184 },
185 {
186 "type": "runtime_data",
187 "value": 0
188 }
189 ]
190 }
191 ]
192 },
193 {
194 "name": "_drop",
195 "id": 1,
196 "runtime_data": [],
197 "primitives": [
198 {
199 "op": "modify_field",
200 "parameters": [
201 {
202 "type": "field",
203 "value": [
204 "standard_metadata",
205 "egress_spec"
206 ]
207 },
208 {
209 "type": "hexstr",
210 "value": "0x1ff"
211 }
212 ]
213 }
214 ]
215 },
216 {
217 "name": "flood",
218 "id": 2,
219 "runtime_data": [],
220 "primitives": [
221 {
222 "op": "modify_field",
223 "parameters": [
224 {
225 "type": "field",
226 "value": [
227 "intrinsic_metadata",
228 "mcast_grp"
229 ]
230 },
231 {
232 "type": "field",
233 "value": [
234 "standard_metadata",
235 "ingress_port"
236 ]
237 }
238 ]
239 }
240 ]
241 },
242 {
243 "name": "send_to_cpu",
244 "id": 3,
245 "runtime_data": [],
246 "primitives": [
247 {
248 "op": "modify_field",
249 "parameters": [
250 {
251 "type": "field",
252 "value": [
253 "standard_metadata",
254 "egress_spec"
255 ]
256 },
257 {
258 "type": "hexstr",
259 "value": "0xff"
260 }
261 ]
262 }
263 ]
264 }
265 ],
266 "pipelines": [
267 {
268 "name": "ingress",
269 "id": 0,
270 "init_table": "table0",
271 "tables": [
272 {
273 "name": "table0",
274 "id": 0,
275 "match_type": "ternary",
276 "type": "simple",
277 "max_size": 16384,
278 "with_counters": false,
279 "direct_meters": null,
280 "support_timeout": false,
281 "key": [
282 {
283 "match_type": "ternary",
284 "target": [
285 "standard_metadata",
286 "ingress_port"
287 ],
288 "mask": null
289 },
290 {
291 "match_type": "ternary",
292 "target": [
293 "ethernet",
294 "dstAddr"
295 ],
296 "mask": null
297 },
298 {
299 "match_type": "ternary",
300 "target": [
301 "ethernet",
302 "srcAddr"
303 ],
304 "mask": null
305 },
306 {
307 "match_type": "ternary",
308 "target": [
309 "ethernet",
310 "etherType"
311 ],
312 "mask": null
313 }
314 ],
315 "actions": [
316 "set_egress_port",
317 "flood",
318 "send_to_cpu",
319 "_drop"
320 ],
321 "next_tables": {
322 "set_egress_port": null,
323 "flood": null,
324 "send_to_cpu": null,
325 "_drop": null
326 },
327 "default_action": null,
328 "base_default_next": null
329 }
330 ],
331 "conditionals": []
332 },
333 {
334 "name": "egress",
335 "id": 1,
336 "init_table": null,
337 "tables": [],
338 "conditionals": []
339 }
340 ],
341 "calculations": [],
342 "checksums": [],
343 "learn_lists": [],
344 "field_lists": [],
345 "counter_arrays": [],
346 "register_arrays": [],
347 "force_arith": [
348 [
349 "standard_metadata",
350 "ingress_port"
351 ],
352 [
353 "standard_metadata",
354 "packet_length"
355 ],
356 [
357 "standard_metadata",
358 "egress_spec"
359 ],
360 [
361 "standard_metadata",
362 "egress_port"
363 ],
364 [
365 "standard_metadata",
366 "egress_instance"
367 ],
368 [
369 "standard_metadata",
370 "instance_type"
371 ],
372 [
373 "standard_metadata",
374 "clone_spec"
375 ],
376 [
377 "standard_metadata",
378 "_padding"
379 ],
380 [
381 "intrinsic_metadata",
382 "ingress_global_timestamp"
383 ],
384 [
385 "intrinsic_metadata",
386 "lf_field_list"
387 ],
388 [
389 "intrinsic_metadata",
390 "mcast_grp"
391 ],
392 [
393 "intrinsic_metadata",
394 "egress_rid"
395 ]
396 ]
397}