Lines Matching refs:fib6_info

106 static size_t rt6_nlmsg_size(struct fib6_info *f6i);
108 struct fib6_info *rt, struct dst_entry *dst,
117 static struct fib6_info *rt6_add_route_info(struct net *net,
122 static struct fib6_info *rt6_get_route_info(struct net *net,
278 static const struct fib6_info fib6_null_entry_template = {
354 struct fib6_info *from; in ip6_dst_destroy()
366 from = xchg((__force struct fib6_info **)&rt->from, NULL); in ip6_dst_destroy()
397 struct fib6_info *from; in rt6_check_expired()
415 struct fib6_info *sibling, *next_sibling; in fib6_select_path()
416 struct fib6_info *match = res->f6i; in fib6_select_path()
525 struct fib6_info *f6i = res->f6i; in rt6_device_match()
526 struct fib6_info *spf6i; in rt6_device_match()
780 static void __find_rr_leaf(struct fib6_info *f6i_start, in __find_rr_leaf()
781 struct fib6_info *nomatch, u32 metric, in __find_rr_leaf()
782 struct fib6_result *res, struct fib6_info **cont, in __find_rr_leaf()
785 struct fib6_info *f6i; in __find_rr_leaf()
837 static void find_rr_leaf(struct fib6_node *fn, struct fib6_info *leaf, in find_rr_leaf()
838 struct fib6_info *rr_head, int oif, int strict, in find_rr_leaf()
842 struct fib6_info *cont = NULL; in find_rr_leaf()
861 struct fib6_info *leaf = rcu_dereference(fn->leaf); in rt6_select()
862 struct fib6_info *rt0; in rt6_select()
891 struct fib6_info *next = rcu_dereference(rt0->fib6_next); in rt6_select()
930 struct fib6_info *rt; in rt6_route_rcv()
1044 static unsigned short fib6_info_dst_flags(struct fib6_info *rt) in fib6_info_dst_flags()
1080 struct fib6_info *f6i = res->f6i; in ip6_rt_init_dst()
1107 static void rt6_set_from(struct rt6_info *rt, struct fib6_info *from) in rt6_set_from()
1119 struct fib6_info *f6i = res->f6i; in ip6_rt_copy_init()
1174 struct fib6_info *f6i = res->f6i; in ip6_create_rt_rcu()
1292 static int __ip6_ins_rt(struct fib6_info *rt, struct nl_info *info, in __ip6_ins_rt()
1306 int ip6_ins_rt(struct net *net, struct fib6_info *rt) in ip6_ins_rt()
1317 struct fib6_info *f6i = res->f6i; in ip6_rt_cache_alloc()
1357 struct fib6_info *f6i = res->f6i; in ip6_rt_pcpu_alloc()
1424 struct fib6_info *from; in rt6_make_pcpu_route()
1426 from = xchg((__force struct fib6_info **)&pcpu_rt->from, NULL); in rt6_make_pcpu_route()
1443 struct fib6_info *from; in rt6_remove_exception()
1455 from = xchg((__force struct fib6_info **)&rt6_ex->rt6i->from, NULL); in rt6_remove_exception()
1654 struct fib6_info *f6i = res->f6i; in rt6_insert_exception()
1732 static void fib6_nh_flush_exceptions(struct fib6_nh *nh, struct fib6_info *from) in fib6_nh_flush_exceptions()
1764 struct fib6_info *f6i = arg; in rt6_nh_flush_exceptions()
1771 void rt6_flush_exceptions(struct fib6_info *f6i) in rt6_flush_exceptions()
1883 struct fib6_info *from; in rt6_remove_exception_rt()
1958 struct fib6_info *from; in rt6_update_exception_stamp_rt()
2156 void rt6_age_exceptions(struct fib6_info *f6i, in rt6_age_exceptions()
2566 static bool fib6_check(struct fib6_info *f6i, u32 cookie) in fib6_check()
2580 struct fib6_info *from, in rt6_check()
2596 struct fib6_info *from, in rt6_dst_from_check()
2610 struct fib6_info *from; in ip6_dst_check()
2670 struct fib6_info *from; in ip6_link_failure()
2687 struct fib6_info *from; in rt6_update_expires()
2928 struct fib6_info *rt; in __ip6_route_redirect()
3121 struct fib6_info *f6i = res->f6i; in ip6_mtu_from_fib6()
3573 static struct fib6_info *ip6_route_info_create(struct fib6_config *cfg, in ip6_route_info_create()
3578 struct fib6_info *rt = NULL; in ip6_route_info_create()
3735 struct fib6_info *rt; in ip6_route_add()
3748 static int __ip6_del_rt(struct fib6_info *rt, struct nl_info *info) in __ip6_del_rt()
3769 int ip6_del_rt(struct net *net, struct fib6_info *rt, bool skip_notify) in ip6_del_rt()
3779 static int __ip6_del_rt_siblings(struct fib6_info *rt, struct fib6_config *cfg) in __ip6_del_rt_siblings()
3793 struct fib6_info *sibling, *next_sibling; in __ip6_del_rt_siblings()
3819 struct fib6_info *last_sibling, *replace_rt; in __ip6_del_rt_siblings()
3822 struct fib6_info, in __ip6_del_rt_siblings()
3874 static int ip6_del_cached_rt(struct fib6_config *cfg, struct fib6_info *rt, in ip6_del_cached_rt()
3892 struct fib6_info *f6i;
3904 static int ip6_del_cached_rt_nh(struct fib6_config *cfg, struct fib6_info *f6i) in ip6_del_cached_rt_nh()
3918 struct fib6_info *rt; in ip6_route_del()
4144 static struct fib6_info *rt6_get_route_info(struct net *net, in rt6_get_route_info()
4152 struct fib6_info *rt = NULL; in rt6_get_route_info()
4184 static struct fib6_info *rt6_add_route_info(struct net *net, in rt6_add_route_info()
4217 struct fib6_info *rt6_get_dflt_router(struct net *net, in rt6_get_dflt_router()
4222 struct fib6_info *rt; in rt6_get_dflt_router()
4249 struct fib6_info *rt6_add_dflt_router(struct net *net, in rt6_add_dflt_router()
4280 static int rt6_addrconf_purge(struct fib6_info *rt, void *arg) in rt6_addrconf_purge()
4413 struct fib6_info *addrconf_f6i_alloc(struct net *net, in addrconf_f6i_alloc()
4428 struct fib6_info *f6i; in addrconf_f6i_alloc()
4458 static int fib6_remove_prefsrc(struct fib6_info *rt, void *arg) in fib6_remove_prefsrc()
4490 static int fib6_clean_tohost(struct fib6_info *rt, void *arg) in fib6_clean_tohost()
4526 static struct fib6_info *rt6_multipath_first_sibling(const struct fib6_info *rt) in rt6_multipath_first_sibling()
4528 struct fib6_info *iter; in rt6_multipath_first_sibling()
4547 static bool rt6_is_dead(const struct fib6_info *rt) in rt6_is_dead()
4557 static int rt6_multipath_total_weight(const struct fib6_info *rt) in rt6_multipath_total_weight()
4559 struct fib6_info *iter; in rt6_multipath_total_weight()
4573 static void rt6_upper_bound_set(struct fib6_info *rt, int *weight, int total) in rt6_upper_bound_set()
4585 static void rt6_multipath_upper_bound_set(struct fib6_info *rt, int total) in rt6_multipath_upper_bound_set()
4587 struct fib6_info *iter; in rt6_multipath_upper_bound_set()
4596 void rt6_multipath_rebalance(struct fib6_info *rt) in rt6_multipath_rebalance()
4598 struct fib6_info *first; in rt6_multipath_rebalance()
4620 static int fib6_ifup(struct fib6_info *rt, void *p_arg) in fib6_ifup()
4651 static bool rt6_multipath_uses_dev(const struct fib6_info *rt, in rt6_multipath_uses_dev()
4654 struct fib6_info *iter; in rt6_multipath_uses_dev()
4665 static void rt6_multipath_flush(struct fib6_info *rt) in rt6_multipath_flush()
4667 struct fib6_info *iter; in rt6_multipath_flush()
4674 static unsigned int rt6_multipath_dead_count(const struct fib6_info *rt, in rt6_multipath_dead_count()
4677 struct fib6_info *iter; in rt6_multipath_dead_count()
4691 static void rt6_multipath_nh_flags_set(struct fib6_info *rt, in rt6_multipath_nh_flags_set()
4695 struct fib6_info *iter; in rt6_multipath_nh_flags_set()
4705 static int fib6_ifdown(struct fib6_info *rt, void *p_arg) in fib6_ifdown()
4774 struct fib6_info *f6i;
4780 struct fib6_info *f6i = arg->f6i; in fib6_nh_mtu_change()
4803 static int rt6_mtu_change_route(struct fib6_info *f6i, void *p_arg) in rt6_mtu_change_route()
5005 struct fib6_info *fib6_info; member
5012 struct fib6_info *rt, in ip6_route_info_append()
5020 if (rt6_duplicate_nexthop(nh->fib6_info, rt)) in ip6_route_info_append()
5027 nh->fib6_info = rt; in ip6_route_info_append()
5034 static void ip6_route_mpath_notify(struct fib6_info *rt, in ip6_route_mpath_notify()
5035 struct fib6_info *rt_last, in ip6_route_mpath_notify()
5047 struct fib6_info, in ip6_route_mpath_notify()
5055 static bool ip6_route_mpath_should_notify(const struct fib6_info *rt) in ip6_route_mpath_should_notify()
5059 struct fib6_info *leaf; in ip6_route_mpath_should_notify()
5097 struct fib6_info *rt_notif = NULL, *rt_last = NULL; in ip6_route_multipath_add()
5101 struct fib6_info *rt; in ip6_route_multipath_add()
5197 err = __ip6_ins_rt(nh->fib6_info, info, extack); in ip6_route_multipath_add()
5198 fib6_info_release(nh->fib6_info); in ip6_route_multipath_add()
5202 rt_last = nh->fib6_info; in ip6_route_multipath_add()
5206 rt_notif = nh->fib6_info; in ip6_route_multipath_add()
5210 nh->fib6_info = NULL; in ip6_route_multipath_add()
5278 if (nh->fib6_info) in ip6_route_multipath_add()
5279 fib6_info_release(nh->fib6_info); in ip6_route_multipath_add()
5395 static size_t rt6_nlmsg_size(struct fib6_info *f6i) in rt6_nlmsg_size()
5464 struct fib6_info *rt, struct dst_entry *dst, in rt6_fill_node()
5573 struct fib6_info *sibling, *next_sibling; in rt6_fill_node()
5651 static bool fib6_info_uses_dev(const struct fib6_info *f6i, in fib6_info_uses_dev()
5666 struct fib6_info *sibling, *next_sibling; in fib6_info_uses_dev()
5680 struct fib6_info *rt;
5738 int rt6_dump_route(struct fib6_info *rt, void *p_arg, unsigned int skip) in rt6_dump_route()
5878 struct fib6_info *from; in inet6_rtm_getroute()
6016 void inet6_rt_notify(int event, struct fib6_info *rt, struct nl_info *info, in inet6_rt_notify()
6047 void fib6_rt_update(struct net *net, struct fib6_info *rt, in fib6_rt_update()
6445 DEFINE_BPF_ITER_FUNC(ipv6_route, struct bpf_iter_meta *meta, struct fib6_info *rt)
6448 BTF_ID(struct, fib6_info)