Lines Matching defs:fib

57 	struct rte_fib6 *fib = fib_p;
61 node = rte_rib6_lookup(fib->rib, &ips[i]);
65 next_hops[i] = fib->def_nh;
70 dummy_modify(struct rte_fib6 *fib, const struct rte_ipv6_addr *ip,
74 if ((fib == NULL) || (depth > RTE_IPV6_MAX_DEPTH))
77 node = rte_rib6_lookup_exact(fib->rib, ip, depth);
82 node = rte_rib6_insert(fib->rib, ip, depth);
89 rte_rib6_remove(fib->rib, ip, depth);
96 init_dataplane(struct rte_fib6 *fib, __rte_unused int socket_id,
101 snprintf(dp_name, sizeof(dp_name), "%p", fib);
104 fib->dp = fib;
105 fib->lookup = dummy_lookup;
106 fib->modify = dummy_modify;
109 fib->dp = trie_create(dp_name, socket_id, conf);
110 if (fib->dp == NULL)
112 fib->lookup = trie_get_lookup_fn(fib->dp, RTE_FIB6_LOOKUP_DEFAULT);
113 fib->modify = trie_modify;
122 rte_fib6_add(struct rte_fib6 *fib, const struct rte_ipv6_addr *ip,
125 if ((fib == NULL) || (ip == NULL) || (fib->modify == NULL) ||
128 return fib->modify(fib, ip, depth, next_hop, RTE_FIB6_ADD);
132 rte_fib6_delete(struct rte_fib6 *fib, const struct rte_ipv6_addr *ip,
135 if ((fib == NULL) || (ip == NULL) || (fib->modify == NULL) ||
138 return fib->modify(fib, ip, depth, 0, RTE_FIB6_DEL);
142 rte_fib6_lookup_bulk(struct rte_fib6 *fib,
146 FIB6_RETURN_IF_TRUE((fib == NULL) || (ips == NULL) ||
147 (next_hops == NULL) || (fib->lookup == NULL), -EINVAL);
148 fib->lookup(fib->dp, ips, next_hops, n);
157 struct rte_fib6 *fib = NULL;
187 fib = (struct rte_fib6 *)te->data;
188 if (strncmp(name, fib->name, FIB6_NAMESIZE) == 0)
191 fib = NULL;
207 fib = rte_zmalloc_socket(mem_name,
209 if (fib == NULL) {
215 rte_strlcpy(fib->name, name, sizeof(fib->name));
216 fib->rib = rib;
217 fib->type = conf->type;
218 fib->def_nh = conf->default_nh;
219 ret = init_dataplane(fib, socket_id, conf);
228 te->data = (void *)fib;
233 return fib;
236 rte_free(fib);
249 struct rte_fib6 *fib = NULL;
257 fib = (struct rte_fib6 *) te->data;
258 if (strncmp(name, fib->name, FIB6_NAMESIZE) == 0)
268 return fib;
272 free_dataplane(struct rte_fib6 *fib)
274 switch (fib->type) {
278 trie_free(fib->dp);
285 rte_fib6_free(struct rte_fib6 *fib)
290 if (fib == NULL)
299 if (te->data == (void *)fib)
307 free_dataplane(fib);
308 rte_rib6_free(fib->rib);
309 rte_free(fib);
314 rte_fib6_get_dp(struct rte_fib6 *fib)
316 return (fib == NULL) ? NULL : fib->dp;
320 rte_fib6_get_rib(struct rte_fib6 *fib)
322 return (fib == NULL) ? NULL : fib->rib;
326 rte_fib6_select_lookup(struct rte_fib6 *fib,
331 switch (fib->type) {
333 fn = trie_get_lookup_fn(fib->dp, type);
336 fib->lookup = fn;