X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=inline;f=lib%2Flibrte_member%2Frte_member.c;h=b9def9a5755869a7eee6fb7842dd83ffccca24ac;hb=b0098b5e2174bd4ac901043e1c4dcaad1c19d9d5;hp=cc03f7cda449b0df0d7dd383e44bf5634e620f23;hpb=857ed6c68cf2800a5e8311c431389b9ba50d7949;p=dpdk.git diff --git a/lib/librte_member/rte_member.c b/lib/librte_member/rte_member.c index cc03f7cda4..b9def9a575 100644 --- a/lib/librte_member/rte_member.c +++ b/lib/librte_member/rte_member.c @@ -41,6 +41,8 @@ #include #include "rte_member.h" +#include "rte_member_ht.h" +#include "rte_member_vbf.h" int librte_member_logtype; @@ -96,6 +98,12 @@ rte_member_free(struct rte_member_setsum *setsum) rte_rwlock_write_unlock(RTE_EAL_TAILQ_RWLOCK); switch (setsum->type) { + case RTE_MEMBER_TYPE_HT: + rte_member_free_ht(setsum); + break; + case RTE_MEMBER_TYPE_VBF: + rte_member_free_vbf(setsum); + break; default: break; } @@ -163,6 +171,12 @@ rte_member_create(const struct rte_member_parameters *params) setsum->sec_hash_seed = params->sec_hash_seed; switch (setsum->type) { + case RTE_MEMBER_TYPE_HT: + ret = rte_member_create_ht(setsum, params); + break; + case RTE_MEMBER_TYPE_VBF: + ret = rte_member_create_vbf(setsum, params); + break; default: goto error_unlock_exit; } @@ -190,8 +204,11 @@ rte_member_add(const struct rte_member_setsum *setsum, const void *key, if (setsum == NULL || key == NULL) return -EINVAL; - (void) set_id; switch (setsum->type) { + case RTE_MEMBER_TYPE_HT: + return rte_member_add_ht(setsum, key, set_id); + case RTE_MEMBER_TYPE_VBF: + return rte_member_add_vbf(setsum, key, set_id); default: return -EINVAL; } @@ -205,6 +222,10 @@ rte_member_lookup(const struct rte_member_setsum *setsum, const void *key, return -EINVAL; switch (setsum->type) { + case RTE_MEMBER_TYPE_HT: + return rte_member_lookup_ht(setsum, key, set_id); + case RTE_MEMBER_TYPE_VBF: + return rte_member_lookup_vbf(setsum, key, set_id); default: return -EINVAL; } @@ -218,8 +239,13 @@ rte_member_lookup_bulk(const struct rte_member_setsum *setsum, if (setsum == NULL || keys == NULL || set_ids == NULL) return -EINVAL; - (void) num_keys; switch (setsum->type) { + case RTE_MEMBER_TYPE_HT: + return rte_member_lookup_bulk_ht(setsum, keys, num_keys, + set_ids); + case RTE_MEMBER_TYPE_VBF: + return rte_member_lookup_bulk_vbf(setsum, keys, num_keys, + set_ids); default: return -EINVAL; } @@ -232,8 +258,13 @@ rte_member_lookup_multi(const struct rte_member_setsum *setsum, const void *key, if (setsum == NULL || key == NULL || set_id == NULL) return -EINVAL; - (void) match_per_key; switch (setsum->type) { + case RTE_MEMBER_TYPE_HT: + return rte_member_lookup_multi_ht(setsum, key, match_per_key, + set_id); + case RTE_MEMBER_TYPE_VBF: + return rte_member_lookup_multi_vbf(setsum, key, match_per_key, + set_id); default: return -EINVAL; } @@ -249,9 +280,13 @@ rte_member_lookup_multi_bulk(const struct rte_member_setsum *setsum, match_count == NULL) return -EINVAL; - (void) num_keys; - (void) max_match_per_key; switch (setsum->type) { + case RTE_MEMBER_TYPE_HT: + return rte_member_lookup_multi_bulk_ht(setsum, keys, num_keys, + max_match_per_key, match_count, set_ids); + case RTE_MEMBER_TYPE_VBF: + return rte_member_lookup_multi_bulk_vbf(setsum, keys, num_keys, + max_match_per_key, match_count, set_ids); default: return -EINVAL; } @@ -264,8 +299,11 @@ rte_member_delete(const struct rte_member_setsum *setsum, const void *key, if (setsum == NULL || key == NULL) return -EINVAL; - (void) set_id; switch (setsum->type) { + case RTE_MEMBER_TYPE_HT: + return rte_member_delete_ht(setsum, key, set_id); + /* current vBF implementation does not support delete function */ + case RTE_MEMBER_TYPE_VBF: default: return -EINVAL; } @@ -277,6 +315,12 @@ rte_member_reset(const struct rte_member_setsum *setsum) if (setsum == NULL) return; switch (setsum->type) { + case RTE_MEMBER_TYPE_HT: + rte_member_reset_ht(setsum); + return; + case RTE_MEMBER_TYPE_VBF: + rte_member_reset_vbf(setsum); + return; default: return; }