/Linux-v4.19/include/net/ |
D | ip6_fib.h | 211 static inline void fib6_clean_expires(struct fib6_info *f6i) in fib6_clean_expires() argument 213 f6i->fib6_flags &= ~RTF_EXPIRES; in fib6_clean_expires() 214 f6i->expires = 0; in fib6_clean_expires() 217 static inline void fib6_set_expires(struct fib6_info *f6i, in fib6_set_expires() argument 220 f6i->expires = expires; in fib6_set_expires() 221 f6i->fib6_flags |= RTF_EXPIRES; in fib6_set_expires() 224 static inline bool fib6_check_expired(const struct fib6_info *f6i) in fib6_check_expired() argument 226 if (f6i->fib6_flags & RTF_EXPIRES) in fib6_check_expired() 227 return time_after(jiffies, f6i->expires); in fib6_check_expired() 236 static inline bool fib6_get_cookie_safe(const struct fib6_info *f6i, in fib6_get_cookie_safe() argument [all …]
|
D | ip6_route.h | 69 static inline bool rt6_qualify_for_ecmp(const struct fib6_info *f6i) in rt6_qualify_for_ecmp() argument 71 return (f6i->fib6_flags & (RTF_GATEWAY|RTF_ADDRCONF|RTF_DYNAMIC)) == in rt6_qualify_for_ecmp() 105 int ip6_ins_rt(struct net *net, struct fib6_info *f6i); 106 int ip6_del_rt(struct net *net, struct fib6_info *f6i); 108 void rt6_flush_exceptions(struct fib6_info *f6i); 109 void rt6_age_exceptions(struct fib6_info *f6i, struct fib6_gc_args *gc_args, 112 static inline int ip6_route_get_saddr(struct net *net, struct fib6_info *f6i, in ip6_route_get_saddr() argument 119 if (f6i && f6i->fib6_prefsrc.plen) { in ip6_route_get_saddr() 120 *saddr = f6i->fib6_prefsrc.addr; in ip6_route_get_saddr() 122 struct net_device *dev = f6i ? fib6_info_nh_dev(f6i) : NULL; in ip6_route_get_saddr() [all …]
|
D | addrconf.h | 249 struct fib6_info *f6i, 253 u32 (*ip6_mtu_from_fib6)(struct fib6_info *f6i, struct in6_addr *daddr,
|
/Linux-v4.19/include/trace/events/ |
D | fib6.h | 15 TP_PROTO(const struct net *net, const struct fib6_info *f6i, 18 TP_ARGS(net, f6i, table, flp), 42 __entry->err = ip6_rt_type_to_error(f6i->fib6_type); 65 if (f6i->fib6_nh.nh_dev) { 66 __assign_str(name, f6i->fib6_nh.nh_dev); 70 if (f6i == net->ipv6.fib6_null_entry) { 76 } else if (f6i) { 78 *in6 = f6i->fib6_nh.nh_gw;
|
/Linux-v4.19/net/ipv6/ |
D | fib6_rules.c | 67 struct fib6_info *f6i; in fib6_lookup() local 84 f6i = arg.result ? : net->ipv6.fib6_null_entry; in fib6_lookup() 86 f6i = fib6_table_lookup(net, net->ipv6.fib6_local_tbl, in fib6_lookup() 88 if (!f6i || f6i == net->ipv6.fib6_null_entry) in fib6_lookup() 89 f6i = fib6_table_lookup(net, net->ipv6.fib6_main_tbl, in fib6_lookup() 93 return f6i; in fib6_lookup() 163 struct fib6_info *f6i; in fib6_rule_action_alt() local 185 f6i = fib6_table_lookup(net, table, *oif, flp6, flags); in fib6_rule_action_alt() 186 if (f6i != net->ipv6.fib6_null_entry) { in fib6_rule_action_alt() 188 fib6_info_nh_dev(f6i)); in fib6_rule_action_alt() [all …]
|
D | anycast.c | 220 static struct ifacaddr6 *aca_alloc(struct fib6_info *f6i, in aca_alloc() argument 230 fib6_info_hold(f6i); in aca_alloc() 231 aca->aca_rt = f6i; in aca_alloc() 246 struct fib6_info *f6i; in __ipv6_dev_ac_inc() local 267 f6i = addrconf_f6i_alloc(net, idev, addr, true, GFP_ATOMIC); in __ipv6_dev_ac_inc() 268 if (IS_ERR(f6i)) { in __ipv6_dev_ac_inc() 269 err = PTR_ERR(f6i); in __ipv6_dev_ac_inc() 272 aca = aca_alloc(f6i, addr); in __ipv6_dev_ac_inc() 274 fib6_info_release(f6i); in __ipv6_dev_ac_inc() 288 ip6_ins_rt(net, f6i); in __ipv6_dev_ac_inc()
|
D | ip6_fib.c | 108 void fib6_update_sernum(struct net *net, struct fib6_info *f6i) in fib6_update_sernum() argument 112 fn = rcu_dereference_protected(f6i->fib6_node, in fib6_update_sernum() 113 lockdep_is_held(&f6i->fib6_table->tb6_lock)); in fib6_update_sernum() 150 struct fib6_info *f6i; in fib6_info_alloc() local 152 f6i = kzalloc(sizeof(*f6i), gfp_flags); in fib6_info_alloc() 153 if (!f6i) in fib6_info_alloc() 156 f6i->rt6i_pcpu = alloc_percpu_gfp(struct rt6_info *, gfp_flags); in fib6_info_alloc() 157 if (!f6i->rt6i_pcpu) { in fib6_info_alloc() 158 kfree(f6i); in fib6_info_alloc() 162 INIT_LIST_HEAD(&f6i->fib6_siblings); in fib6_info_alloc() [all …]
|
D | route.c | 644 static inline bool fib6_ignore_linkdown(const struct fib6_info *f6i) in fib6_ignore_linkdown() argument 646 const struct net_device *dev = fib6_info_nh_dev(f6i); in fib6_ignore_linkdown() 1066 struct fib6_info *f6i; in ip6_pol_route_lookup() local 1076 f6i = rcu_dereference(fn->leaf); in ip6_pol_route_lookup() 1077 if (!f6i) { in ip6_pol_route_lookup() 1078 f6i = net->ipv6.fib6_null_entry; in ip6_pol_route_lookup() 1080 f6i = rt6_device_match(net, f6i, &fl6->saddr, in ip6_pol_route_lookup() 1082 if (f6i->fib6_nsiblings && fl6->flowi6_oif == 0) in ip6_pol_route_lookup() 1083 f6i = fib6_multipath_select(net, f6i, fl6, in ip6_pol_route_lookup() 1087 if (f6i == net->ipv6.fib6_null_entry) { in ip6_pol_route_lookup() [all …]
|
D | addrconf_core.c | 157 eafnosupport_fib6_multipath_select(const struct net *net, struct fib6_info *f6i, in eafnosupport_fib6_multipath_select() argument 161 return f6i; in eafnosupport_fib6_multipath_select() 165 eafnosupport_ip6_mtu_from_fib6(struct fib6_info *f6i, struct in6_addr *daddr, in eafnosupport_ip6_mtu_from_fib6() argument
|
D | addrconf.c | 994 struct fib6_info *f6i = NULL; in ipv6_add_addr() local 1035 f6i = addrconf_f6i_alloc(net, idev, cfg->pfx, false, gfp_flags); in ipv6_add_addr() 1036 if (IS_ERR(f6i)) { in ipv6_add_addr() 1037 err = PTR_ERR(f6i); in ipv6_add_addr() 1038 f6i = NULL; in ipv6_add_addr() 1044 f6i->dst_nopolicy = true; in ipv6_add_addr() 1067 ifa->rt = f6i; in ipv6_add_addr() 1101 fib6_info_release(f6i); in ipv6_add_addr() 1178 struct fib6_info *f6i; in cleanup_prefix_route() local 1180 f6i = addrconf_get_prefix_route(&ifp->addr, in cleanup_prefix_route() [all …]
|
/Linux-v4.19/net/core/ |
D | filter.c | 4352 struct fib6_info *f6i; in bpf_ipv6_fib_lookup() local 4397 f6i = ipv6_stub->fib6_table_lookup(net, tb, oif, &fl6, strict); in bpf_ipv6_fib_lookup() 4404 f6i = ipv6_stub->fib6_lookup(net, oif, &fl6, strict); in bpf_ipv6_fib_lookup() 4407 if (unlikely(IS_ERR_OR_NULL(f6i) || f6i == net->ipv6.fib6_null_entry)) in bpf_ipv6_fib_lookup() 4410 if (unlikely(f6i->fib6_flags & RTF_REJECT)) { in bpf_ipv6_fib_lookup() 4411 switch (f6i->fib6_type) { in bpf_ipv6_fib_lookup() 4423 if (f6i->fib6_type != RTN_UNICAST) in bpf_ipv6_fib_lookup() 4426 if (f6i->fib6_nsiblings && fl6.flowi6_oif == 0) in bpf_ipv6_fib_lookup() 4427 f6i = ipv6_stub->fib6_multipath_select(net, f6i, &fl6, in bpf_ipv6_fib_lookup() 4432 mtu = ipv6_stub->ip6_mtu_from_fib6(f6i, dst, src); in bpf_ipv6_fib_lookup() [all …]
|