/net/ipv4/ |
D | fib_semantics.c | 67 #define for_nexthops(fi) { \ argument 69 for (nhsel = 0, nh = (fi)->fib_nh; \ 70 nhsel < fib_info_num_path((fi)); \ 73 #define change_nexthops(fi) { \ argument 75 for (nhsel = 0, nexthop_nh = (struct fib_nh *)((fi)->fib_nh); \ 76 nhsel < fib_info_num_path((fi)); \ 83 #define for_nexthops(fi) { \ argument 84 int nhsel; const struct fib_nh *nh = (fi)->fib_nh; \ 87 #define change_nexthops(fi) { \ argument 89 struct fib_nh *nexthop_nh = (struct fib_nh *)((fi)->fib_nh); \ [all …]
|
D | fib_lookup.h | 38 int fib_nh_match(struct net *net, struct fib_config *cfg, struct fib_info *fi, 40 bool fib_metrics_match(struct fib_config *cfg, struct fib_info *fi); 45 size_t fib_nlmsg_size(struct fib_info *fi); 48 struct fib_info *fi) in fib_result_assign() argument 51 res->fi = fi; in fib_result_assign() 52 res->nhc = fib_info_nhc(fi, 0); in fib_result_assign()
|
D | fib_trie.c | 83 .fi = fa->fa_info, in call_fib_entry_notifier() 100 .fi = fa->fa_info, in call_fib_entry_notifiers() 1030 fa->fa_tos == fri->tos && fa->fa_info == fri->fi && in fib_find_matching_alias() 1217 struct fib_info *fi; in fib_table_insert() local 1231 fi = fib_create_info(cfg, extack); in fib_table_insert() 1232 if (IS_ERR(fi)) { in fib_table_insert() 1233 err = PTR_ERR(fi); in fib_table_insert() 1238 fa = l ? fib_find_alias(&l->leaf, slen, tos, fi->fib_priority, in fib_table_insert() 1251 fa->fa_info->fib_priority == fi->fib_priority) { in fib_table_insert() 1272 if (fa->fa_info->fib_priority != fi->fib_priority) in fib_table_insert() [all …]
|
D | route.c | 1406 struct fib_info *fi = res->fi; in ip_mtu_from_fib_result() local 1410 fi->fib_metrics->metrics[RTAX_LOCK - 1] & (1 << RTAX_MTU)) in ip_mtu_from_fib_result() 1411 mtu = fi->fib_mtu; in ip_mtu_from_fib_result() 1574 struct fib_info *fi, u16 type, u32 itag, in rt_set_nexthop() argument 1579 if (fi) { in rt_set_nexthop() 1592 ip_dst_init_metrics(&rt->dst, fi->fib_metrics); in rt_set_nexthop() 1826 do_cache = res->fi && !itag; in __mkroute_input() 1880 rt_set_nexthop(rth, daddr, res, fnhe, res->fi, res->type, itag, in __mkroute_input() 2152 if (res->fi && fib_info_num_path(res->fi) > 1) { in ip_mkroute_input() 2153 int h = fib_multipath_hash(res->fi->fib_net, NULL, skb, hkeys); in ip_mkroute_input() [all …]
|
D | fib_rules.c | 150 if (result->fi) { in fib4_rule_suppress() 151 struct fib_nh_common *nhc = fib_info_nhc(result->fi, 0); in fib4_rule_suppress() 172 fib_info_put(result->fi); in fib4_rule_suppress()
|
D | fib_frontend.c | 225 struct fib_nh_common *nhc = fib_info_nhc(res.fi, 0); in __inet_dev_addr_type() 308 bool fib_info_nh_uses_dev(struct fib_info *fi, const struct net_device *dev) in fib_info_nh_uses_dev() argument 312 if (unlikely(fi->nh)) { in fib_info_nh_uses_dev() 313 dev_match = nexthop_uses_dev(fi->nh, dev); in fib_info_nh_uses_dev() 317 for (ret = 0; ret < fib_info_num_path(fi); ret++) { in fib_info_nh_uses_dev() 318 const struct fib_nh_common *nhc = fib_info_nhc(fi, ret); in fib_info_nh_uses_dev() 327 if (fib_info_nhc(fi, 0)->nhc_dev == dev) in fib_info_nh_uses_dev() 385 dev_match = fib_info_nh_uses_dev(res.fi, dev); in __fib_validate_source()
|
D | nexthop.c | 1389 struct fib_info *fi; in fib_check_nh_list() local 1391 list_for_each_entry(fi, &old->fi_list, nh_list) { in fib_check_nh_list() 1394 err = fib_check_nexthop(new, fi->fib_scope, extack); in fib_check_nh_list() 1846 struct fib_info *fi; in __remove_nexthop_fib() local 1848 list_for_each_entry(fi, &nh->fi_list, nh_list) { in __remove_nexthop_fib() 1849 fi->fib_flags |= RTNH_F_DEAD; in __remove_nexthop_fib() 2187 struct fib_info *fi; in __nexthop_replace_notify() local 2193 list_for_each_entry(fi, &nh->fi_list, nh_list) in __nexthop_replace_notify() 2194 fi->nh_updated = true; in __nexthop_replace_notify() 2198 list_for_each_entry(fi, &nh->fi_list, nh_list) in __nexthop_replace_notify() [all …]
|
/net/ipv4/netfilter/ |
D | ipt_rpfilter.c | 45 return fib_info_nh_uses_dev(res.fi, dev) || flags & XT_RPFILTER_LOOSE; in rpfilter_lookup_reverse()
|
D | nft_fib_ipv4.c | 139 if (!fib_info_nh_uses_dev(res.fi, oif)) in nft_fib4_eval()
|
/net/core/ |
D | filter.c | 5485 if (fib_info_num_path(res.fi) > 1) in bpf_ipv4_fib_lookup() 5504 params->rt_metric = res.fi->fib_priority; in bpf_ipv4_fib_lookup()
|