blob: 84f9158d2134cc9dc6b5689e8f7c73436e77dd65 [file] [log] [blame]
Murat Parlakisikf95672c2016-12-05 00:53:17 -08001// Copyright 2013-2017, Big Switch Networks, Inc.
Rich Lane1ac43002013-12-03 12:56:35 -08002//
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
Rich Lane4b1d8f42014-10-31 15:25:14 -070032#version 5
Murat Parlakisikf95672c2016-12-05 00:53:17 -080033#version 6
Rich Lane1ac43002013-12-03 12:56:35 -080034
35struct of_bsn_tlv_port : of_bsn_tlv {
36 uint16_t type == 0;
37 uint16_t length;
38 of_port_no_t value;
39};
40
41struct of_bsn_tlv_mac : of_bsn_tlv {
42 uint16_t type == 1;
43 uint16_t length;
44 of_mac_addr_t value;
45};
46
47struct of_bsn_tlv_rx_packets : of_bsn_tlv {
48 uint16_t type == 2;
49 uint16_t length;
50 uint64_t value;
51};
52
53struct of_bsn_tlv_tx_packets : of_bsn_tlv {
54 uint16_t type == 3;
55 uint16_t length;
56 uint64_t value;
57};
Rich Lanee052b082014-01-03 16:43:15 -080058
59struct of_bsn_tlv_ipv4 : of_bsn_tlv {
60 uint16_t type == 4;
61 uint16_t length;
62 of_ipv4_t value;
63};
64
65struct of_bsn_tlv_idle_time : of_bsn_tlv {
66 uint16_t type == 5;
67 uint16_t length;
68 uint64_t value; /* Milliseconds */
69};
70
71struct of_bsn_tlv_vlan_vid : of_bsn_tlv {
72 uint16_t type == 6;
73 uint16_t length;
74 uint16_t value;
75};
76
77struct of_bsn_tlv_idle_notification : of_bsn_tlv {
78 uint16_t type == 7;
79 uint16_t length;
80};
Rich Lanea1258452014-01-24 14:25:00 -080081
82struct of_bsn_tlv_idle_timeout : of_bsn_tlv {
83 uint16_t type == 8;
84 uint16_t length;
85 uint32_t value; /* Milliseconds */
86};
87
88struct of_bsn_tlv_unicast_query_timeout : of_bsn_tlv {
89 uint16_t type == 9;
90 uint16_t length;
91 uint32_t value; /* Milliseconds */
92};
93
94struct of_bsn_tlv_broadcast_query_timeout : of_bsn_tlv {
95 uint16_t type == 10;
96 uint16_t length;
97 uint32_t value; /* Milliseconds */
98};
99
100struct of_bsn_tlv_request_packets : of_bsn_tlv {
101 uint16_t type == 11;
102 uint16_t length;
103 uint64_t value;
104};
105
106struct of_bsn_tlv_reply_packets : of_bsn_tlv {
107 uint16_t type == 12;
108 uint16_t length;
109 uint64_t value;
110};
111
112struct of_bsn_tlv_miss_packets : of_bsn_tlv {
113 uint16_t type == 13;
114 uint16_t length;
115 uint64_t value;
116};
Duc Pham9d29ed02014-01-30 16:23:16 -0800117
118struct of_bsn_tlv_circuit_id : of_bsn_tlv {
119 uint16_t type == 14;
120 uint16_t length;
121 of_octets_t value;
122};
Rich Lane5151f772014-03-20 15:32:33 -0700123
124struct of_bsn_tlv_udf_id : of_bsn_tlv {
125 uint16_t type == 15;
126 uint16_t length;
127 uint16_t value;
128};
129
130enum ofp_bsn_udf_anchor(wire_type=uint16_t) {
131 OFP_BSN_UDF_ANCHOR_PACKET_START = 0,
132 OFP_BSN_UDF_ANCHOR_L3_HEADER_START = 1,
133 OFP_BSN_UDF_ANCHOR_L4_HEADER_START = 2,
134};
135
136struct of_bsn_tlv_udf_anchor : of_bsn_tlv {
137 uint16_t type == 16;
138 uint16_t length;
139 enum ofp_bsn_udf_anchor value;
140};
141
142struct of_bsn_tlv_udf_offset : of_bsn_tlv {
143 uint16_t type == 17;
144 uint16_t length;
145 uint16_t value;
146};
147
148struct of_bsn_tlv_udf_length : of_bsn_tlv {
149 uint16_t type == 18;
150 uint16_t length;
151 uint16_t value;
152};
Duc Phamd07e6372014-04-01 17:54:15 -0700153
Duc Phamabe23a42014-04-02 10:39:34 -0700154struct of_bsn_tlv_vrf : of_bsn_tlv {
Duc Phamd07e6372014-04-01 17:54:15 -0700155 uint16_t type == 19;
156 uint16_t length;
Duc Pham48f997f2014-04-02 14:48:19 -0700157 uint32_t value;
Duc Phamd07e6372014-04-01 17:54:15 -0700158};
Duc Pham11b1b9d2014-05-07 16:56:59 -0700159
160struct of_bsn_tlv_queue_id : of_bsn_tlv {
161 uint16_t type == 20;
162 uint16_t length;
163 uint32_t value;
164};
165
166struct of_bsn_tlv_queue_weight : of_bsn_tlv {
167 uint16_t type == 21;
168 uint16_t length;
169 uint32_t value;
170};
Wilson Ng60e38ab2014-05-20 19:24:12 -0700171
Wilson Ng7c45cd52014-05-21 10:45:27 -0700172struct of_bsn_tlv_crc_enabled : of_bsn_tlv {
Wilson Ng60e38ab2014-05-20 19:24:12 -0700173 uint16_t type == 22;
174 uint16_t length;
Wilson Ng7c45cd52014-05-21 10:45:27 -0700175 uint8_t value;
Wilson Ng60e38ab2014-05-20 19:24:12 -0700176};
Rich Lane85b94e82014-09-24 13:24:53 -0700177
178struct of_bsn_tlv_external_ip : of_bsn_tlv {
179 uint16_t type == 23;
180 uint16_t length;
181 of_ipv4_t value;
182};
183
184struct of_bsn_tlv_external_mac : of_bsn_tlv {
185 uint16_t type == 24;
186 uint16_t length;
187 of_mac_addr_t value;
188};
189
190struct of_bsn_tlv_external_netmask : of_bsn_tlv {
191 uint16_t type == 25;
192 uint16_t length;
193 of_ipv4_t value;
194};
195
196struct of_bsn_tlv_external_gateway_ip : of_bsn_tlv {
197 uint16_t type == 26;
198 uint16_t length;
199 of_ipv4_t value;
200};
201
202struct of_bsn_tlv_internal_mac : of_bsn_tlv {
203 uint16_t type == 27;
204 uint16_t length;
205 of_mac_addr_t value;
206};
207
208struct of_bsn_tlv_internal_gateway_mac : of_bsn_tlv {
209 uint16_t type == 28;
210 uint16_t length;
211 of_mac_addr_t value;
212};
Rich Laneb9ccfa12014-10-01 16:25:12 -0700213
214struct of_bsn_tlv_external_gateway_mac : of_bsn_tlv {
215 uint16_t type == 29;
216 uint16_t length;
217 of_mac_addr_t value;
218};
Harshmeet Singhde7aed92014-10-06 13:09:40 -0700219
220struct of_bsn_tlv_sampling_rate : of_bsn_tlv {
221 uint16_t type == 30;
222 uint16_t length;
223 uint32_t value;
224};
225
226struct of_bsn_tlv_header_size : of_bsn_tlv {
227 uint16_t type == 31;
228 uint16_t length;
229 uint32_t value; /* bytes */
230};
231
232struct of_bsn_tlv_eth_src : of_bsn_tlv {
233 uint16_t type == 32;
234 uint16_t length;
235 of_mac_addr_t value;
236};
237
238struct of_bsn_tlv_eth_dst : of_bsn_tlv {
239 uint16_t type == 33;
240 uint16_t length;
241 of_mac_addr_t value;
242};
243
244struct of_bsn_tlv_ipv4_src : of_bsn_tlv {
245 uint16_t type == 34;
246 uint16_t length;
247 of_ipv4_t value;
248};
249
250struct of_bsn_tlv_ipv4_dst : of_bsn_tlv {
251 uint16_t type == 35;
252 uint16_t length;
253 of_ipv4_t value;
254};
255
256struct of_bsn_tlv_udp_src : of_bsn_tlv {
257 uint16_t type == 36;
258 uint16_t length;
259 uint16_t value;
260};
261
262struct of_bsn_tlv_udp_dst : of_bsn_tlv {
263 uint16_t type == 37;
264 uint16_t length;
265 uint16_t value;
266};
267
268struct of_bsn_tlv_sub_agent_id : of_bsn_tlv {
269 uint16_t type == 38;
270 uint16_t length;
271 uint32_t value;
272};
273
274struct of_bsn_tlv_tx_bytes : of_bsn_tlv {
275 uint16_t type == 39;
276 uint16_t length;
277 uint64_t value;
278};
Harshmeet Singhc1f2a392014-10-10 18:15:11 -0700279
Harshmeet Singh23fb16a2014-10-14 12:32:46 -0700280struct of_bsn_tlv_actor_system_priority: of_bsn_tlv {
Harshmeet Singhc1f2a392014-10-10 18:15:11 -0700281 uint16_t type == 40;
282 uint16_t length;
283 uint16_t value;
284};
285
Harshmeet Singh23fb16a2014-10-14 12:32:46 -0700286struct of_bsn_tlv_actor_system_mac: of_bsn_tlv {
Harshmeet Singhc1f2a392014-10-10 18:15:11 -0700287 uint16_t type == 41;
288 uint16_t length;
289 of_mac_addr_t value;
290};
291
Harshmeet Singh23fb16a2014-10-14 12:32:46 -0700292struct of_bsn_tlv_actor_port_priority: of_bsn_tlv {
Harshmeet Singhc1f2a392014-10-10 18:15:11 -0700293 uint16_t type == 42;
294 uint16_t length;
295 uint16_t value;
296};
297
Harshmeet Singh23fb16a2014-10-14 12:32:46 -0700298struct of_bsn_tlv_actor_port_num: of_bsn_tlv {
Harshmeet Singhc1f2a392014-10-10 18:15:11 -0700299 uint16_t type == 43;
300 uint16_t length;
301 uint16_t value;
302};
303
Harshmeet Singh23fb16a2014-10-14 12:32:46 -0700304struct of_bsn_tlv_actor_key: of_bsn_tlv {
Harshmeet Singhc1f2a392014-10-10 18:15:11 -0700305 uint16_t type == 44;
306 uint16_t length;
307 uint16_t value;
308};
309
310struct of_bsn_tlv_convergence_status: of_bsn_tlv {
311 uint16_t type == 45;
312 uint16_t length;
313 uint8_t value;
314};
Harshmeet Singh23fb16a2014-10-14 12:32:46 -0700315
316struct of_bsn_tlv_partner_system_priority: of_bsn_tlv {
317 uint16_t type == 47;
318 uint16_t length;
319 uint16_t value;
320};
321
322struct of_bsn_tlv_partner_system_mac: of_bsn_tlv {
323 uint16_t type == 48;
324 uint16_t length;
325 of_mac_addr_t value;
326};
327
328struct of_bsn_tlv_partner_port_priority: of_bsn_tlv {
329 uint16_t type == 49;
330 uint16_t length;
331 uint16_t value;
332};
333
334struct of_bsn_tlv_partner_port_num: of_bsn_tlv {
335 uint16_t type == 50;
336 uint16_t length;
337 uint16_t value;
338};
339
340struct of_bsn_tlv_partner_key: of_bsn_tlv {
341 uint16_t type == 51;
342 uint16_t length;
343 uint16_t value;
344};
Rich Lane991b9ff2014-10-17 12:30:44 -0700345
346struct of_bsn_tlv_name : of_bsn_tlv {
347 uint16_t type == 52;
348 uint16_t length;
349 of_octets_t value; /* UTF-8 encoded. Not null terminated. */
350};
Harshmeet Singh24ab88f2014-10-27 15:28:27 -0700351
Harshmeet Singh79135622014-10-27 16:11:14 -0700352enum ofp_bsn_lacp_state(wire_type=uint8_t, bitmask=True) {
353 OFP_BSN_LACP_STATE_ACTIVITY = 0x01,
354 OFP_BSN_LACP_STATE_TIMEOUT = 0x02,
355 OFP_BSN_LACP_STATE_AGGREGATION = 0x04,
356 OFP_BSN_LACP_STATE_SYNCHRONIZATION = 0x08,
357 OFP_BSN_LACP_STATE_COLLECTING = 0x10,
358 OFP_BSN_LACP_STATE_DISTRIBUTING = 0x20,
359 OFP_BSN_LACP_STATE_DEFAULTED = 0x40,
360 OFP_BSN_LACP_STATE_EXPIRED = 0x80,
361};
362
Harshmeet Singh24ab88f2014-10-27 15:28:27 -0700363struct of_bsn_tlv_actor_state: of_bsn_tlv {
364 uint16_t type == 53;
365 uint16_t length;
Harshmeet Singh79135622014-10-27 16:11:14 -0700366 enum ofp_bsn_lacp_state value;
Harshmeet Singh24ab88f2014-10-27 15:28:27 -0700367};
368
369struct of_bsn_tlv_partner_state: of_bsn_tlv {
370 uint16_t type == 54;
371 uint16_t length;
Harshmeet Singh79135622014-10-27 16:11:14 -0700372 enum ofp_bsn_lacp_state value;
Harshmeet Singh24ab88f2014-10-27 15:28:27 -0700373};
Rich Laned353d242014-11-05 10:11:19 -0800374
375struct of_bsn_tlv_data : of_bsn_tlv {
376 uint16_t type == 55;
377 uint16_t length;
378 of_octets_t value;
379};
Wilson Ng453c73a2014-11-05 11:35:36 -0800380
Wilson Ng6e6da302014-11-05 11:57:47 -0800381struct of_bsn_tlv_mac_mask : of_bsn_tlv {
Wilson Ng453c73a2014-11-05 11:35:36 -0800382 uint16_t type == 56;
383 uint16_t length;
384 of_mac_addr_t value;
385};
386
Wilson Ng6e6da302014-11-05 11:57:47 -0800387struct of_bsn_tlv_priority : of_bsn_tlv {
Wilson Ng453c73a2014-11-05 11:35:36 -0800388 uint16_t type == 57;
389 uint16_t length;
Wilson Ng0a2406a2014-11-05 14:01:51 -0800390 uint32_t value;
Wilson Ng453c73a2014-11-05 11:35:36 -0800391};
Harshmeet Singh6086fee2014-11-20 11:03:46 -0800392
393struct of_bsn_tlv_interval : of_bsn_tlv {
394 uint16_t type == 58;
395 uint16_t length;
Harshmeet Singhc717bc02014-11-20 12:51:38 -0800396 uint32_t value; /* Milliseconds */
Harshmeet Singh6086fee2014-11-20 11:03:46 -0800397};
Rich Lane4cf08bd2014-12-03 12:47:00 -0800398
399/* A reference to an entry in another gentable */
400struct of_bsn_tlv_reference : of_bsn_tlv {
401 uint16_t type == 59;
402 uint16_t length;
403 uint16_t table_id;
404 list(of_bsn_tlv_t) key;
405};
Rich Lane37632bc2014-12-05 15:01:22 -0800406
Harshmeet Singhdbe49822014-12-04 14:49:24 -0800407struct of_bsn_tlv_ipv4_netmask : of_bsn_tlv {
408 uint16_t type == 60;
409 uint16_t length;
410 of_ipv4_t value;
411};
Wilson Ngc68f5d02014-12-04 15:59:28 -0800412
413struct of_bsn_tlv_mpls_label : of_bsn_tlv {
414 uint16_t type == 61;
415 uint16_t length;
416 uint32_t value;
417};
418
419struct of_bsn_tlv_mpls_control_word : of_bsn_tlv {
420 uint16_t type == 62;
421 uint16_t length;
422 uint8_t value;
423};
424
425struct of_bsn_tlv_mpls_sequenced : of_bsn_tlv {
426 uint16_t type == 63;
427 uint16_t length;
428 uint8_t value;
429};
Rich Lane2eace7d2014-12-17 11:32:50 -0800430
431struct of_bsn_tlv_bucket : of_bsn_tlv {
432 uint16_t type == 64;
433 uint16_t length;
434 list(of_bsn_tlv_t) value;
435};
Rich Lanec0df60f2015-01-12 17:44:17 -0800436
437struct of_bsn_tlv_tcp_src : of_bsn_tlv {
438 uint16_t type == 65;
439 uint16_t length;
440 uint16_t value;
441};
442
443struct of_bsn_tlv_tcp_dst : of_bsn_tlv {
444 uint16_t type == 66;
445 uint16_t length;
446 uint16_t value;
447};
448
449struct of_bsn_tlv_ip_proto : of_bsn_tlv {
450 uint16_t type == 67;
451 uint16_t length;
452 uint8_t value;
453};
454
455struct of_bsn_tlv_icmp_type : of_bsn_tlv {
456 uint16_t type == 68;
457 uint16_t length;
458 uint8_t value;
459};
460
461struct of_bsn_tlv_icmp_code : of_bsn_tlv {
462 uint16_t type == 69;
463 uint16_t length;
464 uint8_t value;
465};
466
467struct of_bsn_tlv_icmp_id : of_bsn_tlv {
468 uint16_t type == 70;
469 uint16_t length;
470 uint16_t value;
471};
Rich Lane8ec889f2015-01-21 15:54:14 -0800472
473struct of_bsn_tlv_rx_bytes : of_bsn_tlv {
474 uint16_t type == 71;
475 uint16_t length;
476 uint64_t value;
477};
Harshmeet Singhbda83b62015-04-02 12:42:47 -0700478
479struct of_bsn_tlv_vlan_pcp : of_bsn_tlv {
480 uint16_t type == 72;
481 uint16_t length;
482 uint8_t value;
483};
Shudong Zhoua5e7ec82015-04-10 16:13:50 -0700484
485struct of_bsn_tlv_strip_vlan_on_egress : of_bsn_tlv {
486 uint16_t type == 73;
Shudong Zhou99a7d2e2015-04-10 19:00:32 -0700487 uint16_t length;
Shudong Zhoua5e7ec82015-04-10 16:13:50 -0700488};
489
490struct of_bsn_tlv_set_loopback_mode: of_bsn_tlv {
491 uint16_t type == 74;
Shudong Zhou99a7d2e2015-04-10 19:00:32 -0700492 uint16_t length;
Shudong Zhoua5e7ec82015-04-10 16:13:50 -0700493};
494
495struct of_bsn_tlv_strip_mpls_l2_on_ingress : of_bsn_tlv {
496 uint16_t type == 75;
Shudong Zhou99a7d2e2015-04-10 19:00:32 -0700497 uint16_t length;
Shudong Zhoua5e7ec82015-04-10 16:13:50 -0700498};
499
500struct of_bsn_tlv_strip_mpls_l3_on_ingress : of_bsn_tlv {
501 uint16_t type == 76;
Shudong Zhou99a7d2e2015-04-10 19:00:32 -0700502 uint16_t length;
Shudong Zhoua5e7ec82015-04-10 16:13:50 -0700503};
Rich Laned0c60352015-06-24 16:50:39 -0700504
505struct of_bsn_tlv_vlan_vid_mask : of_bsn_tlv {
506 uint16_t type == 77;
507 uint16_t length;
508 uint16_t value;
509};
Rich Lanea9272452015-06-30 00:39:41 -0700510
511struct of_bsn_tlv_igmp_snooping : of_bsn_tlv {
512 uint16_t type == 78;
513 uint16_t length;
514};
515
516struct of_bsn_tlv_l2_multicast_lookup : of_bsn_tlv {
517 uint16_t type == 79;
518 uint16_t length;
519};
Rich Lane27d8ec12015-07-01 15:58:19 -0700520
521struct of_bsn_tlv_generation_id : of_bsn_tlv {
522 uint16_t type == 80;
523 uint16_t length;
524 uint64_t value;
525};
526
527enum ofp_bsn_anchor(wire_type=uint16_t) {
528 OFP_BSN_ANCHOR_PACKET_START = 0,
529 OFP_BSN_ANCHOR_L3_HEADER_START = 1,
530 OFP_BSN_ANCHOR_L4_HEADER_START = 2,
531 OFP_BSN_ANCHOR_L4_PAYLOAD_START = 3,
532};
533
534struct of_bsn_tlv_anchor : of_bsn_tlv {
535 uint16_t type == 81;
536 uint16_t length;
537 enum ofp_bsn_anchor value;
538};
539
540struct of_bsn_tlv_offset : of_bsn_tlv {
541 uint16_t type == 82;
542 uint16_t length;
543 uint16_t value;
544};
Rich Lane4c171112015-08-18 13:15:34 -0700545
546struct of_bsn_tlv_negate : of_bsn_tlv {
547 uint16_t type == 83;
548 uint16_t length;
549};
Harshmeet Singh916ead22015-08-21 14:31:33 -0700550
551struct of_bsn_tlv_ipv6 : of_bsn_tlv {
552 uint16_t type == 84;
553 uint16_t length;
Murat Parlakisikf95672c2016-12-05 00:53:17 -0800554 of_ipv6_t value;
555};
556
557enum ofp_bsn_decap(wire_type=uint16_t) {
558 OFP_BSN_DECAP_VXLAN = 0,
559 OFP_BSN_DECAP_ERSPAN = 1,
560 OFP_BSN_DECAP_L2_GRE = 2,
561 OFP_BSN_DECAP_NVGRE = 3,
562 OFP_BSN_DECAP_CAPWAP = 4,
563 OFP_BSN_DECAP_L2_MPLS = 5,
564 OFP_BSN_DECAP_L3_GRE = 6,
565 OFP_BSN_DECAP_GTP = 7,
566 OFP_BSN_DECAP_L3_MPLS = 8,
567};
568
569struct of_bsn_tlv_decap : of_bsn_tlv {
570 uint16_t type == 85;
571 uint16_t length;
572 enum ofp_bsn_decap value;
573};
574
575struct of_bsn_tlv_vni : of_bsn_tlv {
576 uint16_t type == 86;
577 uint16_t length;
578 uint32_t value;
579};
580
581struct of_bsn_tlv_mcg_type_vxlan : of_bsn_tlv {
582 uint16_t type == 87;
583 uint16_t length;
584};
585
586enum ofp_bsn_port_vxlan_mode(wire_type=uint8_t) {
587 OFP_BSN_PORT_VXLAN_RECIRCULATION_ENABLE = 0,
588 OFP_BSN_PORT_VXLAN_TERMINATION_ENABLE = 1,
589};
590
591struct of_bsn_tlv_port_vxlan_mode : of_bsn_tlv {
592 uint16_t type == 88;
593 uint16_t length;
594 enum ofp_bsn_port_vxlan_mode value;
595};
596
597enum ofp_bsn_rate_unit(wire_type=uint8_t) {
598 OFP_BSN_RATE_UNIT_PPS = 0, /* Packets per second */
599 OFP_BSN_RATE_UNIT_KBITPS = 1, /* Kilobits per second */
600};
601
602struct of_bsn_tlv_rate_unit : of_bsn_tlv {
603 uint16_t type == 89;
604 uint16_t length;
605 enum ofp_bsn_rate_unit value;
606};
607
608struct of_bsn_tlv_broadcast_rate : of_bsn_tlv {
609 uint16_t type == 90;
610 uint16_t length;
611 uint32_t value;
612};
613
614struct of_bsn_tlv_known_multicast_rate : of_bsn_tlv {
615 uint16_t type == 91;
616 uint16_t length;
617 uint32_t value;
618};
619
620struct of_bsn_tlv_unknown_multicast_rate : of_bsn_tlv {
621 uint16_t type == 92;
622 uint16_t length;
623 uint32_t value;
624};
625
626struct of_bsn_tlv_unicast_rate : of_bsn_tlv {
627 uint16_t type == 93;
628 uint16_t length;
629 uint32_t value;
630};
631
632struct of_bsn_tlv_nexthop_type_vxlan : of_bsn_tlv {
633 uint16_t type == 94;
634 uint16_t length;
635};
636
637struct of_bsn_tlv_multicast_interface_id : of_bsn_tlv {
638 uint16_t type == 95;
639 uint16_t length;
640 uint32_t value;
641};
642
643struct of_bsn_tlv_use_packet_state : of_bsn_tlv {
644 uint16_t type == 96;
645 uint16_t length;
646 uint8_t value;
647};
648
649enum ofp_bsn_status(wire_type=uint8_t) {
650 OFP_BSN_STATUS_DISABLE = 0,
651 OFP_BSN_STATUS_ENABLE = 1,
652};
653
654struct of_bsn_tlv_status: of_bsn_tlv {
655 uint16_t type == 97;
656 uint16_t length;
657 enum ofp_bsn_status value;
658};
659
660struct of_bsn_vlan_mac {
661 uint16_t vlan_vid;
662 of_mac_addr_t mac;
663};
664
665struct of_bsn_tlv_vlan_mac_list : of_bsn_tlv {
666 uint16_t type == 98;
667 uint16_t length;
668 list(of_bsn_vlan_mac_t) key;
669};
670
671struct of_bsn_tlv_vfi : of_bsn_tlv {
672 uint16_t type == 99;
673 uint16_t length;
674 uint16_t value;
675};
676
677struct of_bsn_tlv_hash_seed : of_bsn_tlv {
678 uint16_t type == 100;
679 uint16_t length;
680 uint32_t seed1;
681 uint32_t seed2;
682};
683
684enum of_bsn_hash_type(wire_type=uint8_t) {
685 OFP_BSN_HASH_TYPE_L2 = 0,
686 OFP_BSN_HASH_TYPE_L3 = 1,
687 OFP_BSN_HASH_TYPE_ENHANCED = 2,
688};
689
690struct of_bsn_tlv_hash_type : of_bsn_tlv {
691 uint16_t type == 101;
692 uint16_t length;
693 enum of_bsn_hash_type value;
694};
695
696enum of_bsn_hash_packet_type(wire_type=uint8_t) {
697 OF_BSN_HASH_PACKET_L2 = 0,
698 OF_BSN_HASH_PACKET_L2GRE = 1,
699 OF_BSN_HASH_PACKET_IPV4 = 3,
700 OF_BSN_HASH_PACKET_IPV6 = 4,
701 OF_BSN_HASH_PACKET_MPLS = 5,
702 OF_BSN_HASH_PACKET_SYMMETRIC = 6,
703};
704
705struct of_bsn_tlv_hash_packet_type : of_bsn_tlv {
706 uint16_t type == 102;
707 uint16_t length;
708 enum of_bsn_hash_packet_type value;
709};
710
711enum of_bsn_hash_packet_field(wire_type=uint64_t, bitmask=True) {
712 // 0x1 is unused
713 OFP_BSN_HASH_FIELD_DST_MAC = 0x2,
714 OFP_BSN_HASH_FIELD_SRC_MAC = 0x4,
715 OFP_BSN_HASH_FIELD_ETH_TYPE = 0x8,
716 OFP_BSN_HASH_FIELD_VLAN_ID = 0x10,
717 OFP_BSN_HASH_FIELD_INNER_L2 = 0x20,
718 OFP_BSN_HASH_FIELD_INNER_L3 = 0x40,
719 OFP_BSN_HASH_FIELD_SRC_IP = 0x80,
720 OFP_BSN_HASH_FIELD_DST_IP = 0x100,
721 OFP_BSN_HASH_FIELD_IP_PROTO = 0x200,
722 OFP_BSN_HASH_FIELD_SRC_L4_PORT = 0x400,
723 OFP_BSN_HASH_FIELD_DST_L4_PORT = 0x800,
724 OFP_BSN_HASH_FIELD_MPLS_LABEL1 = 0x1000,
725 OFP_BSN_HASH_FIELD_MPLS_LABEL2 = 0x2000,
726 OFP_BSN_HASH_FIELD_MPLS_LABEL3 = 0x4000,
727 OFP_BSN_HASH_FIELD_MPLS_LABEL_HI_BITS = 0x8000,
728 OFP_BSN_HASH_FIELD_MPLS_PAYLOAD_SRC_IP = 0x10000,
729 OFP_BSN_HASH_FIELD_MPLS_PAYLOAD_DST_IP = 0x20000,
730 OFP_BSN_HASH_FIELD_SYMMETRIC = 0x40000,
731};
732
733struct of_bsn_tlv_hash_packet_field : of_bsn_tlv {
734 uint16_t type == 103;
735 uint16_t length;
736 enum of_bsn_hash_packet_field value;
737};
738
739struct of_bsn_tlv_hash_gtp_header_match : of_bsn_tlv {
740 uint16_t type == 104;
741 uint16_t length;
742 uint8_t first_header_byte;
743 uint8_t first_header_mask;
744};
745
746enum of_bsn_hash_gtp_port_match(wire_type=uint8_t) {
747 OF_BSN_HASH_GTP_PORT_MATCH_SRC = 1,
748 OF_BSN_HASH_GTP_PORT_MATCH_DST = 2,
749 OF_BSN_HASH_GTP_PORT_MATCH_SRC_OR_DST = 3,
750 OF_BSN_HASH_GTP_PORT_MATCH_SRC_AND_DST = 4,
751};
752
753struct of_bsn_tlv_hash_gtp_port_match : of_bsn_tlv {
754 uint16_t type == 105;
755 uint16_t length;
756 enum of_bsn_hash_gtp_port_match match;
757 uint16_t src_port;
758 uint16_t dst_port;
759};
760
761struct of_bsn_tlv_untagged : of_bsn_tlv {
762 uint16_t type == 106;
763 uint16_t length;
764};
765
766struct of_bsn_tlv_vfp_class_id : of_bsn_tlv {
767 uint16_t type == 107;
768 uint16_t length;
769 uint32_t value;
770};
771
772struct of_bsn_tlv_qos_priority : of_bsn_tlv {
773 uint16_t type == 108;
774 uint16_t length;
775 uint32_t value;
776};
777
778struct of_bsn_tlv_parent_port : of_bsn_tlv {
779 uint16_t type == 109;
780 uint16_t length;
781 of_port_no_t value;
782};
783
784struct of_bsn_tlv_loopback_port : of_bsn_tlv {
785 uint16_t type == 110;
786 uint16_t length;
787 of_port_no_t value;
788};
789
790struct of_bsn_tlv_vpn_key : of_bsn_tlv {
791 uint16_t type == 111;
792 uint16_t length;
793 uint32_t value;
794};
795
796struct of_bsn_tlv_dscp : of_bsn_tlv {
797 uint16_t type == 112;
798 uint16_t length;
799 uint16_t value; // 0-63
800};
801
802struct of_bsn_tlv_ttl : of_bsn_tlv {
803 uint16_t type == 113;
804 uint16_t length;
805 uint16_t value;
806};
807
808struct of_bsn_tlv_next_hop_mac : of_bsn_tlv {
809 uint16_t type == 114;
810 uint16_t length;
811 of_mac_addr_t value;
812};
813
814struct of_bsn_tlv_next_hop_ipv4 : of_bsn_tlv {
815 uint16_t type == 115;
816 uint16_t length;
817 of_ipv4_t value;
818};
819
820struct of_bsn_tlv_rate_limit : of_bsn_tlv {
821 uint16_t type == 116;
822 uint16_t length;
823 uint32_t value; // in Kbps
824};
825
826struct of_bsn_tlv_vxlan_egress_lag : of_bsn_tlv {
827 uint16_t type == 117;
828 uint16_t length;
829};
830
831struct of_bsn_tlv_cpu_lag : of_bsn_tlv {
832 uint16_t type == 118;
833 uint16_t length;
834};
835
836struct of_bsn_tlv_uint64_list : of_bsn_tlv {
837 uint16_t type == 119;
838 uint16_t length;
839 list(of_uint64_t) value;
840};
841
842struct of_bsn_tlv_disable_src_mac_check : of_bsn_tlv {
843 uint16_t type == 120;
844 uint16_t length;
845};
846
847struct of_bsn_tlv_drop : of_bsn_tlv {
848 uint16_t type == 121;
849 uint16_t length;
850};
851
852struct of_bsn_tlv_ipv6_prefix : of_bsn_tlv {
853 uint16_t type == 122;
854 uint16_t length;
855 of_ipv6_t value;
856 uint8_t prefix_length;
857};
858
859struct of_bsn_tlv_ndp_offload : of_bsn_tlv {
860 uint16_t type == 123;
861 uint16_t length;
862};
863
864struct of_bsn_tlv_ndp_static : of_bsn_tlv {
865 uint16_t type == 124;
866 uint16_t length;
867};
868
869struct of_bsn_tlv_icmpv6_chksum : of_bsn_tlv {
870 uint16_t type == 125;
871 uint16_t length;
872 uint16_t value;
873};
874
875struct of_bsn_tlv_ipv6_src : of_bsn_tlv {
876 uint16_t type == 126;
877 uint16_t length;
878 of_ipv6_t value;
879};
880
881struct of_bsn_tlv_ipv6_dst : of_bsn_tlv {
882 uint16_t type == 127;
883 uint16_t length;
884 of_ipv6_t value;
885};
886
887struct of_bsn_tlv_push_vlan_on_ingress : of_bsn_tlv {
888 uint16_t type == 128;
889 uint16_t length;
890};
891
892// apply_packets and apply_bytes are stat counters, like rx_packet
893// identifies packets and bytes applied to some action, for example:
894// packets with inet L3/L4 headers for netflow
895
896struct of_bsn_tlv_apply_packets : of_bsn_tlv {
897 uint16_t type == 129;
898 uint16_t length;
899 uint64_t value;
900};
901
902struct of_bsn_tlv_apply_bytes : of_bsn_tlv {
903 uint16_t type == 130;
904 uint16_t length;
905 uint64_t value;
906};
907
908struct of_bsn_tlv_eth_type : of_bsn_tlv {
909 uint16_t type == 131;
910 uint16_t length;
911 uint16_t value;
912};
913
914struct of_bsn_tlv_ecn : of_bsn_tlv {
915 uint16_t type == 132;
916 uint16_t length;
917 uint8_t value;
918};
919
920struct of_bsn_tlv_tcp_flags : of_bsn_tlv {
921 uint16_t type == 133;
922 uint16_t length;
923 uint16_t value;
924};
925
926struct of_bsn_tlv_l3_interface_class_id : of_bsn_tlv {
927 uint16_t type == 134;
928 uint16_t length;
929 uint32_t value;
930};
931
932struct of_bsn_tlv_l3_src_class_id : of_bsn_tlv {
933 uint16_t type == 135;
934 uint16_t length;
935 uint32_t value;
936};
937
938struct of_bsn_tlv_l3_dst_class_id : of_bsn_tlv {
939 uint16_t type == 136;
940 uint16_t length;
941 uint32_t value;
942};
943
944struct of_bsn_tlv_egress_only : of_bsn_tlv {
945 uint16_t type == 137;
946 uint16_t length;
947};
948
949struct of_bsn_tlv_ingress_port_group_id : of_bsn_tlv {
950 uint16_t type == 138;
951 uint16_t length;
952 uint32_t value;
953};
954
955struct of_bsn_tlv_egress_port_group_id : of_bsn_tlv {
956 uint16_t type == 139;
957 uint16_t length;
958 uint32_t value;
959};
960
961struct of_bsn_tlv_data_mask : of_bsn_tlv {
962 uint16_t type == 140;
963 uint16_t length;
964 of_octets_t value;
965};
966
967enum ofp_bsn_port_usage(wire_type=uint16_t) {
968 OFP_BSN_PORT_UNUSED = 0,
969 OFP_BSN_PORT_TRANSMIT_ONLY = 1,
970 OFP_BSN_PORT_RECEIVE_ONLY = 2,
971 OFP_BSN_PORT_BIDIRECTION = 3,
972};
973
974struct of_bsn_tlv_port_usage : of_bsn_tlv {
975 uint16_t type == 141;
976 uint16_t length;
977 enum ofp_bsn_port_usage value;
978};
979
980enum ofp_bsn_tunnel_type(wire_type=uint64_t, bitmask=True) {
981 OFP_BSN_TUNNEL_L2GRE = 0x1,
982};
983
984struct of_bsn_tlv_tunnel_capability : of_bsn_tlv {
985 uint16_t type == 142;
986 uint16_t length;
987 enum ofp_bsn_tunnel_type value;
988};
989
990enum ofp_bsn_enhanced_hash_type(wire_type=uint64_t, bitmask=True) {
991 OFP_BSN_ENHANCED_HASH_L2 = 0x1,
992 OFP_BSN_ENHANCED_HASH_L3 = 0x2,
993 OFP_BSN_ENHANCED_HASH_L2GRE = 0x4,
994 OFP_BSN_ENHANCED_HASH_MPLS = 0x8,
995 OFP_BSN_ENHANCED_HASH_GTP = 0x10,
996 OFP_BSN_ENHANCED_HASH_SYMMETRIC = 0x20,
997};
998
999struct of_bsn_tlv_enhanced_hash_capability : of_bsn_tlv {
1000 uint16_t type == 143;
1001 uint16_t length;
1002 enum ofp_bsn_enhanced_hash_type value;
1003};
1004
1005enum ofp_bsn_auto_negotiation_type(wire_type=uint8_t) {
1006 OFP_BSN_AUTO_NEGOTIATION_DEFAULT = 0,
1007 OFP_BSN_AUTO_NEGOTIATION_ENABLE = 1,
1008 OFP_BSN_AUTO_NEGOTIATION_DISABLE = 2,
1009};
1010
1011struct of_bsn_tlv_auto_negotiation : of_bsn_tlv {
1012 uint16_t type == 144;
1013 uint16_t length;
1014 enum ofp_bsn_auto_negotiation_type value;
1015};
1016
1017enum ofp_bsn_hash_algorithm_type(wire_type=uint16_t) {
1018 OFP_BSN_HASH_ALGORITHM_CRC16XOR8 = 0,
1019 OFP_BSN_HASH_ALGORITHM_CRC16XOR4 = 1,
1020 OFP_BSN_HASH_ALGORITHM_CRC16XOR2 = 2,
1021 OFP_BSN_HASH_ALGORITHM_CRC16XOR1 = 3,
1022 OFP_BSN_HASH_ALGORITHM_CRC16 = 4,
1023 OFP_BSN_HASH_ALGORITHM_XOR16 = 5,
1024 OFP_BSN_HASH_ALGORITHM_CRC16CCITT = 6,
1025 OFP_BSN_HASH_ALGORITHM_CRC32LO = 7,
1026 OFP_BSN_HASH_ALGORITHM_CRC32HI = 8,
1027};
1028
1029struct of_bsn_tlv_hash_algorithm : of_bsn_tlv {
1030 uint16_t type == 145;
1031 uint16_t length;
1032 enum ofp_bsn_hash_algorithm_type value;
1033};
1034
1035enum ofp_bsn_loopback_mode(wire_type=uint8_t) {
1036 OFP_BSN_LOOPBACK_MODE_NONE = 0,
1037 OFP_BSN_LOOPBACK_MODE_MAC = 1,
1038 OFP_BSN_LOOPBACK_MODE_PHY = 2,
1039 OFP_BSN_LOOPBACK_MODE_PHY_REMOTE = 3,
1040};
1041
1042struct of_bsn_tlv_loopback_mode : of_bsn_tlv {
1043 uint16_t type == 146;
1044 uint16_t length;
1045 enum ofp_bsn_loopback_mode value;
1046};
1047
1048struct of_bsn_tlv_no_arp_response : of_bsn_tlv {
1049 uint16_t type == 147;
1050 uint16_t length;
1051};
1052
1053struct of_bsn_tlv_no_ns_response : of_bsn_tlv {
1054 uint16_t type == 148;
1055 uint16_t length;
1056};
1057
1058enum ofp_bsn_forward_error_correction_type(wire_type=uint8_t) {
1059 OFP_BSN_FORWARD_ERROR_CORRECTION_DEFAULT = 0,
1060 OFP_BSN_FORWARD_ERROR_CORRECTION_ENABLE = 1,
1061 OFP_BSN_FORWARD_ERROR_CORRECTION_DISABLE = 2,
1062};
1063
1064struct of_bsn_tlv_forward_error_correction : of_bsn_tlv {
1065 uint16_t type == 149;
1066 uint16_t length;
1067 enum ofp_bsn_forward_error_correction_type value;
1068};
1069
1070struct of_bsn_tlv_optics_always_enabled : of_bsn_tlv {
1071 uint16_t type == 150;
1072 uint16_t length;
1073};
1074
1075struct of_bsn_tlv_force_link_up : of_bsn_tlv {
1076 uint16_t type == 151;
1077 uint16_t length;
Harshmeet Singh916ead22015-08-21 14:31:33 -07001078};