/Linux-v5.4/include/net/ |
D | ip6_fib.h | 196 struct fib6_info *f6i; member 215 static inline void fib6_clean_expires(struct fib6_info *f6i) in fib6_clean_expires() argument 217 f6i->fib6_flags &= ~RTF_EXPIRES; in fib6_clean_expires() 218 f6i->expires = 0; in fib6_clean_expires() 221 static inline void fib6_set_expires(struct fib6_info *f6i, in fib6_set_expires() argument 224 f6i->expires = expires; in fib6_set_expires() 225 f6i->fib6_flags |= RTF_EXPIRES; in fib6_set_expires() 228 static inline bool fib6_check_expired(const struct fib6_info *f6i) in fib6_check_expired() argument 230 if (f6i->fib6_flags & RTF_EXPIRES) in fib6_check_expired() 231 return time_after(jiffies, f6i->expires); in fib6_check_expired() [all …]
|
D | ip6_route.h | 74 static inline bool rt6_qualify_for_ecmp(const struct fib6_info *f6i) in rt6_qualify_for_ecmp() argument 77 return !(f6i->fib6_flags & RTF_ADDRCONF) && !f6i->nh && in rt6_qualify_for_ecmp() 78 f6i->fib6_nh->fib_nh_gw_family; in rt6_qualify_for_ecmp() 125 int ip6_ins_rt(struct net *net, struct fib6_info *f6i); 126 int ip6_del_rt(struct net *net, struct fib6_info *f6i); 128 void rt6_flush_exceptions(struct fib6_info *f6i); 129 void rt6_age_exceptions(struct fib6_info *f6i, struct fib6_gc_args *gc_args, 132 static inline int ip6_route_get_saddr(struct net *net, struct fib6_info *f6i, in ip6_route_get_saddr() argument 139 if (f6i && f6i->fib6_prefsrc.plen) { in ip6_route_get_saddr() 140 *saddr = f6i->fib6_prefsrc.addr; in ip6_route_get_saddr() [all …]
|
D | nexthop.h | 279 static inline struct net_device *fib6_info_nh_dev(struct fib6_info *f6i) in fib6_info_nh_dev() argument 283 fib6_nh = f6i->nh ? nexthop_fib6_nh(f6i->nh) : f6i->fib6_nh; in fib6_info_nh_dev() 289 struct nexthop *nh = res->f6i->nh; in nexthop_path_fib6_result()
|
/Linux-v5.4/net/ipv6/ |
D | route.c | 103 static size_t rt6_nlmsg_size(struct fib6_info *f6i); 430 struct fib6_info *match = res->f6i; in fib6_select_path() 465 res->f6i = match; in fib6_select_path() 536 struct fib6_info *f6i = res->f6i; in rt6_device_match() local 541 if (unlikely(f6i->nh)) { in rt6_device_match() 542 nh = nexthop_fib6_nh(f6i->nh); in rt6_device_match() 543 if (nexthop_is_blackhole(f6i->nh)) in rt6_device_match() 546 nh = f6i->fib6_nh; in rt6_device_match() 552 for (spf6i = f6i; spf6i; spf6i = rcu_dereference(spf6i->fib6_next)) { in rt6_device_match() 566 res->f6i = spf6i; in rt6_device_match() [all …]
|
D | anycast.c | 253 static struct ifacaddr6 *aca_alloc(struct fib6_info *f6i, in aca_alloc() argument 263 fib6_info_hold(f6i); in aca_alloc() 264 aca->aca_rt = f6i; in aca_alloc() 280 struct fib6_info *f6i; in __ipv6_dev_ac_inc() local 301 f6i = addrconf_f6i_alloc(net, idev, addr, true, GFP_ATOMIC); in __ipv6_dev_ac_inc() 302 if (IS_ERR(f6i)) { in __ipv6_dev_ac_inc() 303 err = PTR_ERR(f6i); in __ipv6_dev_ac_inc() 306 aca = aca_alloc(f6i, addr); in __ipv6_dev_ac_inc() 308 fib6_info_release(f6i); in __ipv6_dev_ac_inc() 324 ip6_ins_rt(net, f6i); in __ipv6_dev_ac_inc()
|
D | ip6_fib.c | 106 void fib6_update_sernum(struct net *net, struct fib6_info *f6i) in fib6_update_sernum() argument 110 fn = rcu_dereference_protected(f6i->fib6_node, in fib6_update_sernum() 111 lockdep_is_held(&f6i->fib6_table->tb6_lock)); in fib6_update_sernum() 148 struct fib6_info *f6i; in fib6_info_alloc() local 149 size_t sz = sizeof(*f6i); in fib6_info_alloc() 154 f6i = kzalloc(sz, gfp_flags); in fib6_info_alloc() 155 if (!f6i) in fib6_info_alloc() 159 INIT_LIST_HEAD(&f6i->fib6_siblings); in fib6_info_alloc() 160 refcount_set(&f6i->fib6_ref, 1); in fib6_info_alloc() 162 return f6i; in fib6_info_alloc() [all …]
|
D | addrconf.c | 1044 struct fib6_info *f6i = NULL; in ipv6_add_addr() local 1087 f6i = addrconf_f6i_alloc(net, idev, cfg->pfx, false, gfp_flags); in ipv6_add_addr() 1088 if (IS_ERR(f6i)) { in ipv6_add_addr() 1089 err = PTR_ERR(f6i); in ipv6_add_addr() 1090 f6i = NULL; in ipv6_add_addr() 1096 f6i->dst_nopolicy = true; in ipv6_add_addr() 1119 ifa->rt = f6i; in ipv6_add_addr() 1153 fib6_info_release(f6i); in ipv6_add_addr() 1231 struct fib6_info *f6i; in cleanup_prefix_route() local 1233 f6i = addrconf_get_prefix_route(&ifp->addr, ifp->prefix_len, in cleanup_prefix_route() [all …]
|
D | fib6_rules.c | 81 if (err || res->f6i == net->ipv6.fib6_null_entry) in fib6_lookup() 182 if (!err && res->f6i != net->ipv6.fib6_null_entry) in fib6_rule_action_alt()
|
/Linux-v5.4/net/ipv4/ |
D | nexthop.c | 600 struct fib6_info *f6i; in fib6_check_nh_list() local 605 list_for_each_entry(f6i, &old->f6i_list, nh_list) { in fib6_check_nh_list() 606 if (check_src_addr(&f6i->fib6_src.addr, extack) < 0) in fib6_check_nh_list() 771 struct fib6_info *f6i, *tmp; in __remove_nexthop_fib() local 783 list_for_each_entry_safe(f6i, tmp, &nh->f6i_list, nh_list) { in __remove_nexthop_fib() 785 fib6_info_hold(f6i); in __remove_nexthop_fib() 786 ipv6_stub->ip6_del_rt(net, f6i); in __remove_nexthop_fib() 828 struct fib6_info *f6i; in nh_rt_cache_flush() local 833 list_for_each_entry(f6i, &nh->f6i_list, nh_list) in nh_rt_cache_flush() 834 ipv6_stub->fib6_update_sernum(net, f6i); in nh_rt_cache_flush() [all …]
|
/Linux-v5.4/include/trace/events/ |
D | fib6.h | 70 if (res->f6i == net->ipv6.fib6_null_entry) {
|
/Linux-v5.4/net/core/ |
D | filter.c | 4791 if (unlikely(err || IS_ERR_OR_NULL(res.f6i) || in bpf_ipv6_fib_lookup() 4792 res.f6i == net->ipv6.fib6_null_entry)) in bpf_ipv6_fib_lookup() 4825 params->rt_metric = res.f6i->fib6_metric; in bpf_ipv6_fib_lookup()
|