Lines Matching refs:fib4_rt

275 	struct nsim_fib4_rt *fib4_rt;  in nsim_fib4_rt_create()  local
277 fib4_rt = kzalloc(sizeof(*fib4_rt), GFP_KERNEL); in nsim_fib4_rt_create()
278 if (!fib4_rt) in nsim_fib4_rt_create()
281 nsim_fib_rt_init(data, &fib4_rt->common, &fen_info->dst, sizeof(u32), in nsim_fib4_rt_create()
284 fib4_rt->fi = fen_info->fi; in nsim_fib4_rt_create()
285 fib_info_hold(fib4_rt->fi); in nsim_fib4_rt_create()
286 fib4_rt->tos = fen_info->tos; in nsim_fib4_rt_create()
287 fib4_rt->type = fen_info->type; in nsim_fib4_rt_create()
289 return fib4_rt; in nsim_fib4_rt_create()
292 static void nsim_fib4_rt_destroy(struct nsim_fib4_rt *fib4_rt) in nsim_fib4_rt_destroy() argument
294 fib_info_put(fib4_rt->fi); in nsim_fib4_rt_destroy()
295 nsim_fib_rt_fini(&fib4_rt->common); in nsim_fib4_rt_destroy()
296 kfree(fib4_rt); in nsim_fib4_rt_destroy()
334 const struct nsim_fib4_rt *fib4_rt, in nsim_fib4_rt_hw_flags_set() argument
337 u32 *p_dst = (u32 *) fib4_rt->common.key.addr; in nsim_fib4_rt_hw_flags_set()
338 int dst_len = fib4_rt->common.key.prefix_len; in nsim_fib4_rt_hw_flags_set()
341 fri.fi = fib4_rt->fi; in nsim_fib4_rt_hw_flags_set()
342 fri.tb_id = fib4_rt->common.key.tb_id; in nsim_fib4_rt_hw_flags_set()
345 fri.tos = fib4_rt->tos; in nsim_fib4_rt_hw_flags_set()
346 fri.type = fib4_rt->type; in nsim_fib4_rt_hw_flags_set()
354 struct nsim_fib4_rt *fib4_rt) in nsim_fib4_rt_add() argument
360 &fib4_rt->common.ht_node, in nsim_fib4_rt_add()
367 nsim_fib4_rt_hw_flags_set(net, fib4_rt, true); in nsim_fib4_rt_add()
380 struct nsim_fib4_rt *fib4_rt, in nsim_fib4_rt_replace() argument
394 &fib4_rt->common.ht_node, in nsim_fib4_rt_replace()
400 nsim_fib4_rt_hw_flags_set(net, fib4_rt, true); in nsim_fib4_rt_replace()
411 struct nsim_fib4_rt *fib4_rt, *fib4_rt_old; in nsim_fib4_rt_insert() local
423 fib4_rt = nsim_fib4_rt_create(data, fen_info); in nsim_fib4_rt_insert()
424 if (!fib4_rt) in nsim_fib4_rt_insert()
429 err = nsim_fib4_rt_add(data, fib4_rt); in nsim_fib4_rt_insert()
431 err = nsim_fib4_rt_replace(data, fib4_rt, fib4_rt_old); in nsim_fib4_rt_insert()
434 nsim_fib4_rt_destroy(fib4_rt); in nsim_fib4_rt_insert()
442 struct nsim_fib4_rt *fib4_rt; in nsim_fib4_rt_remove() local
444 fib4_rt = nsim_fib4_rt_lookup(&data->fib_rt_ht, fen_info); in nsim_fib4_rt_remove()
445 if (!fib4_rt) in nsim_fib4_rt_remove()
448 rhashtable_remove_fast(&data->fib_rt_ht, &fib4_rt->common.ht_node, in nsim_fib4_rt_remove()
450 nsim_fib4_rt_destroy(fib4_rt); in nsim_fib4_rt_remove()
1038 struct nsim_fib4_rt *fib4_rt; in nsim_fib4_rt_free() local
1040 fib4_rt = container_of(fib_rt, struct nsim_fib4_rt, common); in nsim_fib4_rt_free()
1041 nsim_fib4_rt_hw_flags_set(devlink_net(devlink), fib4_rt, false); in nsim_fib4_rt_free()
1043 nsim_fib4_rt_destroy(fib4_rt); in nsim_fib4_rt_free()