Lines Matching refs:fib4_rt
232 struct nsim_fib4_rt *fib4_rt;
234 fib4_rt = kzalloc(sizeof(*fib4_rt), GFP_ATOMIC);
235 if (!fib4_rt)
238 nsim_fib_rt_init(data, &fib4_rt->common, &fen_info->dst, sizeof(u32),
241 fib4_rt->fi = fen_info->fi;
242 fib_info_hold(fib4_rt->fi);
243 fib4_rt->tos = fen_info->tos;
244 fib4_rt->type = fen_info->type;
246 return fib4_rt;
249 static void nsim_fib4_rt_destroy(struct nsim_fib4_rt *fib4_rt)
251 fib_info_put(fib4_rt->fi);
252 nsim_fib_rt_fini(&fib4_rt->common);
253 kfree(fib4_rt);
272 const struct nsim_fib4_rt *fib4_rt,
275 u32 *p_dst = (u32 *) fib4_rt->common.key.addr;
276 int dst_len = fib4_rt->common.key.prefix_len;
279 fri.fi = fib4_rt->fi;
280 fri.tb_id = fib4_rt->common.key.tb_id;
283 fri.tos = fib4_rt->tos;
284 fri.type = fib4_rt->type;
291 struct nsim_fib4_rt *fib4_rt,
302 &fib4_rt->common.ht_node,
309 nsim_fib4_rt_hw_flags_set(net, fib4_rt, true);
319 struct nsim_fib4_rt *fib4_rt,
329 &fib4_rt->common.ht_node,
336 nsim_fib4_rt_hw_flags_set(net, fib4_rt, true);
348 struct nsim_fib4_rt *fib4_rt, *fib4_rt_old;
351 fib4_rt = nsim_fib4_rt_create(data, fen_info);
352 if (!fib4_rt)
357 err = nsim_fib4_rt_add(data, fib4_rt, extack);
359 err = nsim_fib4_rt_replace(data, fib4_rt, fib4_rt_old, extack);
362 nsim_fib4_rt_destroy(fib4_rt);
371 struct nsim_fib4_rt *fib4_rt;
373 fib4_rt = nsim_fib4_rt_lookup(&data->fib_rt_ht, fen_info);
374 if (WARN_ON_ONCE(!fib4_rt))
377 rhashtable_remove_fast(&data->fib_rt_ht, &fib4_rt->common.ht_node,
380 nsim_fib4_rt_destroy(fib4_rt);
785 struct nsim_fib4_rt *fib4_rt;
787 fib4_rt = container_of(fib_rt, struct nsim_fib4_rt, common);
788 nsim_fib4_rt_hw_flags_set(devlink_net(devlink), fib4_rt, false);
790 nsim_fib4_rt_destroy(fib4_rt);