/kernel/linux/linux-5.10/include/net/ |
H A D | ip6_fib.h | 225 struct fib6_info *f6i; member 249 static inline void fib6_clean_expires(struct fib6_info *f6i) in fib6_clean_expires() argument 251 f6i->fib6_flags &= ~RTF_EXPIRES; in fib6_clean_expires() 252 f6i->expires = 0; in fib6_clean_expires() 255 static inline void fib6_set_expires(struct fib6_info *f6i, in fib6_set_expires() argument 258 f6i->expires = expires; in fib6_set_expires() 259 f6i->fib6_flags |= RTF_EXPIRES; in fib6_set_expires() 262 static inline bool fib6_check_expired(const struct fib6_info *f6i) in fib6_check_expired() argument 264 if (f6i->fib6_flags & RTF_EXPIRES) in fib6_check_expired() 265 return time_after(jiffies, f6i in fib6_check_expired() 274 fib6_get_cookie_safe(const struct fib6_info *f6i, u32 *cookie) fib6_get_cookie_safe() argument 323 fib6_info_hold(struct fib6_info *f6i) fib6_info_hold() argument 328 fib6_info_hold_safe(struct fib6_info *f6i) fib6_info_hold_safe() argument 333 fib6_info_release(struct fib6_info *f6i) fib6_info_release() argument 339 fib6_info_hw_flags_set(struct fib6_info *f6i, bool offload, bool trap) fib6_info_hw_flags_set() argument 545 fib6_metric_locked(struct fib6_info *f6i, int metric) fib6_metric_locked() argument [all...] |
H A 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() 126 int ip6_ins_rt(struct net *net, struct fib6_info *f6i); 127 int ip6_del_rt(struct net *net, struct fib6_info *f6i, bool skip_notify); 129 void rt6_flush_exceptions(struct fib6_info *f6i); 130 void rt6_age_exceptions(struct fib6_info *f6i, struct fib6_gc_args *gc_args, 133 static inline int ip6_route_get_saddr(struct net *net, struct fib6_info *f6i, in ip6_route_get_saddr() argument 140 if (f6i in ip6_route_get_saddr() [all...] |
H A D | nexthop.h | 409 static inline struct net_device *fib6_info_nh_dev(struct fib6_info *f6i) in fib6_info_nh_dev() argument 413 fib6_nh = f6i->nh ? nexthop_fib6_nh(f6i->nh) : f6i->fib6_nh; in fib6_info_nh_dev() 419 struct nexthop *nh = res->f6i->nh; in nexthop_path_fib6_result()
|
/kernel/linux/linux-6.6/include/net/ |
H A D | ip6_fib.h | 226 struct fib6_info *f6i; member 250 static inline void fib6_clean_expires(struct fib6_info *f6i) in fib6_clean_expires() argument 252 f6i->fib6_flags &= ~RTF_EXPIRES; in fib6_clean_expires() 253 f6i->expires = 0; in fib6_clean_expires() 256 static inline void fib6_set_expires(struct fib6_info *f6i, in fib6_set_expires() argument 259 f6i->expires = expires; in fib6_set_expires() 260 f6i->fib6_flags |= RTF_EXPIRES; in fib6_set_expires() 263 static inline bool fib6_check_expired(const struct fib6_info *f6i) in fib6_check_expired() argument 265 if (f6i->fib6_flags & RTF_EXPIRES) in fib6_check_expired() 266 return time_after(jiffies, f6i in fib6_check_expired() 275 fib6_get_cookie_safe(const struct fib6_info *f6i, u32 *cookie) fib6_get_cookie_safe() argument 324 fib6_info_hold(struct fib6_info *f6i) fib6_info_hold() argument 329 fib6_info_hold_safe(struct fib6_info *f6i) fib6_info_hold_safe() argument 334 fib6_info_release(struct fib6_info *f6i) fib6_info_release() argument 535 fib6_metric_locked(struct fib6_info *f6i, int metric) fib6_metric_locked() argument [all...] |
H A 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() 122 int ip6_ins_rt(struct net *net, struct fib6_info *f6i); 123 int ip6_del_rt(struct net *net, struct fib6_info *f6i, bool skip_notify); 125 void rt6_flush_exceptions(struct fib6_info *f6i); 126 void rt6_age_exceptions(struct fib6_info *f6i, struct fib6_gc_args *gc_args, 129 static inline int ip6_route_get_saddr(struct net *net, struct fib6_info *f6i, in ip6_route_get_saddr() argument 136 if (f6i in ip6_route_get_saddr() [all...] |
H A D | nexthop.h | 500 static inline struct net_device *fib6_info_nh_dev(struct fib6_info *f6i) in fib6_info_nh_dev() argument 504 fib6_nh = f6i->nh ? nexthop_fib6_nh(f6i->nh) : f6i->fib6_nh; in fib6_info_nh_dev() 510 struct nexthop *nh = res->f6i->nh; in nexthop_path_fib6_result()
|
/kernel/linux/linux-6.6/net/ipv6/ |
H A D | route.c | 108 static size_t rt6_nlmsg_size(struct fib6_info *f6i); 418 struct fib6_info *match = res->f6i; in fib6_select_path() 459 res->f6i = match; in fib6_select_path() 530 struct fib6_info *f6i = res->f6i; in rt6_device_match() local 535 if (unlikely(f6i->nh)) { in rt6_device_match() 536 nh = nexthop_fib6_nh(f6i->nh); in rt6_device_match() 537 if (nexthop_is_blackhole(f6i->nh)) in rt6_device_match() 540 nh = f6i->fib6_nh; in rt6_device_match() 546 for (spf6i = f6i; spf6 in rt6_device_match() 791 struct fib6_info *f6i; __find_rr_leaf() local 1086 struct fib6_info *f6i = res->f6i; ip6_rt_init_dst() local 1125 struct fib6_info *f6i = res->f6i; ip6_rt_copy_init() local 1180 struct fib6_info *f6i = res->f6i; ip6_create_rt_rcu() local 1320 struct fib6_info *f6i = res->f6i; ip6_rt_cache_alloc() local 1360 struct fib6_info *f6i = res->f6i; ip6_rt_pcpu_alloc() local 1657 struct fib6_info *f6i = res->f6i; rt6_insert_exception() local 1767 struct fib6_info *f6i = arg; rt6_nh_flush_exceptions() local 1774 rt6_flush_exceptions(struct fib6_info *f6i) rt6_flush_exceptions() argument 2156 rt6_age_exceptions(struct fib6_info *f6i, struct fib6_gc_args *gc_args, unsigned long now) rt6_age_exceptions() argument 2689 fib6_check(struct fib6_info *f6i, u32 cookie) fib6_check() argument 3224 struct fib6_info *f6i = res->f6i; ip6_mtu_from_fib6() local 3997 struct fib6_info *f6i; global() member 4009 ip6_del_cached_rt_nh(struct fib6_config *cfg, struct fib6_info *f6i) ip6_del_cached_rt_nh() argument 4562 struct fib6_info *f6i; addrconf_f6i_alloc() local 4905 struct fib6_info *f6i; global() member 4911 struct fib6_info *f6i = arg->f6i; fib6_nh_mtu_change() local 4934 rt6_mtu_change_route(struct fib6_info *f6i, void *p_arg) rt6_mtu_change_route() argument 5525 rt6_nlmsg_size(struct fib6_info *f6i) rt6_nlmsg_size() argument 5788 fib6_info_uses_dev(const struct fib6_info *f6i, const struct net_device *dev) fib6_info_uses_dev() argument 6211 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 | 260 static struct ifacaddr6 *aca_alloc(struct fib6_info *f6i, in aca_alloc() argument 270 fib6_info_hold(f6i); in aca_alloc() 271 aca->aca_rt = f6i; in aca_alloc() 287 struct fib6_info *f6i; in __ipv6_dev_ac_inc() local 308 f6i = addrconf_f6i_alloc(net, idev, addr, true, GFP_ATOMIC, NULL); in __ipv6_dev_ac_inc() 309 if (IS_ERR(f6i)) { in __ipv6_dev_ac_inc() 310 err = PTR_ERR(f6i); in __ipv6_dev_ac_inc() 313 aca = aca_alloc(f6i, addr); in __ipv6_dev_ac_inc() 315 fib6_info_release(f6i); in __ipv6_dev_ac_inc() 331 ip6_ins_rt(net, f6i); in __ipv6_dev_ac_inc() [all...] |
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 return f6i; in fib6_info_alloc() 168 struct fib6_info *f6i = container_of(head, struct fib6_info, rcu); fib6_info_destroy_rcu() local 714 fib6_metric_set(struct fib6_info *f6i, int metric, u32 val) fib6_metric_set() argument 1001 fib6_drop_pcpu_from(struct fib6_info *f6i, const struct fib6_table *table) fib6_drop_pcpu_from() argument 1360 fib6_update_sernum_stub(struct net *net, struct fib6_info *f6i) fib6_update_sernum_stub() argument [all...] |
H A D | addrconf.c | 1078 struct fib6_info *f6i = NULL; in ipv6_add_addr() local 1129 f6i = addrconf_f6i_alloc(net, idev, cfg->pfx, false, gfp_flags, extack); in ipv6_add_addr() 1130 if (IS_ERR(f6i)) { in ipv6_add_addr() 1131 err = PTR_ERR(f6i); in ipv6_add_addr() 1132 f6i = NULL; in ipv6_add_addr() 1158 ifa->rt = f6i; in ipv6_add_addr() 1192 fib6_info_release(f6i); in ipv6_add_addr() 1271 struct fib6_info *f6i; in cleanup_prefix_route() local 1273 f6i = addrconf_get_prefix_route(del_peer ? &ifp->peer_addr : &ifp->addr, in cleanup_prefix_route() 1276 if (f6i) { in cleanup_prefix_route() 3535 struct fib6_info *f6i, *prev; fixup_permanent_addr() local 4755 struct fib6_info *f6i; modify_prefix_route() local [all...] |
H A D | fib6_rules.c | 84 if (err || res->f6i == net->ipv6.fib6_null_entry) in fib6_lookup() 187 if (!err && res->f6i != net->ipv6.fib6_null_entry) in fib6_rule_action_alt()
|
/kernel/linux/linux-5.10/net/ipv6/ |
H A D | route.c | 107 static size_t rt6_nlmsg_size(struct fib6_info *f6i); 417 struct fib6_info *match = res->f6i; in fib6_select_path() 455 res->f6i = match; in fib6_select_path() 526 struct fib6_info *f6i = res->f6i; in rt6_device_match() local 531 if (unlikely(f6i->nh)) { in rt6_device_match() 532 nh = nexthop_fib6_nh(f6i->nh); in rt6_device_match() 533 if (nexthop_is_blackhole(f6i->nh)) in rt6_device_match() 536 nh = f6i->fib6_nh; in rt6_device_match() 542 for (spf6i = f6i; spf6 in rt6_device_match() 788 struct fib6_info *f6i; __find_rr_leaf() local 1083 struct fib6_info *f6i = res->f6i; ip6_rt_init_dst() local 1122 struct fib6_info *f6i = res->f6i; ip6_rt_copy_init() local 1177 struct fib6_info *f6i = res->f6i; ip6_create_rt_rcu() local 1320 struct fib6_info *f6i = res->f6i; ip6_rt_cache_alloc() local 1360 struct fib6_info *f6i = res->f6i; ip6_rt_pcpu_alloc() local 1658 struct fib6_info *f6i = res->f6i; rt6_insert_exception() local 1768 struct fib6_info *f6i = arg; rt6_nh_flush_exceptions() local 1775 rt6_flush_exceptions(struct fib6_info *f6i) rt6_flush_exceptions() argument 2160 rt6_age_exceptions(struct fib6_info *f6i, struct fib6_gc_args *gc_args, unsigned long now) rt6_age_exceptions() argument 2570 fib6_check(struct fib6_info *f6i, u32 cookie) fib6_check() argument 3125 struct fib6_info *f6i = res->f6i; ip6_mtu_from_fib6() local 3913 struct fib6_info *f6i; global() member 3925 ip6_del_cached_rt_nh(struct fib6_config *cfg, struct fib6_info *f6i) ip6_del_cached_rt_nh() argument 4472 struct fib6_info *f6i; addrconf_f6i_alloc() local 4818 struct fib6_info *f6i; global() member 4824 struct fib6_info *f6i = arg->f6i; fib6_nh_mtu_change() local 4847 rt6_mtu_change_route(struct fib6_info *f6i, void *p_arg) rt6_mtu_change_route() argument 5432 rt6_nlmsg_size(struct fib6_info *f6i) rt6_nlmsg_size() argument 5689 fib6_info_uses_dev(const struct fib6_info *f6i, const struct net_device *dev) fib6_info_uses_dev() argument [all...] |
H A D | anycast.c | 260 static struct ifacaddr6 *aca_alloc(struct fib6_info *f6i, in aca_alloc() argument 270 fib6_info_hold(f6i); in aca_alloc() 271 aca->aca_rt = f6i; in aca_alloc() 287 struct fib6_info *f6i; in __ipv6_dev_ac_inc() local 308 f6i = addrconf_f6i_alloc(net, idev, addr, true, GFP_ATOMIC); in __ipv6_dev_ac_inc() 309 if (IS_ERR(f6i)) { in __ipv6_dev_ac_inc() 310 err = PTR_ERR(f6i); in __ipv6_dev_ac_inc() 313 aca = aca_alloc(f6i, addr); in __ipv6_dev_ac_inc() 315 fib6_info_release(f6i); in __ipv6_dev_ac_inc() 331 ip6_ins_rt(net, f6i); in __ipv6_dev_ac_inc() [all...] |
H A 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() 167 struct fib6_info *f6i = container_of(head, struct fib6_info, rcu); fib6_info_destroy_rcu() local 713 fib6_metric_set(struct fib6_info *f6i, int metric, u32 val) fib6_metric_set() argument 1004 fib6_drop_pcpu_from(struct fib6_info *f6i, const struct fib6_table *table) fib6_drop_pcpu_from() argument 1363 fib6_update_sernum_stub(struct net *net, struct fib6_info *f6i) fib6_update_sernum_stub() argument [all...] |
H A D | addrconf.c | 1056 struct fib6_info *f6i = NULL; in ipv6_add_addr() local 1099 f6i = addrconf_f6i_alloc(net, idev, cfg->pfx, false, gfp_flags); in ipv6_add_addr() 1100 if (IS_ERR(f6i)) { in ipv6_add_addr() 1101 err = PTR_ERR(f6i); in ipv6_add_addr() 1102 f6i = NULL; in ipv6_add_addr() 1127 ifa->rt = f6i; in ipv6_add_addr() 1161 fib6_info_release(f6i); in ipv6_add_addr() 1240 struct fib6_info *f6i; in cleanup_prefix_route() local 1242 f6i = addrconf_get_prefix_route(del_peer ? &ifp->peer_addr : &ifp->addr, in cleanup_prefix_route() 1245 if (f6i) { in cleanup_prefix_route() 3453 struct fib6_info *f6i, *prev; fixup_permanent_addr() local 4687 struct fib6_info *f6i; modify_prefix_route() local [all...] |
H A D | fib6_rules.c | 83 if (err || res->f6i == net->ipv6.fib6_null_entry) in fib6_lookup() 186 if (!err && res->f6i != net->ipv6.fib6_null_entry) in fib6_rule_action_alt()
|
/kernel/linux/linux-5.10/net/ipv4/ |
H A D | nexthop.c | 674 struct fib6_info *f6i; in fib6_check_nh_list() local 679 list_for_each_entry(f6i, &old->f6i_list, nh_list) { in fib6_check_nh_list() 680 if (check_src_addr(&f6i->fib6_src.addr, extack) < 0) in fib6_check_nh_list() 870 struct fib6_info *f6i, *tmp; in __remove_nexthop_fib() local 882 list_for_each_entry_safe(f6i, tmp, &nh->f6i_list, nh_list) { in __remove_nexthop_fib() 884 fib6_info_hold(f6i); in __remove_nexthop_fib() 885 ipv6_stub->ip6_del_rt(net, f6i, in __remove_nexthop_fib() 931 struct fib6_info *f6i; in nh_rt_cache_flush() local 938 list_for_each_entry(f6i, &nh->f6i_list, nh_list) in nh_rt_cache_flush() 939 ipv6_stub->fib6_update_sernum(net, f6i); in nh_rt_cache_flush() 1050 struct fib6_info *f6i; __nexthop_replace_notify() local [all...] |
/kernel/linux/linux-5.10/include/trace/events/ |
H A D | fib6.h | 70 if (res->f6i == net->ipv6.fib6_null_entry) {
|
/kernel/linux/linux-6.6/include/trace/events/ |
H A D | fib6.h | 70 if (res->f6i == net->ipv6.fib6_null_entry) {
|
/kernel/linux/linux-6.6/net/ipv4/ |
H A D | nexthop.c | 1337 struct fib6_info *f6i; in fib6_check_nh_list() local 1342 list_for_each_entry(f6i, &old->f6i_list, nh_list) { in fib6_check_nh_list() 1343 if (check_src_addr(&f6i->fib6_src.addr, extack) < 0) in fib6_check_nh_list() 1868 struct fib6_info *f6i, *tmp; in __remove_nexthop_fib() local 1880 list_for_each_entry_safe(f6i, tmp, &nh->f6i_list, nh_list) { in __remove_nexthop_fib() 1882 fib6_info_hold(f6i); in __remove_nexthop_fib() 1883 ipv6_stub->ip6_del_rt(net, f6i, in __remove_nexthop_fib() 1929 struct fib6_info *f6i; in nh_rt_cache_flush() local 1936 list_for_each_entry(f6i, &nh->f6i_list, nh_list) in nh_rt_cache_flush() 1937 ipv6_stub->fib6_update_sernum(net, f6i); in nh_rt_cache_flush() 2206 struct fib6_info *f6i; __nexthop_replace_notify() local [all...] |
/kernel/linux/linux-6.6/net/core/ |
H A D | filter.c | 6012 if (unlikely(err || IS_ERR_OR_NULL(res.f6i) || in bpf_ipv6_fib_lookup() 6013 res.f6i == net->ipv6.fib6_null_entry)) in bpf_ipv6_fib_lookup() 6048 params->rt_metric = res.f6i->fib6_metric; in bpf_ipv6_fib_lookup() 6052 if (res.f6i->fib6_prefsrc.plen) { in bpf_ipv6_fib_lookup() 6053 *src = res.f6i->fib6_prefsrc.addr; in bpf_ipv6_fib_lookup()
|
/kernel/linux/linux-5.10/net/core/ |
H A D | filter.c | 5559 if (unlikely(err || IS_ERR_OR_NULL(res.f6i) || in bpf_ipv6_fib_lookup() 5560 res.f6i == net->ipv6.fib6_null_entry)) in bpf_ipv6_fib_lookup() 5593 params->rt_metric = res.f6i->fib6_metric; in bpf_ipv6_fib_lookup()
|