X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_fib%2Frte_fib6.c;h=44cc0c954debbbc33521c314197f13d840cfab29;hb=cf38bcd7763fa4cf6347a93a6193e00205404275;hp=9652ac71d6203b15edee37fdc26fec39b06caec9;hpb=4f66d3be5654990c2f0df948f1a3cc895e9cbfbf;p=dpdk.git diff --git a/lib/librte_fib/rte_fib6.c b/lib/librte_fib/rte_fib6.c index 9652ac71d6..44cc0c954d 100644 --- a/lib/librte_fib/rte_fib6.c +++ b/lib/librte_fib/rte_fib6.c @@ -107,7 +107,7 @@ init_dataplane(struct rte_fib6 *fib, __rte_unused int socket_id, fib->dp = trie_create(dp_name, socket_id, conf); if (fib->dp == NULL) return -rte_errno; - fib->lookup = rte_trie_get_lookup_fn(conf); + fib->lookup = trie_get_lookup_fn(fib->dp, RTE_FIB6_LOOKUP_DEFAULT); fib->modify = trie_modify; return 0; default: @@ -319,3 +319,21 @@ rte_fib6_get_rib(struct rte_fib6 *fib) { return (fib == NULL) ? NULL : fib->rib; } + +int +rte_fib6_select_lookup(struct rte_fib6 *fib, + enum rte_fib6_lookup_type type) +{ + rte_fib6_lookup_fn_t fn; + + switch (fib->type) { + case RTE_FIB6_TRIE: + fn = trie_get_lookup_fn(fib->dp, type); + if (fn == NULL) + return -EINVAL; + fib->lookup = fn; + return 0; + default: + return -EINVAL; + } +}