Lines Matching refs:fib6_info

105 static int rt6_score_route(struct fib6_info *rt, int oif, int strict);
106 static size_t rt6_nlmsg_size(struct fib6_info *rt);
108 struct fib6_info *rt, struct dst_entry *dst,
112 static struct rt6_info *rt6_find_cached_rt(struct fib6_info *rt,
117 static struct fib6_info *rt6_add_route_info(struct net *net,
122 static struct fib6_info *rt6_get_route_info(struct net *net,
292 static const struct fib6_info fib6_null_entry_template = {
369 struct fib6_info *from; in ip6_dst_destroy()
417 struct fib6_info *from; in rt6_check_expired()
431 struct fib6_info *fib6_multipath_select(const struct net *net, in fib6_multipath_select()
432 struct fib6_info *match, in fib6_multipath_select()
437 struct fib6_info *sibling, *next_sibling; in fib6_multipath_select()
468 static inline struct fib6_info *rt6_device_match(struct net *net, in rt6_device_match()
469 struct fib6_info *rt, in rt6_device_match()
474 struct fib6_info *sprt; in rt6_device_match()
521 static void rt6_probe(struct fib6_info *rt) in rt6_probe()
576 static inline void rt6_probe(struct fib6_info *rt) in rt6_probe()
584 static inline int rt6_check_dev(struct fib6_info *rt, int oif) in rt6_check_dev()
593 static inline enum rt6_nud_state rt6_check_neigh(struct fib6_info *rt) in rt6_check_neigh()
625 static int rt6_score_route(struct fib6_info *rt, int oif, int strict) in rt6_score_route()
644 static inline bool fib6_ignore_linkdown(const struct fib6_info *f6i) in fib6_ignore_linkdown()
658 static struct fib6_info *find_match(struct fib6_info *rt, int oif, int strict, in find_match()
659 int *mpri, struct fib6_info *match, in find_match()
697 static struct fib6_info *find_rr_leaf(struct fib6_node *fn, in find_rr_leaf()
698 struct fib6_info *leaf, in find_rr_leaf()
699 struct fib6_info *rr_head, in find_rr_leaf()
703 struct fib6_info *rt, *match, *cont; in find_rr_leaf()
736 static struct fib6_info *rt6_select(struct net *net, struct fib6_node *fn, in rt6_select()
739 struct fib6_info *leaf = rcu_dereference(fn->leaf); in rt6_select()
740 struct fib6_info *match, *rt0; in rt6_select()
768 struct fib6_info *next = rcu_dereference(rt0->fib6_next); in rt6_select()
786 static bool rt6_is_gw_or_nonexthop(const struct fib6_info *rt) in rt6_is_gw_or_nonexthop()
800 struct fib6_info *rt; in rt6_route_rcv()
872 static struct net_device *ip6_rt_get_dev_rcu(struct fib6_info *rt) in ip6_rt_get_dev_rcu()
914 static unsigned short fib6_info_dst_flags(struct fib6_info *rt) in fib6_info_dst_flags()
928 static void ip6_rt_init_dst_reject(struct rt6_info *rt, struct fib6_info *ort) in ip6_rt_init_dst_reject()
950 static void ip6_rt_init_dst(struct rt6_info *rt, struct fib6_info *ort) in ip6_rt_init_dst()
977 static void rt6_set_from(struct rt6_info *rt, struct fib6_info *from) in rt6_set_from()
989 static void ip6_rt_copy_init(struct rt6_info *rt, struct fib6_info *ort) in ip6_rt_copy_init()
1042 static struct rt6_info *ip6_create_rt_rcu(struct fib6_info *rt) in ip6_create_rt_rcu()
1066 struct fib6_info *f6i; in ip6_pol_route_lookup()
1155 static int __ip6_ins_rt(struct fib6_info *rt, struct nl_info *info, in __ip6_ins_rt()
1169 int ip6_ins_rt(struct net *net, struct fib6_info *rt) in ip6_ins_rt()
1176 static struct rt6_info *ip6_rt_cache_alloc(struct fib6_info *ort, in ip6_rt_cache_alloc()
1218 static struct rt6_info *ip6_rt_pcpu_alloc(struct fib6_info *rt) in ip6_rt_pcpu_alloc()
1241 static struct rt6_info *rt6_get_pcpu_route(struct fib6_info *rt) in rt6_get_pcpu_route()
1255 struct fib6_info *rt) in rt6_make_pcpu_route()
1398 static unsigned int fib6_mtu(const struct fib6_info *rt) in fib6_mtu()
1420 struct fib6_info *ort) in rt6_insert_exception()
1504 void rt6_flush_exceptions(struct fib6_info *rt) in rt6_flush_exceptions()
1534 static struct rt6_info *rt6_find_cached_rt(struct fib6_info *rt, in rt6_find_cached_rt()
1569 struct fib6_info *from; in rt6_remove_exception_rt()
1613 struct fib6_info *from = rt->from; in rt6_update_exception_stamp_rt()
1643 static void rt6_exceptions_remove_prefsrc(struct fib6_info *rt) in rt6_exceptions_remove_prefsrc()
1685 struct fib6_info *rt, int mtu) in rt6_exceptions_update_pmtu()
1715 static void rt6_exceptions_clean_tohost(struct fib6_info *rt, in rt6_exceptions_clean_tohost()
1794 void rt6_age_exceptions(struct fib6_info *rt, in rt6_age_exceptions()
1826 struct fib6_info *fib6_table_lookup(struct net *net, struct fib6_table *table, in fib6_table_lookup()
1830 struct fib6_info *f6i; in fib6_table_lookup()
1861 struct fib6_info *f6i; in ip6_pol_route()
2167 static bool fib6_check(struct fib6_info *f6i, u32 cookie) in fib6_check()
2181 struct fib6_info *from, in rt6_check()
2197 struct fib6_info *from, in rt6_dst_from_check()
2211 struct fib6_info *from; in ip6_dst_check()
2269 struct fib6_info *from; in ip6_link_failure()
2286 struct fib6_info *from; in rt6_update_expires()
2350 struct fib6_info *from; in __ip6_rt_update_pmtu()
2443 struct fib6_info *rt; in __ip6_route_redirect()
2633 u32 ip6_mtu_from_fib6(struct fib6_info *f6i, struct in6_addr *daddr, in ip6_mtu_from_fib6()
2737 static int ip6_convert_metrics(struct net *net, struct fib6_info *rt, in ip6_convert_metrics()
2938 static struct fib6_info *ip6_route_info_create(struct fib6_config *cfg, in ip6_route_info_create()
2943 struct fib6_info *rt = NULL; in ip6_route_info_create()
3164 struct fib6_info *rt; in ip6_route_add()
3177 static int __ip6_del_rt(struct fib6_info *rt, struct nl_info *info) in __ip6_del_rt()
3198 int ip6_del_rt(struct net *net, struct fib6_info *rt) in ip6_del_rt()
3205 static int __ip6_del_rt_siblings(struct fib6_info *rt, struct fib6_config *cfg) in __ip6_del_rt_siblings()
3219 struct fib6_info *sibling, *next_sibling; in __ip6_del_rt_siblings()
3278 struct fib6_info *rt; in ip6_route_del()
3345 struct fib6_info *from; in rt6_do_redirect()
3466 static struct fib6_info *rt6_get_route_info(struct net *net, in rt6_get_route_info()
3474 struct fib6_info *rt = NULL; in rt6_get_route_info()
3502 static struct fib6_info *rt6_add_route_info(struct net *net, in rt6_add_route_info()
3535 struct fib6_info *rt6_get_dflt_router(struct net *net, in rt6_get_dflt_router()
3540 struct fib6_info *rt; in rt6_get_dflt_router()
3560 struct fib6_info *rt6_add_dflt_router(struct net *net, in rt6_add_dflt_router()
3594 struct fib6_info *rt; in __rt6_purge_dflt_routers()
3748 struct fib6_info *addrconf_f6i_alloc(struct net *net, in addrconf_f6i_alloc()
3755 struct fib6_info *f6i; in addrconf_f6i_alloc()
3791 static int fib6_remove_prefsrc(struct fib6_info *rt, void *arg) in fib6_remove_prefsrc()
3824 static int fib6_clean_tohost(struct fib6_info *rt, void *arg) in fib6_clean_tohost()
3855 static struct fib6_info *rt6_multipath_first_sibling(const struct fib6_info *rt) in rt6_multipath_first_sibling()
3857 struct fib6_info *iter; in rt6_multipath_first_sibling()
3875 static bool rt6_is_dead(const struct fib6_info *rt) in rt6_is_dead()
3885 static int rt6_multipath_total_weight(const struct fib6_info *rt) in rt6_multipath_total_weight()
3887 struct fib6_info *iter; in rt6_multipath_total_weight()
3901 static void rt6_upper_bound_set(struct fib6_info *rt, int *weight, int total) in rt6_upper_bound_set()
3913 static void rt6_multipath_upper_bound_set(struct fib6_info *rt, int total) in rt6_multipath_upper_bound_set()
3915 struct fib6_info *iter; in rt6_multipath_upper_bound_set()
3924 void rt6_multipath_rebalance(struct fib6_info *rt) in rt6_multipath_rebalance()
3926 struct fib6_info *first; in rt6_multipath_rebalance()
3948 static int fib6_ifup(struct fib6_info *rt, void *p_arg) in fib6_ifup()
3977 static bool rt6_multipath_uses_dev(const struct fib6_info *rt, in rt6_multipath_uses_dev()
3980 struct fib6_info *iter; in rt6_multipath_uses_dev()
3991 static void rt6_multipath_flush(struct fib6_info *rt) in rt6_multipath_flush()
3993 struct fib6_info *iter; in rt6_multipath_flush()
4000 static unsigned int rt6_multipath_dead_count(const struct fib6_info *rt, in rt6_multipath_dead_count()
4003 struct fib6_info *iter; in rt6_multipath_dead_count()
4017 static void rt6_multipath_nh_flags_set(struct fib6_info *rt, in rt6_multipath_nh_flags_set()
4021 struct fib6_info *iter; in rt6_multipath_nh_flags_set()
4031 static int fib6_ifdown(struct fib6_info *rt, void *p_arg) in fib6_ifdown()
4098 static int rt6_mtu_change_route(struct fib6_info *rt, void *p_arg) in rt6_mtu_change_route()
4290 struct fib6_info *fib6_info; member
4308 struct fib6_info *rt, in ip6_route_info_append()
4316 if (rt6_duplicate_nexthop(nh->fib6_info, rt)) in ip6_route_info_append()
4323 nh->fib6_info = rt; in ip6_route_info_append()
4330 static void ip6_route_mpath_notify(struct fib6_info *rt, in ip6_route_mpath_notify()
4331 struct fib6_info *rt_last, in ip6_route_mpath_notify()
4343 struct fib6_info, in ip6_route_mpath_notify()
4354 struct fib6_info *rt_notif = NULL, *rt_last = NULL; in ip6_route_multipath_add()
4358 struct fib6_info *rt; in ip6_route_multipath_add()
4435 err = __ip6_ins_rt(nh->fib6_info, info, extack); in ip6_route_multipath_add()
4436 fib6_info_release(nh->fib6_info); in ip6_route_multipath_add()
4440 rt_last = nh->fib6_info; in ip6_route_multipath_add()
4444 rt_notif = nh->fib6_info; in ip6_route_multipath_add()
4448 nh->fib6_info = NULL; in ip6_route_multipath_add()
4489 if (nh->fib6_info) in ip6_route_multipath_add()
4490 fib6_info_release(nh->fib6_info); in ip6_route_multipath_add()
4570 static size_t rt6_nlmsg_size(struct fib6_info *rt) in rt6_nlmsg_size()
4600 static int rt6_nexthop_info(struct sk_buff *skb, struct fib6_info *rt, in rt6_nexthop_info()
4640 static int rt6_add_nexthop(struct sk_buff *skb, struct fib6_info *rt) in rt6_add_nexthop()
4668 struct fib6_info *rt, struct dst_entry *dst, in rt6_fill_node()
4776 struct fib6_info *sibling, *next_sibling; in rt6_fill_node()
4818 int rt6_dump_route(struct fib6_info *rt, void *p_arg) in rt6_dump_route()
4848 struct fib6_info *from; in inet6_rtm_getroute()
4983 void inet6_rt_notify(int event, struct fib6_info *rt, struct nl_info *info, in inet6_rt_notify()