New upstream version 18.02
[deb_dpdk.git] / lib / librte_member / rte_member_vbf.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2017 Intel Corporation
3  */
4
5 #ifndef _RTE_MEMBER_VBF_H_
6 #define _RTE_MEMBER_VBF_H_
7
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11
12 /* Currently we only support up to 32 sets in vBF */
13 #define RTE_MEMBER_MAX_BF 32
14
15 int
16 rte_member_create_vbf(struct rte_member_setsum *ss,
17                 const struct rte_member_parameters *params);
18
19 int
20 rte_member_lookup_vbf(const struct rte_member_setsum *setsum,
21                 const void *key, member_set_t *set_id);
22
23 uint32_t
24 rte_member_lookup_bulk_vbf(const struct rte_member_setsum *setsum,
25                 const void **keys, uint32_t num_keys,
26                 member_set_t *set_ids);
27
28 uint32_t
29 rte_member_lookup_multi_vbf(const struct rte_member_setsum *setsum,
30                 const void *key, uint32_t match_per_key,
31                 member_set_t *set_id);
32
33 uint32_t
34 rte_member_lookup_multi_bulk_vbf(const struct rte_member_setsum *setsum,
35                 const void **keys, uint32_t num_keys, uint32_t match_per_key,
36                 uint32_t *match_count,
37                 member_set_t *set_ids);
38
39 int
40 rte_member_add_vbf(const struct rte_member_setsum *setsum,
41                 const void *key, member_set_t set_id);
42
43 void
44 rte_member_free_vbf(struct rte_member_setsum *ss);
45
46 void
47 rte_member_reset_vbf(const struct rte_member_setsum *setsum);
48
49 #ifdef __cplusplus
50 }
51 #endif
52
53 #endif /* _RTE_MEMBER_VBF_H_ */