DPDK  18.05.1
rte_table_hash.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2010-2017 Intel Corporation
3  */
4 
5 #ifndef __INCLUDE_RTE_TABLE_HASH_H__
6 #define __INCLUDE_RTE_TABLE_HASH_H__
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
51 #include <stdint.h>
52 
53 #include "rte_table.h"
54 
56 typedef uint64_t (*rte_table_hash_op_hash)(
57  void *key,
58  void *key_mask,
59  uint32_t key_size,
60  uint64_t seed);
61 
65  const char *name;
66 
68  uint32_t key_size;
69 
71  uint32_t key_offset;
72 
74  uint8_t *key_mask;
75 
77  uint32_t n_keys;
78 
80  uint32_t n_buckets;
81 
84 
86  uint64_t seed;
87 };
88 
91 extern struct rte_table_ops rte_table_hash_key8_ext_ops;
92 extern struct rte_table_ops rte_table_hash_key16_ext_ops;
93 extern struct rte_table_ops rte_table_hash_key32_ext_ops;
94 
97 
98 extern struct rte_table_ops rte_table_hash_key8_lru_ops;
99 extern struct rte_table_ops rte_table_hash_key16_lru_ops;
100 extern struct rte_table_ops rte_table_hash_key32_lru_ops;
101 
102 #ifdef __cplusplus
103 }
104 #endif
105 
106 #endif