Home
last modified time | relevance | path

Searched refs:fib6_nh (Results 1 – 12 of 12) sorted by relevance

/Linux-v5.4/include/net/
Dnexthop.h59 struct fib6_nh fib6_nh; member
217 BUILD_BUG_ON(offsetof(struct fib6_nh, nh_common) != 0); in nexthop_fib_nhc()
262 static inline struct fib6_nh *nexthop_fib6_nh(struct nexthop *nh) in nexthop_fib6_nh()
274 return &nhi->fib6_nh; in nexthop_fib6_nh()
281 struct fib6_nh *fib6_nh; in fib6_info_nh_dev() local
283 fib6_nh = f6i->nh ? nexthop_fib6_nh(f6i->nh) : f6i->fib6_nh; in fib6_info_nh_dev()
284 return fib6_nh->fib_nh_dev; in fib6_info_nh_dev()
300 res->nh = &nhi->fib6_nh; in nexthop_path_fib6_result()
305 int (*cb)(struct fib6_nh *nh, void *arg),
Dipv6_stubs.h15 struct fib6_nh;
44 int (*fib6_nh_init)(struct net *net, struct fib6_nh *fib6_nh,
47 void (*fib6_nh_release)(struct fib6_nh *fib6_nh);
Dip6_fib.h125 struct fib6_nh { struct
174 struct fib6_nh fib6_nh[0]; member
195 struct fib6_nh *nh;
446 int fib6_nh_init(struct net *net, struct fib6_nh *fib6_nh,
449 void fib6_nh_release(struct fib6_nh *fib6_nh);
Dip6_route.h78 f6i->fib6_nh->fib_nh_gw_family; in rt6_qualify_for_ecmp()
297 struct fib6_nh *nha, *nhb; in rt6_duplicate_nexthop()
302 nha = a->fib6_nh; in rt6_duplicate_nexthop()
303 nhb = b->fib6_nh; in rt6_duplicate_nexthop()
/Linux-v5.4/net/ipv6/
Droute.c101 static int rt6_score_route(const struct fib6_nh *nh, u32 fib6_flags, int oif,
447 if (fl6->mp_hash <= atomic_read(&match->fib6_nh->fib_nh_upper_bound)) in fib6_select_path()
452 const struct fib6_nh *nh = sibling->fib6_nh; in fib6_select_path()
466 res->nh = match->fib6_nh; in fib6_select_path()
473 static bool __rt6_device_match(struct net *net, const struct fib6_nh *nh, in __rt6_device_match()
499 struct fib6_nh *nh;
502 static int __rt6_nh_dev_match(struct fib6_nh *nh, void *_arg) in __rt6_nh_dev_match()
512 static struct fib6_nh *rt6_nh_dev_match(struct net *net, struct nexthop *nh, in rt6_nh_dev_match()
538 struct fib6_nh *nh; in rt6_device_match()
546 nh = f6i->fib6_nh; in rt6_device_match()
[all …]
Dip6_fib.c152 sz += sizeof(struct fib6_nh); in fib6_info_alloc()
174 fib6_nh_release(f6i->fib6_nh); in fib6_info_destroy_rcu()
900 static void __fib6_drop_pcpu_from(struct fib6_nh *fib6_nh, in __fib6_drop_pcpu_from() argument
906 if (!fib6_nh->rt6i_pcpu) in __fib6_drop_pcpu_from()
916 ppcpu_rt = per_cpu_ptr(fib6_nh->rt6i_pcpu, cpu); in __fib6_drop_pcpu_from()
938 static int fib6_nh_drop_pcpu_from(struct fib6_nh *nh, void *_arg) in fib6_nh_drop_pcpu_from()
964 struct fib6_nh *fib6_nh; in fib6_drop_pcpu_from() local
966 fib6_nh = f6i->fib6_nh; in fib6_drop_pcpu_from()
967 __fib6_drop_pcpu_from(fib6_nh, f6i, table); in fib6_drop_pcpu_from()
2375 struct fib6_nh *fib6_nh = rt->fib6_nh; in ipv6_route_seq_show() local
[all …]
Daddrconf_core.c179 static int eafnosupport_fib6_nh_init(struct net *net, struct fib6_nh *fib6_nh, in eafnosupport_fib6_nh_init() argument
Dndisc.c1292 neigh = ip6_neigh_lookup(&rt->fib6_nh->fib_nh_gw6, in ndisc_router_discovery()
1293 rt->fib6_nh->fib_nh_dev, NULL, in ndisc_router_discovery()
1322 neigh = ip6_neigh_lookup(&rt->fib6_nh->fib_nh_gw6, in ndisc_router_discovery()
1323 rt->fib6_nh->fib_nh_dev, NULL, in ndisc_router_discovery()
Daddrconf.c2425 if (rt->fib6_nh->fib_nh_dev->ifindex != dev->ifindex) in addrconf_get_prefix_route()
2427 if (no_gw && rt->fib6_nh->fib_nh_gw_family) in addrconf_get_prefix_route()
6364 struct fib6_nh *nh = ifa->rt->fib6_nh; in addrconf_disable_policy_idev()
/Linux-v5.4/net/ipv4/
Dnexthop.c83 ipv6_stub->fib6_nh_release(&nhi->fib6_nh); in nexthop_free_single()
211 struct fib6_nh *fib6_nh; in nh_fill_node() local
263 fib6_nh = &nhi->fib6_nh; in nh_fill_node()
264 if (fib6_nh->fib_nh_gw_family && in nh_fill_node()
265 nla_put_in6_addr(skb, NHA_GATEWAY, &fib6_nh->fib_nh_gw6)) in nh_fill_node()
310 if (nhi->fib6_nh.fib_nh_gw_family) in nh_nlmsg_size_single()
447 static bool ipv6_good_nh(const struct fib6_nh *nh) in ipv6_good_nh()
507 if (ipv6_good_nh(&nhi->fib6_nh)) in nexthop_select_path()
521 int (*cb)(struct fib6_nh *nh, void *arg), in nexthop_for_each_fib6_nh()
536 err = cb(&nhi->fib6_nh, arg); in nexthop_for_each_fib6_nh()
[all …]
Dfib_semantics.c995 struct fib6_nh fib6_nh = {}; in fib_check_nh_v6_gw() local
998 err = ipv6_stub->fib6_nh_init(net, &fib6_nh, &cfg, GFP_KERNEL, extack); in fib_check_nh_v6_gw()
1000 nh->fib_nh_dev = fib6_nh.fib_nh_dev; in fib_check_nh_v6_gw()
1005 ipv6_stub->fib6_nh_release(&fib6_nh); in fib_check_nh_v6_gw()
/Linux-v5.4/drivers/net/ethernet/mellanox/mlxsw/
Dspectrum_router.c2874 struct fib6_nh *fib6_nh = mlxsw_sp_rt6->rt->fib6_nh; in mlxsw_sp_nexthop6_group_cmp() local
2878 ifindex = fib6_nh->fib_nh_dev->ifindex; in mlxsw_sp_nexthop6_group_cmp()
2879 weight = fib6_nh->fib_nh_weight; in mlxsw_sp_nexthop6_group_cmp()
2880 gw = &fib6_nh->fib_nh_gw6; in mlxsw_sp_nexthop6_group_cmp()
2946 dev = mlxsw_sp_rt6->rt->fib6_nh->fib_nh_dev; in mlxsw_sp_nexthop6_group_hash()
4016 if (nh->rif && nh->rif->dev == rt->fib6_nh->fib_nh_dev && in mlxsw_sp_rt6_nexthop()
4018 &rt->fib6_nh->fib_nh_gw6)) in mlxsw_sp_rt6_nexthop()
4078 list)->rt->fib6_nh->fib_nh_flags |= RTNH_F_OFFLOAD; in mlxsw_sp_fib6_entry_offload_set()
4084 struct fib6_nh *fib6_nh = mlxsw_sp_rt6->rt->fib6_nh; in mlxsw_sp_fib6_entry_offload_set() local
4089 fib6_nh->fib_nh_flags |= RTNH_F_OFFLOAD; in mlxsw_sp_fib6_entry_offload_set()
[all …]