DPDK
17.05.2
Main Page
Related Pages
Data Structures
Files
Examples
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-2016 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
201
uint8_t *
key_mask
;
202
};
203
205
extern
struct
rte_table_ops
rte_table_hash_key8_lru_ops
;
206
208
extern
struct
rte_table_ops
rte_table_hash_key8_lru_dosig_ops
;
209
211
struct
rte_table_hash_key8_ext_params
{
213
uint32_t
n_entries
;
214
217
uint32_t
n_entries_ext
;
218
220
rte_table_hash_op_hash
f_hash
;
221
223
uint64_t
seed
;
224
228
uint32_t
signature_offset
;
229
231
uint32_t
key_offset
;
232
234
uint8_t *
key_mask
;
235
};
236
238
extern
struct
rte_table_ops
rte_table_hash_key8_ext_ops
;
239
242
extern
struct
rte_table_ops
rte_table_hash_key8_ext_dosig_ops
;
243
249
struct
rte_table_hash_key16_lru_params
{
251
uint32_t
n_entries
;
252
254
rte_table_hash_op_hash
f_hash
;
255
257
uint64_t
seed
;
258
262
uint32_t
signature_offset
;
263
265
uint32_t
key_offset
;
266
268
uint8_t *
key_mask
;
269
};
270
272
extern
struct
rte_table_ops
rte_table_hash_key16_lru_ops
;
273
276
extern
struct
rte_table_ops
rte_table_hash_key16_lru_dosig_ops
;
277
279
struct
rte_table_hash_key16_ext_params
{
281
uint32_t
n_entries
;
282
285
uint32_t
n_entries_ext
;
286
288
rte_table_hash_op_hash
f_hash
;
289
291
uint64_t
seed
;
292
296
uint32_t
signature_offset
;
297
299
uint32_t
key_offset
;
300
302
uint8_t *
key_mask
;
303
};
304
306
extern
struct
rte_table_ops
rte_table_hash_key16_ext_ops
;
307
310
extern
struct
rte_table_ops
rte_table_hash_key16_ext_dosig_ops
;
311
317
struct
rte_table_hash_key32_lru_params
{
319
uint32_t
n_entries
;
320
322
rte_table_hash_op_hash
f_hash
;
323
325
uint64_t
seed
;
326
330
uint32_t
signature_offset
;
331
333
uint32_t
key_offset
;
334
};
335
337
extern
struct
rte_table_ops
rte_table_hash_key32_lru_ops
;
338
340
struct
rte_table_hash_key32_ext_params
{
342
uint32_t
n_entries
;
343
346
uint32_t
n_entries_ext
;
347
349
rte_table_hash_op_hash
f_hash
;
350
352
uint64_t
seed
;
353
357
uint32_t
signature_offset
;
358
360
uint32_t
key_offset
;
361
};
362
364
extern
struct
rte_table_ops
rte_table_hash_key32_ext_ops
;
365
367
struct
rte_table_hash_cuckoo_params
{
369
uint32_t
key_size
;
370
372
uint32_t
n_keys
;
373
375
rte_table_hash_op_hash
f_hash
;
376
378
uint32_t
seed
;
379
383
uint32_t
signature_offset
;
384
386
uint32_t
key_offset
;
387
389
const
char
*
name
;
390
};
391
393
extern
struct
rte_table_ops
rte_table_hash_cuckoo_dosig_ops
;
394
395
#ifdef __cplusplus
396
}
397
#endif
398
399
#endif
Generated by
1.8.1.2