Lines Matching defs:fib

58 	struct rte_fib *fib = fib_p;
62 node = rte_rib_lookup(fib->rib, ips[i]);
66 next_hops[i] = fib->def_nh;
71 dummy_modify(struct rte_fib *fib, uint32_t ip, uint8_t depth,
75 if ((fib == NULL) || (depth > RTE_FIB_MAXDEPTH))
78 node = rte_rib_lookup_exact(fib->rib, ip, depth);
83 node = rte_rib_insert(fib->rib, ip, depth);
90 rte_rib_remove(fib->rib, ip, depth);
97 init_dataplane(struct rte_fib *fib, __rte_unused int socket_id,
102 snprintf(dp_name, sizeof(dp_name), "%p", fib);
105 fib->dp = fib;
106 fib->lookup = dummy_lookup;
107 fib->modify = dummy_modify;
110 fib->dp = dir24_8_create(dp_name, socket_id, conf);
111 if (fib->dp == NULL)
113 fib->lookup = dir24_8_get_lookup_fn(fib->dp,
114 RTE_FIB_LOOKUP_DEFAULT, !!(fib->flags & RTE_FIB_F_LOOKUP_NETWORK_ORDER));
115 fib->modify = dir24_8_modify;
124 rte_fib_add(struct rte_fib *fib, uint32_t ip, uint8_t depth, uint64_t next_hop)
126 if ((fib == NULL) || (fib->modify == NULL) ||
129 return fib->modify(fib, ip, depth, next_hop, RTE_FIB_ADD);
133 rte_fib_delete(struct rte_fib *fib, uint32_t ip, uint8_t depth)
135 if ((fib == NULL) || (fib->modify == NULL) ||
138 return fib->modify(fib, ip, depth, 0, RTE_FIB_DEL);
142 rte_fib_lookup_bulk(struct rte_fib *fib, uint32_t *ips,
145 FIB_RETURN_IF_TRUE(((fib == NULL) || (ips == NULL) ||
146 (next_hops == NULL) || (fib->lookup == NULL)), -EINVAL);
148 fib->lookup(fib->dp, ips, next_hops, n);
157 struct rte_fib *fib = NULL;
188 fib = (struct rte_fib *)te->data;
189 if (strncmp(name, fib->name, RTE_FIB_NAMESIZE) == 0)
192 fib = NULL;
208 fib = rte_zmalloc_socket(mem_name,
210 if (fib == NULL) {
216 rte_strlcpy(fib->name, name, sizeof(fib->name));
217 fib->rib = rib;
218 fib->type = conf->type;
219 fib->flags = conf->flags;
220 fib->def_nh = conf->default_nh;
221 ret = init_dataplane(fib, socket_id, conf);
230 te->data = (void *)fib;
235 return fib;
238 rte_free(fib);
251 struct rte_fib *fib = NULL;
259 fib = (struct rte_fib *) te->data;
260 if (strncmp(name, fib->name, RTE_FIB_NAMESIZE) == 0)
270 return fib;
274 free_dataplane(struct rte_fib *fib)
276 switch (fib->type) {
280 dir24_8_free(fib->dp);
287 rte_fib_free(struct rte_fib *fib)
292 if (fib == NULL)
301 if (te->data == (void *)fib)
309 free_dataplane(fib);
310 rte_rib_free(fib->rib);
311 rte_free(fib);
316 rte_fib_get_dp(struct rte_fib *fib)
318 return (fib == NULL) ? NULL : fib->dp;
322 rte_fib_get_rib(struct rte_fib *fib)
324 return (fib == NULL) ? NULL : fib->rib;
328 rte_fib_select_lookup(struct rte_fib *fib,
333 switch (fib->type) {
335 fn = dir24_8_get_lookup_fn(fib->dp, type,
336 !!(fib->flags & RTE_FIB_F_LOOKUP_NETWORK_ORDER));
339 fib->lookup = fn;
347 rte_fib_rcu_qsbr_add(struct rte_fib *fib, struct rte_fib_rcu_config *cfg)
349 if (fib == NULL)
352 switch (fib->type) {
354 return dir24_8_rcu_qsbr_add(fib->dp, cfg, fib->name);