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