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