| /linux/include/net/ |
| H A D | ip6_fib.h | 224 struct fib6_info *f6i; member 253 static inline void fib6_clean_expires(struct fib6_info *f6i) in fib6_clean_expires() argument 255 f6i->fib6_flags &= ~RTF_EXPIRES; in fib6_clean_expires() 256 f6i->expires = 0; in fib6_clean_expires() 262 static inline void fib6_set_expires(struct fib6_info *f6i, in fib6_set_expires() argument 265 f6i->expires = expires; in fib6_set_expires() 266 f6i->fib6_flags |= RTF_EXPIRES; in fib6_set_expires() 269 static inline bool fib6_check_expired(const struct fib6_info *f6i) in fib6_check_expired() argument 271 if (f6i->fib6_flags & RTF_EXPIRES) in fib6_check_expired() 272 return time_after(jiffies, f6i->expires); in fib6_check_expired() [all …]
|
| H A D | ip6_route.h | 73 static inline bool rt6_qualify_for_ecmp(const struct fib6_info *f6i) in rt6_qualify_for_ecmp() argument 76 return !(f6i->fib6_flags & RTF_ADDRCONF) && !f6i->nh && in rt6_qualify_for_ecmp() 77 f6i->fib6_nh->fib_nh_gw_family; in rt6_qualify_for_ecmp() 128 int ip6_ins_rt(struct net *net, struct fib6_info *f6i); 129 int ip6_del_rt_reason(struct net *net, struct fib6_info *f6i, 132 int ip6_del_rt(struct net *net, struct fib6_info *f6i, bool skip_notify); 134 static inline int ip6_del_rt(struct net *net, struct fib6_info *f6i, in ip6_del_rt() argument 141 void rt6_flush_exceptions(struct fib6_info *f6i); 142 void rt6_age_exceptions(struct fib6_info *f6i, struct fib6_gc_args *gc_args, 145 static inline int ip6_route_get_saddr(struct net *net, struct fib6_info *f6i, in ip6_route_get_saddr() argument [all …]
|
| H A D | nexthop.h | 534 static inline struct net_device *fib6_info_nh_dev(struct fib6_info *f6i) in fib6_info_nh_dev() argument 538 fib6_nh = f6i->nh ? nexthop_fib6_nh(f6i->nh) : f6i->fib6_nh; in fib6_info_nh_dev() 544 struct nexthop *nh = res->f6i->nh; in nexthop_path_fib6_result()
|
| /linux/net/ipv6/ |
| H A D | route.c | 109 static size_t rt6_nlmsg_size(struct fib6_info *f6i); 443 struct fib6_info *first, *match = res->f6i; in fib6_select_path() 498 res->f6i = match; in fib6_select_path() 569 struct fib6_info *f6i = res->f6i; in rt6_device_match() local 574 if (unlikely(f6i->nh)) { in rt6_device_match() 575 nh = nexthop_fib6_nh(f6i->nh); in rt6_device_match() 576 if (nexthop_is_blackhole(f6i->nh)) in rt6_device_match() 579 nh = f6i->fib6_nh; in rt6_device_match() 585 for (spf6i = f6i; spf6 in rt6_device_match() 835 struct fib6_info *f6i; __find_rr_leaf() local 1139 struct fib6_info *f6i = res->f6i; ip6_rt_init_dst() local 1179 struct fib6_info *f6i = res->f6i; ip6_rt_copy_init() local 1234 struct fib6_info *f6i = res->f6i; ip6_create_rt_rcu() local 1374 struct fib6_info *f6i = res->f6i; ip6_rt_cache_alloc() local 1414 struct fib6_info *f6i = res->f6i; ip6_rt_pcpu_alloc() local 1724 struct fib6_info *f6i = res->f6i; rt6_insert_exception() local 1840 struct fib6_info *f6i = arg; rt6_nh_flush_exceptions() local 1847 rt6_flush_exceptions(struct fib6_info * f6i) rt6_flush_exceptions() argument 2234 rt6_age_exceptions(struct fib6_info * f6i,struct fib6_gc_args * gc_args,unsigned long now) rt6_age_exceptions() argument 2778 fib6_check(struct fib6_info * f6i,u32 cookie) fib6_check() argument 3313 struct fib6_info *f6i = res->f6i; ip6_mtu_from_fib6() local 4139 struct fib6_info *f6i; global() member 4151 ip6_del_cached_rt_nh(struct fib6_config * cfg,struct fib6_info * f6i) ip6_del_cached_rt_nh() argument 4712 struct fib6_info *f6i; addrconf_f6i_alloc() local 5062 struct fib6_info *f6i; global() member 5068 struct fib6_info *f6i = arg->f6i; fib6_nh_mtu_change() local 5094 rt6_mtu_change_route(struct fib6_info * f6i,void * p_arg) rt6_mtu_change_route() argument 5720 rt6_nlmsg_size(struct fib6_info * f6i) rt6_nlmsg_size() argument 6005 fib6_info_uses_dev(const struct fib6_info * f6i,const struct net_device * dev) fib6_info_uses_dev() argument 6471 fib6_info_hw_flags_set(struct net * net,struct fib6_info * f6i,bool offload,bool trap,bool offload_failed) fib6_info_hw_flags_set() argument [all...] |
| H A D | anycast.c | 277 static struct ifacaddr6 *aca_alloc(struct fib6_info *f6i, in aca_alloc() argument 287 fib6_info_hold(f6i); in aca_alloc() 288 aca->aca_rt = f6i; in aca_alloc() 335 struct fib6_info *f6i; in __ipv6_dev_ac_inc() local 355 f6i = addrconf_f6i_alloc(net, idev, addr, true, GFP_ATOMIC, NULL); in __ipv6_dev_ac_inc() 356 if (IS_ERR(f6i)) { in __ipv6_dev_ac_inc() 357 err = PTR_ERR(f6i); in __ipv6_dev_ac_inc() 360 aca = aca_alloc(f6i, addr); in __ipv6_dev_ac_inc() 362 fib6_info_release(f6i); in __ipv6_dev_ac_inc() 378 ip6_ins_rt(net, f6i); in __ipv6_dev_ac_inc()
|
| H A D | ip6_fib.c | 107 void fib6_update_sernum(struct net *net, struct fib6_info *f6i) in fib6_update_sernum() argument 111 fn = rcu_dereference_protected(f6i->fib6_node, in fib6_update_sernum() 112 lockdep_is_held(&f6i->fib6_table->tb6_lock)); in fib6_update_sernum() 149 struct fib6_info *f6i; in fib6_info_alloc() local 150 size_t sz = sizeof(*f6i); in fib6_info_alloc() 155 f6i = kzalloc(sz, gfp_flags); in fib6_info_alloc() 156 if (!f6i) in fib6_info_alloc() 160 INIT_LIST_HEAD(&f6i->fib6_siblings); in fib6_info_alloc() 161 refcount_set(&f6i->fib6_ref, 1); in fib6_info_alloc() 163 INIT_HLIST_NODE(&f6i->gc_link); in fib6_info_alloc() [all …]
|
| H A D | addrconf.c | 1081 struct fib6_info *f6i = NULL; in ipv6_add_addr() local 1132 f6i = addrconf_f6i_alloc(net, idev, cfg->pfx, false, gfp_flags, extack); in ipv6_add_addr() 1133 if (IS_ERR(f6i)) { in ipv6_add_addr() 1134 err = PTR_ERR(f6i); in ipv6_add_addr() 1135 f6i = NULL; in ipv6_add_addr() 1161 ifa->rt = f6i; in ipv6_add_addr() 1196 fib6_info_release(f6i); in ipv6_add_addr() 1277 struct fib6_info *f6i; in cleanup_prefix_route() local 1279 f6i = addrconf_get_prefix_route(del_peer ? &ifp->peer_addr : &ifp->addr, in cleanup_prefix_route() 1282 if (f6i) { in cleanup_prefix_route() 3610 struct fib6_info *f6i, *prev; fixup_permanent_addr() local 4848 struct fib6_info *f6i; modify_prefix_route() local [all...] |
| H A D | fib6_rules.c | 88 if (err || res->f6i == net->ipv6.fib6_null_entry) in fib6_lookup() 194 if (!err && res->f6i != net->ipv6.fib6_null_entry) in fib6_rule_action_alt()
|
| /linux/net/ipv4/ |
| H A D | nexthop.c | 1606 struct fib6_info *f6i; in fib6_check_nh_list() local 1613 list_for_each_entry(f6i, &old->f6i_list, nh_list) { in fib6_check_nh_list() 1614 err = check_src_addr(&f6i->fib6_src.addr, extack); in fib6_check_nh_list() 2168 struct fib6_info *f6i; in __remove_nexthop_fib() local 2179 f6i = list_first_entry(&nh->f6i_list, typeof(*f6i), nh_list); in __remove_nexthop_fib() 2182 fib6_info_hold(f6i); in __remove_nexthop_fib() 2185 ip6_del_rt(net, f6i, in __remove_nexthop_fib() 2537 struct fib6_info *f6i; in __nexthop_replace_notify() local 2556 list_for_each_entry(f6i, &nh->f6i_list, nh_list) in __nexthop_replace_notify() 2557 fib6_rt_update(net, f6i, info); in __nexthop_replace_notify()
|
| /linux/net/core/ |
| H A D | filter.c | 6588 if (unlikely(err || IS_ERR_OR_NULL(res.f6i) || in bpf_ipv6_fib_lookup() 6589 res.f6i == net->ipv6.fib6_null_entry)) in bpf_ipv6_fib_lookup() 6624 params->rt_metric = res.f6i->fib6_metric; in bpf_ipv6_fib_lookup() 6628 if (res.f6i->fib6_prefsrc.plen) { in bpf_ipv6_fib_lookup() 6629 *src = res.f6i->fib6_prefsrc.addr; in bpf_ipv6_fib_lookup()
|