blob: a28d88bd215be4296b12c771cf45917755b9e11d [file] [log] [blame]
Rich Lane883919c2013-05-09 17:53:18 -07001// Copyright 2013, Big Switch Networks, Inc.
2//
3// LoxiGen is licensed under the Eclipse Public License, version 1.0 (EPL), with
4// the following special exception:
5//
6// LOXI Exception
7//
8// As a special exception to the terms of the EPL, you may distribute libraries
9// generated by LoxiGen (LoxiGen Libraries) under the terms of your choice, provided
10// that copyright and licensing notices generated by LoxiGen are not altered or removed
11// from the LoxiGen Libraries and the notice provided below is (i) included in
12// the LoxiGen Libraries, if distributed in source code form and (ii) included in any
13// documentation for the LoxiGen Libraries, if distributed in binary form.
14//
15// Notice: "Copyright 2013, Big Switch Networks, Inc. This library was generated by the LoxiGen Compiler."
16//
17// You may not use this file except in compliance with the EPL or LOXI Exception. You may obtain
18// a copy of the EPL at:
19//
20// http://www.eclipse.org/legal/epl-v10.html
21//
22// Unless required by applicable law or agreed to in writing, software
23// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
24// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
25// EPL for the specific language governing permissions and limitations
26// under the EPL.
27//
28// Also derived from the OpenFlow header files which have these copyrights:
29// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
30// Copyright (c) 2011, 2012 Open Networking Foundation
31
32#version 3
33#version 4
34
35/* TODO fix the C backend to not require this */
36struct of_oxm {
37 uint32_t type_len;
38};
39
40
41struct of_oxm_arp_op {
42 uint32_t type_len;
43 uint16_t value;
44};
45
46struct of_oxm_arp_op_masked {
47 uint32_t type_len;
48 uint16_t value;
49 uint16_t value_mask;
50};
51
52struct of_oxm_arp_sha {
53 uint32_t type_len;
54 of_mac_addr_t value;
55};
56
57struct of_oxm_arp_sha_masked {
58 uint32_t type_len;
59 of_mac_addr_t value;
60 of_mac_addr_t value_mask;
61};
62
63struct of_oxm_arp_spa {
64 uint32_t type_len;
65 uint32_t value;
66};
67
68struct of_oxm_arp_spa_masked {
69 uint32_t type_len;
70 uint32_t value;
71 uint32_t value_mask;
72};
73
74struct of_oxm_arp_tha {
75 uint32_t type_len;
76 of_mac_addr_t value;
77};
78
79struct of_oxm_arp_tha_masked {
80 uint32_t type_len;
81 of_mac_addr_t value;
82 of_mac_addr_t value_mask;
83};
84
85struct of_oxm_arp_tpa {
86 uint32_t type_len;
87 uint32_t value;
88};
89
90struct of_oxm_arp_tpa_masked {
91 uint32_t type_len;
92 uint32_t value;
93 uint32_t value_mask;
94};
95
96struct of_oxm_eth_dst {
97 uint32_t type_len;
98 of_mac_addr_t value;
99};
100
101struct of_oxm_eth_dst_masked {
102 uint32_t type_len;
103 of_mac_addr_t value;
104 of_mac_addr_t value_mask;
105};
106
107struct of_oxm_eth_src {
108 uint32_t type_len;
109 of_mac_addr_t value;
110};
111
112struct of_oxm_eth_src_masked {
113 uint32_t type_len;
114 of_mac_addr_t value;
115 of_mac_addr_t value_mask;
116};
117
118struct of_oxm_eth_type {
119 uint32_t type_len;
120 uint16_t value;
121};
122
123struct of_oxm_eth_type_masked {
124 uint32_t type_len;
125 uint16_t value;
126 uint16_t value_mask;
127};
128
129struct of_oxm_icmpv4_code {
130 uint32_t type_len;
131 uint8_t value;
132};
133
134struct of_oxm_icmpv4_code_masked {
135 uint32_t type_len;
136 uint8_t value;
137 uint8_t value_mask;
138};
139
140struct of_oxm_icmpv4_type {
141 uint32_t type_len;
142 uint8_t value;
143};
144
145struct of_oxm_icmpv4_type_masked {
146 uint32_t type_len;
147 uint8_t value;
148 uint8_t value_mask;
149};
150
151struct of_oxm_icmpv6_code {
152 uint32_t type_len;
153 uint8_t value;
154};
155
156struct of_oxm_icmpv6_code_masked {
157 uint32_t type_len;
158 uint8_t value;
159 uint8_t value_mask;
160};
161
162struct of_oxm_icmpv6_type {
163 uint32_t type_len;
164 uint8_t value;
165};
166
167struct of_oxm_icmpv6_type_masked {
168 uint32_t type_len;
169 uint8_t value;
170 uint8_t value_mask;
171};
172
173struct of_oxm_in_phy_port {
174 uint32_t type_len;
175 of_port_no_t value;
176};
177
178struct of_oxm_in_phy_port_masked {
179 uint32_t type_len;
180 of_port_no_t value;
181 of_port_no_t value_mask;
182};
183
184struct of_oxm_in_port {
185 uint32_t type_len;
186 of_port_no_t value;
187};
188
189struct of_oxm_in_port_masked {
190 uint32_t type_len;
191 of_port_no_t value;
192 of_port_no_t value_mask;
193};
194
195struct of_oxm_ip_dscp {
196 uint32_t type_len;
197 uint8_t value;
198};
199
200struct of_oxm_ip_dscp_masked {
201 uint32_t type_len;
202 uint8_t value;
203 uint8_t value_mask;
204};
205
206struct of_oxm_ip_ecn {
207 uint32_t type_len;
208 uint8_t value;
209};
210
211struct of_oxm_ip_ecn_masked {
212 uint32_t type_len;
213 uint8_t value;
214 uint8_t value_mask;
215};
216
217struct of_oxm_ip_proto {
218 uint32_t type_len;
219 uint8_t value;
220};
221
222struct of_oxm_ip_proto_masked {
223 uint32_t type_len;
224 uint8_t value;
225 uint8_t value_mask;
226};
227
228struct of_oxm_ipv4_dst {
229 uint32_t type_len;
230 uint32_t value;
231};
232
233struct of_oxm_ipv4_dst_masked {
234 uint32_t type_len;
235 uint32_t value;
236 uint32_t value_mask;
237};
238
239struct of_oxm_ipv4_src {
240 uint32_t type_len;
241 uint32_t value;
242};
243
244struct of_oxm_ipv4_src_masked {
245 uint32_t type_len;
246 uint32_t value;
247 uint32_t value_mask;
248};
249
250struct of_oxm_ipv6_dst {
251 uint32_t type_len;
252 of_ipv6_t value;
253};
254
255struct of_oxm_ipv6_dst_masked {
256 uint32_t type_len;
257 of_ipv6_t value;
258 of_ipv6_t value_mask;
259};
260
261struct of_oxm_ipv6_flabel {
262 uint32_t type_len;
263 uint32_t value;
264};
265
266struct of_oxm_ipv6_flabel_masked {
267 uint32_t type_len;
268 uint32_t value;
269 uint32_t value_mask;
270};
271
272struct of_oxm_ipv6_nd_sll {
273 uint32_t type_len;
274 of_mac_addr_t value;
275};
276
277struct of_oxm_ipv6_nd_sll_masked {
278 uint32_t type_len;
279 of_mac_addr_t value;
280 of_mac_addr_t value_mask;
281};
282
283struct of_oxm_ipv6_nd_target {
284 uint32_t type_len;
285 of_ipv6_t value;
286};
287
288struct of_oxm_ipv6_nd_target_masked {
289 uint32_t type_len;
290 of_ipv6_t value;
291 of_ipv6_t value_mask;
292};
293
294struct of_oxm_ipv6_nd_tll {
295 uint32_t type_len;
296 of_mac_addr_t value;
297};
298
299struct of_oxm_ipv6_nd_tll_masked {
300 uint32_t type_len;
301 of_mac_addr_t value;
302 of_mac_addr_t value_mask;
303};
304
305struct of_oxm_ipv6_src {
306 uint32_t type_len;
307 of_ipv6_t value;
308};
309
310struct of_oxm_ipv6_src_masked {
311 uint32_t type_len;
312 of_ipv6_t value;
313 of_ipv6_t value_mask;
314};
315
316struct of_oxm_metadata {
317 uint32_t type_len;
318 uint64_t value;
319};
320
321struct of_oxm_metadata_masked {
322 uint32_t type_len;
323 uint64_t value;
324 uint64_t value_mask;
325};
326
327struct of_oxm_mpls_label {
328 uint32_t type_len;
329 uint32_t value;
330};
331
332struct of_oxm_mpls_label_masked {
333 uint32_t type_len;
334 uint32_t value;
335 uint32_t value_mask;
336};
337
338struct of_oxm_mpls_tc {
339 uint32_t type_len;
340 uint8_t value;
341};
342
343struct of_oxm_mpls_tc_masked {
344 uint32_t type_len;
345 uint8_t value;
346 uint8_t value_mask;
347};
348
349struct of_oxm_sctp_dst {
350 uint32_t type_len;
351 uint16_t value;
352};
353
354struct of_oxm_sctp_dst_masked {
355 uint32_t type_len;
356 uint16_t value;
357 uint16_t value_mask;
358};
359
360struct of_oxm_sctp_src {
361 uint32_t type_len;
362 uint16_t value;
363};
364
365struct of_oxm_sctp_src_masked {
366 uint32_t type_len;
367 uint16_t value;
368 uint16_t value_mask;
369};
370
371struct of_oxm_tcp_dst {
372 uint32_t type_len;
373 uint16_t value;
374};
375
376struct of_oxm_tcp_dst_masked {
377 uint32_t type_len;
378 uint16_t value;
379 uint16_t value_mask;
380};
381
382struct of_oxm_tcp_src {
383 uint32_t type_len;
384 uint16_t value;
385};
386
387struct of_oxm_tcp_src_masked {
388 uint32_t type_len;
389 uint16_t value;
390 uint16_t value_mask;
391};
392
393struct of_oxm_udp_dst {
394 uint32_t type_len;
395 uint16_t value;
396};
397
398struct of_oxm_udp_dst_masked {
399 uint32_t type_len;
400 uint16_t value;
401 uint16_t value_mask;
402};
403
404struct of_oxm_udp_src {
405 uint32_t type_len;
406 uint16_t value;
407};
408
409struct of_oxm_udp_src_masked {
410 uint32_t type_len;
411 uint16_t value;
412 uint16_t value_mask;
413};
414
415struct of_oxm_vlan_pcp {
416 uint32_t type_len;
417 uint8_t value;
418};
419
420struct of_oxm_vlan_pcp_masked {
421 uint32_t type_len;
422 uint8_t value;
423 uint8_t value_mask;
424};
425
426struct of_oxm_vlan_vid {
427 uint32_t type_len;
428 uint16_t value;
429};
430
431struct of_oxm_vlan_vid_masked {
432 uint32_t type_len;
433 uint16_t value;
434 uint16_t value_mask;
435};