DPDK
2.1.0
Main Page
Data Structures
Files
File List
Globals
lib
librte_table
rte_table_hash.h
Go to the documentation of this file.
1
/*-
2
* BSD LICENSE
3
*
4
* Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions
9
* are met:
10
*
11
* * Redistributions of source code must retain the above copyright
12
* notice, this list of conditions and the following disclaimer.
13
* * Redistributions in binary form must reproduce the above copyright
14
* notice, this list of conditions and the following disclaimer in
15
* the documentation and/or other materials provided with the
16
* distribution.
17
* * Neither the name of Intel Corporation nor the names of its
18
* contributors may be used to endorse or promote products derived
19
* from this software without specific prior written permission.
20
*
21
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
*/
33
34
#ifndef __INCLUDE_RTE_TABLE_HASH_H__
35
#define __INCLUDE_RTE_TABLE_HASH_H__
36
37
#ifdef __cplusplus
38
extern
"C"
{
39
#endif
40
94
#include <stdint.h>
95
96
#include "
rte_table.h
"
97
99
typedef
uint64_t (*
rte_table_hash_op_hash
)(
100
void
*key,
101
uint32_t key_size,
102
uint64_t seed);
103
109
struct
rte_table_hash_ext_params
{
111
uint32_t
key_size
;
112
114
uint32_t
n_keys
;
115
117
uint32_t
n_buckets
;
118
121
uint32_t
n_buckets_ext
;
122
124
rte_table_hash_op_hash
f_hash
;
125
127
uint64_t
seed
;
128
132
uint32_t
signature_offset
;
133
135
uint32_t
key_offset
;
136
};
137
139
extern
struct
rte_table_ops
rte_table_hash_ext_ops
;
140
143
extern
struct
rte_table_ops
rte_table_hash_ext_dosig_ops
;
144
146
struct
rte_table_hash_lru_params
{
148
uint32_t
key_size
;
149
151
uint32_t
n_keys
;
152
154
uint32_t
n_buckets
;
155
157
rte_table_hash_op_hash
f_hash
;
158
160
uint64_t
seed
;
161
165
uint32_t
signature_offset
;
166
168
uint32_t
key_offset
;
169
};
170
172
extern
struct
rte_table_ops
rte_table_hash_lru_ops
;
173
175
extern
struct
rte_table_ops
rte_table_hash_lru_dosig_ops
;
176
182
struct
rte_table_hash_key8_lru_params
{
184
uint32_t
n_entries
;
185
187
rte_table_hash_op_hash
f_hash
;
188
190
uint64_t
seed
;
191
195
uint32_t
signature_offset
;
196
198
uint32_t
key_offset
;
199
};
200
202
extern
struct
rte_table_ops
rte_table_hash_key8_lru_ops
;
203
205
extern
struct
rte_table_ops
rte_table_hash_key8_lru_dosig_ops
;
206
208
struct
rte_table_hash_key8_ext_params
{
210
uint32_t
n_entries
;
211
214
uint32_t
n_entries_ext
;
215
217
rte_table_hash_op_hash
f_hash
;
218
220
uint64_t
seed
;
221
225
uint32_t
signature_offset
;
226
228
uint32_t
key_offset
;
229
};
230
232
extern
struct
rte_table_ops
rte_table_hash_key8_ext_ops
;
233
236
extern
struct
rte_table_ops
rte_table_hash_key8_ext_dosig_ops
;
237
243
struct
rte_table_hash_key16_lru_params
{
245
uint32_t
n_entries
;
246
248
rte_table_hash_op_hash
f_hash
;
249
251
uint64_t
seed
;
252
256
uint32_t
signature_offset
;
257
259
uint32_t
key_offset
;
260
};
261
263
extern
struct
rte_table_ops
rte_table_hash_key16_lru_ops
;
264
266
struct
rte_table_hash_key16_ext_params
{
268
uint32_t
n_entries
;
269
272
uint32_t
n_entries_ext
;
273
275
rte_table_hash_op_hash
f_hash
;
276
278
uint64_t
seed
;
279
283
uint32_t
signature_offset
;
284
286
uint32_t
key_offset
;
287
};
288
290
extern
struct
rte_table_ops
rte_table_hash_key16_ext_ops
;
291
297
struct
rte_table_hash_key32_lru_params
{
299
uint32_t
n_entries
;
300
302
rte_table_hash_op_hash
f_hash
;
303
305
uint64_t
seed
;
306
310
uint32_t
signature_offset
;
311
313
uint32_t
key_offset
;
314
};
315
317
extern
struct
rte_table_ops
rte_table_hash_key32_lru_ops
;
318
320
struct
rte_table_hash_key32_ext_params
{
322
uint32_t
n_entries
;
323
326
uint32_t
n_entries_ext
;
327
329
rte_table_hash_op_hash
f_hash
;
330
332
uint64_t
seed
;
333
337
uint32_t
signature_offset
;
338
340
uint32_t
key_offset
;
341
};
342
344
extern
struct
rte_table_ops
rte_table_hash_key32_ext_ops
;
345
346
#ifdef __cplusplus
347
}
348
#endif
349
350
#endif
Generated by
1.8.1.2