blob: 2235bec988fa5aeb0711eb4da5d4b015d036155a [file] [log] [blame]
Rich Lane1ac43002013-12-03 12:56:35 -08001// Copyright 2013, Big Switch Networks, Inc.
2//
3// LoxiGen is licensed under the Eclipse Public License,
4// version 1.0 (EPL), with the following special exception:
5//
6// LOXI Exception
7//
8// As a special exception to the terms of the EPL, you may
9// distribute libraries generated by LoxiGen (LoxiGen Libraries)
10// under the terms of your choice, provided that copyright and
11// licensing notices generated by LoxiGen are not altered or removed
12// from the LoxiGen Libraries and the notice provided below is (i)
13// included in the LoxiGen Libraries, if distributed in source code
14// form and (ii) included in any documentation for the LoxiGen
15// Libraries, if distributed in binary form.
16//
17// Notice: "Copyright 2013, Big Switch Networks, Inc.
18// This library was generated by the LoxiGen Compiler."
19//
20// You may not use this file except in compliance with the EPL or
21// LOXI Exception. You may obtain a copy of the EPL at:
22//
23// http://www.eclipse.org/legal/epl-v10.html
24//
25// Unless required by applicable law or agreed to in writing,
26// software distributed under the License is distributed on an "AS
27// IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
28// express or implied. See the EPL for the specific language
29// governing permissions and limitations under the EPL.
30
31#version 4
32
33struct of_bsn_tlv_port : of_bsn_tlv {
34 uint16_t type == 0;
35 uint16_t length;
36 of_port_no_t value;
37};
38
39struct of_bsn_tlv_mac : of_bsn_tlv {
40 uint16_t type == 1;
41 uint16_t length;
42 of_mac_addr_t value;
43};
44
45struct of_bsn_tlv_rx_packets : of_bsn_tlv {
46 uint16_t type == 2;
47 uint16_t length;
48 uint64_t value;
49};
50
51struct of_bsn_tlv_tx_packets : of_bsn_tlv {
52 uint16_t type == 3;
53 uint16_t length;
54 uint64_t value;
55};
Rich Lanee052b082014-01-03 16:43:15 -080056
57struct of_bsn_tlv_ipv4 : of_bsn_tlv {
58 uint16_t type == 4;
59 uint16_t length;
60 of_ipv4_t value;
61};
62
63struct of_bsn_tlv_idle_time : of_bsn_tlv {
64 uint16_t type == 5;
65 uint16_t length;
66 uint64_t value; /* Milliseconds */
67};
68
69struct of_bsn_tlv_vlan_vid : of_bsn_tlv {
70 uint16_t type == 6;
71 uint16_t length;
72 uint16_t value;
73};
74
75struct of_bsn_tlv_idle_notification : of_bsn_tlv {
76 uint16_t type == 7;
77 uint16_t length;
78};
Rich Lanea1258452014-01-24 14:25:00 -080079
80struct of_bsn_tlv_idle_timeout : of_bsn_tlv {
81 uint16_t type == 8;
82 uint16_t length;
83 uint32_t value; /* Milliseconds */
84};
85
86struct of_bsn_tlv_unicast_query_timeout : of_bsn_tlv {
87 uint16_t type == 9;
88 uint16_t length;
89 uint32_t value; /* Milliseconds */
90};
91
92struct of_bsn_tlv_broadcast_query_timeout : of_bsn_tlv {
93 uint16_t type == 10;
94 uint16_t length;
95 uint32_t value; /* Milliseconds */
96};
97
98struct of_bsn_tlv_request_packets : of_bsn_tlv {
99 uint16_t type == 11;
100 uint16_t length;
101 uint64_t value;
102};
103
104struct of_bsn_tlv_reply_packets : of_bsn_tlv {
105 uint16_t type == 12;
106 uint16_t length;
107 uint64_t value;
108};
109
110struct of_bsn_tlv_miss_packets : of_bsn_tlv {
111 uint16_t type == 13;
112 uint16_t length;
113 uint64_t value;
114};
Duc Pham9d29ed02014-01-30 16:23:16 -0800115
116struct of_bsn_tlv_circuit_id : of_bsn_tlv {
117 uint16_t type == 14;
118 uint16_t length;
119 of_octets_t value;
120};
Rich Lane5151f772014-03-20 15:32:33 -0700121
122struct of_bsn_tlv_udf_id : of_bsn_tlv {
123 uint16_t type == 15;
124 uint16_t length;
125 uint16_t value;
126};
127
128enum ofp_bsn_udf_anchor(wire_type=uint16_t) {
129 OFP_BSN_UDF_ANCHOR_PACKET_START = 0,
130 OFP_BSN_UDF_ANCHOR_L3_HEADER_START = 1,
131 OFP_BSN_UDF_ANCHOR_L4_HEADER_START = 2,
132};
133
134struct of_bsn_tlv_udf_anchor : of_bsn_tlv {
135 uint16_t type == 16;
136 uint16_t length;
137 enum ofp_bsn_udf_anchor value;
138};
139
140struct of_bsn_tlv_udf_offset : of_bsn_tlv {
141 uint16_t type == 17;
142 uint16_t length;
143 uint16_t value;
144};
145
146struct of_bsn_tlv_udf_length : of_bsn_tlv {
147 uint16_t type == 18;
148 uint16_t length;
149 uint16_t value;
150};
Duc Phamd07e6372014-04-01 17:54:15 -0700151
Duc Phamabe23a42014-04-02 10:39:34 -0700152struct of_bsn_tlv_vrf : of_bsn_tlv {
Duc Phamd07e6372014-04-01 17:54:15 -0700153 uint16_t type == 19;
154 uint16_t length;
Duc Pham48f997f2014-04-02 14:48:19 -0700155 uint32_t value;
Duc Phamd07e6372014-04-01 17:54:15 -0700156};
Duc Pham11b1b9d2014-05-07 16:56:59 -0700157
158struct of_bsn_tlv_queue_id : of_bsn_tlv {
159 uint16_t type == 20;
160 uint16_t length;
161 uint32_t value;
162};
163
164struct of_bsn_tlv_queue_weight : of_bsn_tlv {
165 uint16_t type == 21;
166 uint16_t length;
167 uint32_t value;
168};
Wilson Ng60e38ab2014-05-20 19:24:12 -0700169
Wilson Ng7c45cd52014-05-21 10:45:27 -0700170struct of_bsn_tlv_crc_enabled : of_bsn_tlv {
Wilson Ng60e38ab2014-05-20 19:24:12 -0700171 uint16_t type == 22;
172 uint16_t length;
Wilson Ng7c45cd52014-05-21 10:45:27 -0700173 uint8_t value;
Wilson Ng60e38ab2014-05-20 19:24:12 -0700174};
Rich Lane85b94e82014-09-24 13:24:53 -0700175
176struct of_bsn_tlv_external_ip : of_bsn_tlv {
177 uint16_t type == 23;
178 uint16_t length;
179 of_ipv4_t value;
180};
181
182struct of_bsn_tlv_external_mac : of_bsn_tlv {
183 uint16_t type == 24;
184 uint16_t length;
185 of_mac_addr_t value;
186};
187
188struct of_bsn_tlv_external_netmask : of_bsn_tlv {
189 uint16_t type == 25;
190 uint16_t length;
191 of_ipv4_t value;
192};
193
194struct of_bsn_tlv_external_gateway_ip : of_bsn_tlv {
195 uint16_t type == 26;
196 uint16_t length;
197 of_ipv4_t value;
198};
199
200struct of_bsn_tlv_internal_mac : of_bsn_tlv {
201 uint16_t type == 27;
202 uint16_t length;
203 of_mac_addr_t value;
204};
205
206struct of_bsn_tlv_internal_gateway_mac : of_bsn_tlv {
207 uint16_t type == 28;
208 uint16_t length;
209 of_mac_addr_t value;
210};
Rich Laneb9ccfa12014-10-01 16:25:12 -0700211
212struct of_bsn_tlv_external_gateway_mac : of_bsn_tlv {
213 uint16_t type == 29;
214 uint16_t length;
215 of_mac_addr_t value;
216};
Harshmeet Singhde7aed92014-10-06 13:09:40 -0700217
218struct of_bsn_tlv_sampling_rate : of_bsn_tlv {
219 uint16_t type == 30;
220 uint16_t length;
221 uint32_t value;
222};
223
224struct of_bsn_tlv_header_size : of_bsn_tlv {
225 uint16_t type == 31;
226 uint16_t length;
227 uint32_t value; /* bytes */
228};
229
230struct of_bsn_tlv_eth_src : of_bsn_tlv {
231 uint16_t type == 32;
232 uint16_t length;
233 of_mac_addr_t value;
234};
235
236struct of_bsn_tlv_eth_dst : of_bsn_tlv {
237 uint16_t type == 33;
238 uint16_t length;
239 of_mac_addr_t value;
240};
241
242struct of_bsn_tlv_ipv4_src : of_bsn_tlv {
243 uint16_t type == 34;
244 uint16_t length;
245 of_ipv4_t value;
246};
247
248struct of_bsn_tlv_ipv4_dst : of_bsn_tlv {
249 uint16_t type == 35;
250 uint16_t length;
251 of_ipv4_t value;
252};
253
254struct of_bsn_tlv_udp_src : of_bsn_tlv {
255 uint16_t type == 36;
256 uint16_t length;
257 uint16_t value;
258};
259
260struct of_bsn_tlv_udp_dst : of_bsn_tlv {
261 uint16_t type == 37;
262 uint16_t length;
263 uint16_t value;
264};
265
266struct of_bsn_tlv_sub_agent_id : of_bsn_tlv {
267 uint16_t type == 38;
268 uint16_t length;
269 uint32_t value;
270};
271
272struct of_bsn_tlv_tx_bytes : of_bsn_tlv {
273 uint16_t type == 39;
274 uint16_t length;
275 uint64_t value;
276};
Harshmeet Singhc1f2a392014-10-10 18:15:11 -0700277
Harshmeet Singh23fb16a2014-10-14 12:32:46 -0700278struct of_bsn_tlv_actor_system_priority: of_bsn_tlv {
Harshmeet Singhc1f2a392014-10-10 18:15:11 -0700279 uint16_t type == 40;
280 uint16_t length;
281 uint16_t value;
282};
283
Harshmeet Singh23fb16a2014-10-14 12:32:46 -0700284struct of_bsn_tlv_actor_system_mac: of_bsn_tlv {
Harshmeet Singhc1f2a392014-10-10 18:15:11 -0700285 uint16_t type == 41;
286 uint16_t length;
287 of_mac_addr_t value;
288};
289
Harshmeet Singh23fb16a2014-10-14 12:32:46 -0700290struct of_bsn_tlv_actor_port_priority: of_bsn_tlv {
Harshmeet Singhc1f2a392014-10-10 18:15:11 -0700291 uint16_t type == 42;
292 uint16_t length;
293 uint16_t value;
294};
295
Harshmeet Singh23fb16a2014-10-14 12:32:46 -0700296struct of_bsn_tlv_actor_port_num: of_bsn_tlv {
Harshmeet Singhc1f2a392014-10-10 18:15:11 -0700297 uint16_t type == 43;
298 uint16_t length;
299 uint16_t value;
300};
301
Harshmeet Singh23fb16a2014-10-14 12:32:46 -0700302struct of_bsn_tlv_actor_key: of_bsn_tlv {
Harshmeet Singhc1f2a392014-10-10 18:15:11 -0700303 uint16_t type == 44;
304 uint16_t length;
305 uint16_t value;
306};
307
308struct of_bsn_tlv_convergence_status: of_bsn_tlv {
309 uint16_t type == 45;
310 uint16_t length;
311 uint8_t value;
312};
Harshmeet Singh23fb16a2014-10-14 12:32:46 -0700313
314struct of_bsn_tlv_partner_system_priority: of_bsn_tlv {
315 uint16_t type == 47;
316 uint16_t length;
317 uint16_t value;
318};
319
320struct of_bsn_tlv_partner_system_mac: of_bsn_tlv {
321 uint16_t type == 48;
322 uint16_t length;
323 of_mac_addr_t value;
324};
325
326struct of_bsn_tlv_partner_port_priority: of_bsn_tlv {
327 uint16_t type == 49;
328 uint16_t length;
329 uint16_t value;
330};
331
332struct of_bsn_tlv_partner_port_num: of_bsn_tlv {
333 uint16_t type == 50;
334 uint16_t length;
335 uint16_t value;
336};
337
338struct of_bsn_tlv_partner_key: of_bsn_tlv {
339 uint16_t type == 51;
340 uint16_t length;
341 uint16_t value;
342};
Rich Lane991b9ff2014-10-17 12:30:44 -0700343
344struct of_bsn_tlv_name : of_bsn_tlv {
345 uint16_t type == 52;
346 uint16_t length;
347 of_octets_t value; /* UTF-8 encoded. Not null terminated. */
348};
Harshmeet Singh24ab88f2014-10-27 15:28:27 -0700349
Harshmeet Singh79135622014-10-27 16:11:14 -0700350enum ofp_bsn_lacp_state(wire_type=uint8_t, bitmask=True) {
351 OFP_BSN_LACP_STATE_ACTIVITY = 0x01,
352 OFP_BSN_LACP_STATE_TIMEOUT = 0x02,
353 OFP_BSN_LACP_STATE_AGGREGATION = 0x04,
354 OFP_BSN_LACP_STATE_SYNCHRONIZATION = 0x08,
355 OFP_BSN_LACP_STATE_COLLECTING = 0x10,
356 OFP_BSN_LACP_STATE_DISTRIBUTING = 0x20,
357 OFP_BSN_LACP_STATE_DEFAULTED = 0x40,
358 OFP_BSN_LACP_STATE_EXPIRED = 0x80,
359};
360
Harshmeet Singh24ab88f2014-10-27 15:28:27 -0700361struct of_bsn_tlv_actor_state: of_bsn_tlv {
362 uint16_t type == 53;
363 uint16_t length;
Harshmeet Singh79135622014-10-27 16:11:14 -0700364 enum ofp_bsn_lacp_state value;
Harshmeet Singh24ab88f2014-10-27 15:28:27 -0700365};
366
367struct of_bsn_tlv_partner_state: of_bsn_tlv {
368 uint16_t type == 54;
369 uint16_t length;
Harshmeet Singh79135622014-10-27 16:11:14 -0700370 enum ofp_bsn_lacp_state value;
Harshmeet Singh24ab88f2014-10-27 15:28:27 -0700371};
Rich Laned353d242014-11-05 10:11:19 -0800372
373struct of_bsn_tlv_data : of_bsn_tlv {
374 uint16_t type == 55;
375 uint16_t length;
376 of_octets_t value;
377};
Wilson Ng453c73a2014-11-05 11:35:36 -0800378
Wilson Ng6e6da302014-11-05 11:57:47 -0800379struct of_bsn_tlv_mac_mask : of_bsn_tlv {
Wilson Ng453c73a2014-11-05 11:35:36 -0800380 uint16_t type == 56;
381 uint16_t length;
382 of_mac_addr_t value;
383};
384
Wilson Ng6e6da302014-11-05 11:57:47 -0800385struct of_bsn_tlv_priority : of_bsn_tlv {
Wilson Ng453c73a2014-11-05 11:35:36 -0800386 uint16_t type == 57;
387 uint16_t length;
Wilson Ng0a2406a2014-11-05 14:01:51 -0800388 uint32_t value;
Wilson Ng453c73a2014-11-05 11:35:36 -0800389};