Lines Matching refs:fib6_info

108 static size_t rt6_nlmsg_size(struct fib6_info *f6i);
110 struct fib6_info *rt, struct dst_entry *dst,
119 static struct fib6_info *rt6_add_route_info(struct net *net,
124 static struct fib6_info *rt6_get_route_info(struct net *net,
280 static const struct fib6_info fib6_null_entry_template = {
356 struct fib6_info *from; in ip6_dst_destroy()
368 from = xchg((__force struct fib6_info **)&rt->from, NULL); in ip6_dst_destroy()
399 struct fib6_info *from; in rt6_check_expired()
417 struct fib6_info *sibling, *next_sibling; in fib6_select_path()
418 struct fib6_info *match = res->f6i; in fib6_select_path()
527 struct fib6_info *f6i = res->f6i; in rt6_device_match()
528 struct fib6_info *spf6i; in rt6_device_match()
782 static void __find_rr_leaf(struct fib6_info *f6i_start, in __find_rr_leaf()
783 struct fib6_info *nomatch, u32 metric, in __find_rr_leaf()
784 struct fib6_result *res, struct fib6_info **cont, in __find_rr_leaf()
787 struct fib6_info *f6i; in __find_rr_leaf()
839 static void find_rr_leaf(struct fib6_node *fn, struct fib6_info *leaf, in find_rr_leaf()
840 struct fib6_info *rr_head, int oif, int strict, in find_rr_leaf()
844 struct fib6_info *cont = NULL; in find_rr_leaf()
863 struct fib6_info *leaf = rcu_dereference(fn->leaf); in rt6_select()
864 struct fib6_info *rt0; in rt6_select()
893 struct fib6_info *next = rcu_dereference(rt0->fib6_next); in rt6_select()
932 struct fib6_info *rt; in rt6_route_rcv()
1046 static unsigned short fib6_info_dst_flags(struct fib6_info *rt) in fib6_info_dst_flags()
1082 struct fib6_info *f6i = res->f6i; in ip6_rt_init_dst()
1109 static void rt6_set_from(struct rt6_info *rt, struct fib6_info *from) in rt6_set_from()
1121 struct fib6_info *f6i = res->f6i; in ip6_rt_copy_init()
1176 struct fib6_info *f6i = res->f6i; in ip6_create_rt_rcu()
1294 static int __ip6_ins_rt(struct fib6_info *rt, struct nl_info *info, in __ip6_ins_rt()
1308 int ip6_ins_rt(struct net *net, struct fib6_info *rt) in ip6_ins_rt()
1319 struct fib6_info *f6i = res->f6i; in ip6_rt_cache_alloc()
1359 struct fib6_info *f6i = res->f6i; in ip6_rt_pcpu_alloc()
1426 struct fib6_info *from; in rt6_make_pcpu_route()
1428 from = xchg((__force struct fib6_info **)&pcpu_rt->from, NULL); in rt6_make_pcpu_route()
1445 struct fib6_info *from; in rt6_remove_exception()
1457 from = xchg((__force struct fib6_info **)&rt6_ex->rt6i->from, NULL); in rt6_remove_exception()
1656 struct fib6_info *f6i = res->f6i; in rt6_insert_exception()
1734 static void fib6_nh_flush_exceptions(struct fib6_nh *nh, struct fib6_info *from) in fib6_nh_flush_exceptions()
1766 struct fib6_info *f6i = arg; in rt6_nh_flush_exceptions()
1773 void rt6_flush_exceptions(struct fib6_info *f6i) in rt6_flush_exceptions()
1885 struct fib6_info *from; in rt6_remove_exception_rt()
1960 struct fib6_info *from; in rt6_update_exception_stamp_rt()
2155 void rt6_age_exceptions(struct fib6_info *f6i, in rt6_age_exceptions()
2692 static bool fib6_check(struct fib6_info *f6i, u32 cookie) in fib6_check()
2706 struct fib6_info *from, in rt6_check()
2722 struct fib6_info *from, in rt6_dst_from_check()
2737 struct fib6_info *from; in ip6_dst_check()
2798 struct fib6_info *from; in ip6_link_failure()
2815 struct fib6_info *from; in rt6_update_expires()
3056 struct fib6_info *rt; in __ip6_route_redirect()
3232 struct fib6_info *f6i = res->f6i; in ip6_mtu_from_fib6()
3702 static struct fib6_info *ip6_route_info_create(struct fib6_config *cfg, in ip6_route_info_create()
3707 struct fib6_info *rt = NULL; in ip6_route_info_create()
3864 struct fib6_info *rt; in ip6_route_add()
3877 static int __ip6_del_rt(struct fib6_info *rt, struct nl_info *info) in __ip6_del_rt()
3898 int ip6_del_rt(struct net *net, struct fib6_info *rt, bool skip_notify) in ip6_del_rt()
3908 static int __ip6_del_rt_siblings(struct fib6_info *rt, struct fib6_config *cfg) in __ip6_del_rt_siblings()
3922 struct fib6_info *sibling, *next_sibling; in __ip6_del_rt_siblings()
3948 struct fib6_info *last_sibling, *replace_rt; in __ip6_del_rt_siblings()
3951 struct fib6_info, in __ip6_del_rt_siblings()
4003 static int ip6_del_cached_rt(struct fib6_config *cfg, struct fib6_info *rt, in ip6_del_cached_rt()
4021 struct fib6_info *f6i;
4033 static int ip6_del_cached_rt_nh(struct fib6_config *cfg, struct fib6_info *f6i) in ip6_del_cached_rt_nh()
4047 struct fib6_info *rt; in ip6_route_del()
4273 static struct fib6_info *rt6_get_route_info(struct net *net, in rt6_get_route_info()
4281 struct fib6_info *rt = NULL; in rt6_get_route_info()
4313 static struct fib6_info *rt6_add_route_info(struct net *net, in rt6_add_route_info()
4346 struct fib6_info *rt6_get_dflt_router(struct net *net, in rt6_get_dflt_router()
4351 struct fib6_info *rt; in rt6_get_dflt_router()
4378 struct fib6_info *rt6_add_dflt_router(struct net *net, in rt6_add_dflt_router()
4413 struct fib6_info *rt; in __rt6_purge_dflt_routers()
4566 struct fib6_info *addrconf_f6i_alloc(struct net *net, in addrconf_f6i_alloc()
4581 struct fib6_info *f6i; in addrconf_f6i_alloc()
4604 static int fib6_remove_prefsrc(struct fib6_info *rt, void *arg) in fib6_remove_prefsrc()
4636 static int fib6_clean_tohost(struct fib6_info *rt, void *arg) in fib6_clean_tohost()
4672 static struct fib6_info *rt6_multipath_first_sibling(const struct fib6_info *rt) in rt6_multipath_first_sibling()
4674 struct fib6_info *iter; in rt6_multipath_first_sibling()
4693 static bool rt6_is_dead(const struct fib6_info *rt) in rt6_is_dead()
4703 static int rt6_multipath_total_weight(const struct fib6_info *rt) in rt6_multipath_total_weight()
4705 struct fib6_info *iter; in rt6_multipath_total_weight()
4719 static void rt6_upper_bound_set(struct fib6_info *rt, int *weight, int total) in rt6_upper_bound_set()
4731 static void rt6_multipath_upper_bound_set(struct fib6_info *rt, int total) in rt6_multipath_upper_bound_set()
4733 struct fib6_info *iter; in rt6_multipath_upper_bound_set()
4742 void rt6_multipath_rebalance(struct fib6_info *rt) in rt6_multipath_rebalance()
4744 struct fib6_info *first; in rt6_multipath_rebalance()
4766 static int fib6_ifup(struct fib6_info *rt, void *p_arg) in fib6_ifup()
4797 static bool rt6_multipath_uses_dev(const struct fib6_info *rt, in rt6_multipath_uses_dev()
4800 struct fib6_info *iter; in rt6_multipath_uses_dev()
4811 static void rt6_multipath_flush(struct fib6_info *rt) in rt6_multipath_flush()
4813 struct fib6_info *iter; in rt6_multipath_flush()
4820 static unsigned int rt6_multipath_dead_count(const struct fib6_info *rt, in rt6_multipath_dead_count()
4823 struct fib6_info *iter; in rt6_multipath_dead_count()
4837 static void rt6_multipath_nh_flags_set(struct fib6_info *rt, in rt6_multipath_nh_flags_set()
4841 struct fib6_info *iter; in rt6_multipath_nh_flags_set()
4851 static int fib6_ifdown(struct fib6_info *rt, void *p_arg) in fib6_ifdown()
4920 struct fib6_info *f6i;
4926 struct fib6_info *f6i = arg->f6i; in fib6_nh_mtu_change()
4949 static int rt6_mtu_change_route(struct fib6_info *f6i, void *p_arg) in rt6_mtu_change_route()
5151 struct fib6_info *fib6_info; member
5158 struct fib6_info *rt, in ip6_route_info_append()
5166 if (rt6_duplicate_nexthop(nh->fib6_info, rt)) in ip6_route_info_append()
5173 nh->fib6_info = rt; in ip6_route_info_append()
5180 static void ip6_route_mpath_notify(struct fib6_info *rt, in ip6_route_mpath_notify()
5181 struct fib6_info *rt_last, in ip6_route_mpath_notify()
5193 struct fib6_info, in ip6_route_mpath_notify()
5201 static bool ip6_route_mpath_should_notify(const struct fib6_info *rt) in ip6_route_mpath_should_notify()
5205 struct fib6_info *leaf; in ip6_route_mpath_should_notify()
5243 struct fib6_info *rt_notif = NULL, *rt_last = NULL; in ip6_route_multipath_add()
5247 struct fib6_info *rt; in ip6_route_multipath_add()
5343 err = __ip6_ins_rt(nh->fib6_info, info, extack); in ip6_route_multipath_add()
5344 fib6_info_release(nh->fib6_info); in ip6_route_multipath_add()
5348 rt_last = nh->fib6_info; in ip6_route_multipath_add()
5352 rt_notif = nh->fib6_info; in ip6_route_multipath_add()
5356 nh->fib6_info = NULL; in ip6_route_multipath_add()
5424 if (nh->fib6_info) in ip6_route_multipath_add()
5425 fib6_info_release(nh->fib6_info); in ip6_route_multipath_add()
5541 static size_t rt6_nlmsg_size(struct fib6_info *f6i) in rt6_nlmsg_size()
5610 struct fib6_info *rt, struct dst_entry *dst, in rt6_fill_node()
5723 struct fib6_info *sibling, *next_sibling; in rt6_fill_node()
5803 static bool fib6_info_uses_dev(const struct fib6_info *f6i, in fib6_info_uses_dev()
5818 struct fib6_info *sibling, *next_sibling; in fib6_info_uses_dev()
5832 struct fib6_info *rt;
5890 int rt6_dump_route(struct fib6_info *rt, void *p_arg, unsigned int skip) in rt6_dump_route()
6030 struct fib6_info *from; in inet6_rtm_getroute()
6168 void inet6_rt_notify(int event, struct fib6_info *rt, struct nl_info *info, in inet6_rt_notify()
6199 void fib6_rt_update(struct net *net, struct fib6_info *rt, in fib6_rt_update()
6226 void fib6_info_hw_flags_set(struct net *net, struct fib6_info *f6i, in fib6_info_hw_flags_set()
6638 DEFINE_BPF_ITER_FUNC(ipv6_route, struct bpf_iter_meta *meta, struct fib6_info *rt)
6641 BTF_ID(struct, fib6_info)