fib6_nh 2874 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct fib6_nh *fib6_nh = mlxsw_sp_rt6->rt->fib6_nh; fib6_nh 2878 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c ifindex = fib6_nh->fib_nh_dev->ifindex; fib6_nh 2879 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c weight = fib6_nh->fib_nh_weight; fib6_nh 2880 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c gw = &fib6_nh->fib_nh_gw6; fib6_nh 2946 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c dev = mlxsw_sp_rt6->rt->fib6_nh->fib_nh_dev; fib6_nh 4016 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c if (nh->rif && nh->rif->dev == rt->fib6_nh->fib_nh_dev && fib6_nh 4018 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c &rt->fib6_nh->fib_nh_gw6)) fib6_nh 4078 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c list)->rt->fib6_nh->fib_nh_flags |= RTNH_F_OFFLOAD; fib6_nh 4084 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct fib6_nh *fib6_nh = mlxsw_sp_rt6->rt->fib6_nh; fib6_nh 4089 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c fib6_nh->fib_nh_flags |= RTNH_F_OFFLOAD; fib6_nh 4091 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c fib6_nh->fib_nh_flags &= ~RTNH_F_OFFLOAD; fib6_nh 4106 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c rt->fib6_nh->fib_nh_flags &= ~RTNH_F_OFFLOAD; fib6_nh 4985 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c rt->fib6_nh->fib_nh_gw_family; fib6_nh 5044 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c return rt->fib6_nh->fib_nh_dev && fib6_nh 5045 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_netdev_ipip_type(mlxsw_sp, rt->fib6_nh->fib_nh_dev, ret); fib6_nh 5055 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct net_device *dev = rt->fib6_nh->fib_nh_dev; fib6_nh 5098 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct net_device *dev = rt->fib6_nh->fib_nh_dev; fib6_nh 5101 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh->nh_weight = rt->fib6_nh->fib_nh_weight; fib6_nh 5102 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c memcpy(&nh->gw_addr, &rt->fib6_nh->fib_nh_gw6, sizeof(nh->gw_addr)); fib6_nh 5125 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c return rt->fib6_nh->fib_nh_gw_family || fib6_nh 174 include/net/ip6_fib.h struct fib6_nh fib6_nh[0]; fib6_nh 196 include/net/ip6_fib.h struct fib6_nh *nh; fib6_nh 450 include/net/ip6_fib.h int fib6_nh_init(struct net *net, struct fib6_nh *fib6_nh, fib6_nh 453 include/net/ip6_fib.h void fib6_nh_release(struct fib6_nh *fib6_nh); fib6_nh 78 include/net/ip6_route.h f6i->fib6_nh->fib_nh_gw_family; fib6_nh 298 include/net/ip6_route.h struct fib6_nh *nha, *nhb; fib6_nh 303 include/net/ip6_route.h nha = a->fib6_nh; fib6_nh 304 include/net/ip6_route.h nhb = b->fib6_nh; fib6_nh 15 include/net/ipv6_stubs.h struct fib6_nh; fib6_nh 46 include/net/ipv6_stubs.h int (*fib6_nh_init)(struct net *net, struct fib6_nh *fib6_nh, fib6_nh 49 include/net/ipv6_stubs.h void (*fib6_nh_release)(struct fib6_nh *fib6_nh); fib6_nh 59 include/net/nexthop.h struct fib6_nh fib6_nh; fib6_nh 219 include/net/nexthop.h BUILD_BUG_ON(offsetof(struct fib6_nh, nh_common) != 0); fib6_nh 294 include/net/nexthop.h static inline struct fib6_nh *nexthop_fib6_nh(struct nexthop *nh) fib6_nh 309 include/net/nexthop.h return &nhi->fib6_nh; fib6_nh 316 include/net/nexthop.h struct fib6_nh *fib6_nh; fib6_nh 318 include/net/nexthop.h fib6_nh = f6i->nh ? nexthop_fib6_nh(f6i->nh) : f6i->fib6_nh; fib6_nh 319 include/net/nexthop.h return fib6_nh->fib_nh_dev; fib6_nh 335 include/net/nexthop.h res->nh = &nhi->fib6_nh; fib6_nh 340 include/net/nexthop.h int (*cb)(struct fib6_nh *nh, void *arg), fib6_nh 995 net/ipv4/fib_semantics.c struct fib6_nh fib6_nh = {}; fib6_nh 998 net/ipv4/fib_semantics.c err = ipv6_stub->fib6_nh_init(net, &fib6_nh, &cfg, GFP_KERNEL, extack); fib6_nh 1000 net/ipv4/fib_semantics.c nh->fib_nh_dev = fib6_nh.fib_nh_dev; fib6_nh 1005 net/ipv4/fib_semantics.c ipv6_stub->fib6_nh_release(&fib6_nh); fib6_nh 90 net/ipv4/nexthop.c ipv6_stub->fib6_nh_release(&nhi->fib6_nh); fib6_nh 218 net/ipv4/nexthop.c struct fib6_nh *fib6_nh; fib6_nh 270 net/ipv4/nexthop.c fib6_nh = &nhi->fib6_nh; fib6_nh 271 net/ipv4/nexthop.c if (fib6_nh->fib_nh_gw_family && fib6_nh 272 net/ipv4/nexthop.c nla_put_in6_addr(skb, NHA_GATEWAY, &fib6_nh->fib_nh_gw6)) fib6_nh 318 net/ipv4/nexthop.c if (nhi->fib6_nh.fib_nh_gw_family) fib6_nh 457 net/ipv4/nexthop.c static bool ipv6_good_nh(const struct fib6_nh *nh) fib6_nh 517 net/ipv4/nexthop.c if (ipv6_good_nh(&nhi->fib6_nh)) fib6_nh 531 net/ipv4/nexthop.c int (*cb)(struct fib6_nh *nh, void *arg), fib6_nh 546 net/ipv4/nexthop.c err = cb(&nhi->fib6_nh, arg); fib6_nh 552 net/ipv4/nexthop.c err = cb(&nhi->fib6_nh, arg); fib6_nh 1206 net/ipv4/nexthop.c struct fib6_nh *fib6_nh = &nhi->fib6_nh; fib6_nh 1221 net/ipv4/nexthop.c err = ipv6_stub->fib6_nh_init(net, fib6_nh, &fib6_cfg, GFP_KERNEL, fib6_nh 1224 net/ipv4/nexthop.c ipv6_stub->fib6_nh_release(fib6_nh); fib6_nh 1226 net/ipv4/nexthop.c nh->nh_flags = fib6_nh->fib_nh_flags; fib6_nh 2427 net/ipv6/addrconf.c if (rt->fib6_nh->fib_nh_dev->ifindex != dev->ifindex) fib6_nh 2429 net/ipv6/addrconf.c if (no_gw && rt->fib6_nh->fib_nh_gw_family) fib6_nh 6400 net/ipv6/addrconf.c struct fib6_nh *nh = ifa->rt->fib6_nh; fib6_nh 180 net/ipv6/addrconf_core.c static int eafnosupport_fib6_nh_init(struct net *net, struct fib6_nh *fib6_nh, fib6_nh 152 net/ipv6/ip6_fib.c sz += sizeof(struct fib6_nh); fib6_nh 174 net/ipv6/ip6_fib.c fib6_nh_release(f6i->fib6_nh); fib6_nh 900 net/ipv6/ip6_fib.c static void __fib6_drop_pcpu_from(struct fib6_nh *fib6_nh, fib6_nh 906 net/ipv6/ip6_fib.c if (!fib6_nh->rt6i_pcpu) fib6_nh 916 net/ipv6/ip6_fib.c ppcpu_rt = per_cpu_ptr(fib6_nh->rt6i_pcpu, cpu); fib6_nh 938 net/ipv6/ip6_fib.c static int fib6_nh_drop_pcpu_from(struct fib6_nh *nh, void *_arg) fib6_nh 964 net/ipv6/ip6_fib.c struct fib6_nh *fib6_nh; fib6_nh 966 net/ipv6/ip6_fib.c fib6_nh = f6i->fib6_nh; fib6_nh 967 net/ipv6/ip6_fib.c __fib6_drop_pcpu_from(fib6_nh, f6i, table); fib6_nh 2376 net/ipv6/ip6_fib.c struct fib6_nh *fib6_nh = rt->fib6_nh; fib6_nh 2381 net/ipv6/ip6_fib.c fib6_nh = nexthop_fib6_nh(rt->nh); fib6_nh 2390 net/ipv6/ip6_fib.c if (fib6_nh->fib_nh_gw_family) { fib6_nh 2392 net/ipv6/ip6_fib.c seq_printf(seq, "%pi6", &fib6_nh->fib_nh_gw6); fib6_nh 2397 net/ipv6/ip6_fib.c dev = fib6_nh->fib_nh_dev; fib6_nh 1292 net/ipv6/ndisc.c neigh = ip6_neigh_lookup(&rt->fib6_nh->fib_nh_gw6, fib6_nh 1293 net/ipv6/ndisc.c rt->fib6_nh->fib_nh_dev, NULL, fib6_nh 1322 net/ipv6/ndisc.c neigh = ip6_neigh_lookup(&rt->fib6_nh->fib_nh_gw6, fib6_nh 1323 net/ipv6/ndisc.c rt->fib6_nh->fib_nh_dev, NULL, fib6_nh 102 net/ipv6/route.c static int rt6_score_route(const struct fib6_nh *nh, u32 fib6_flags, int oif, fib6_nh 449 net/ipv6/route.c if (fl6->mp_hash <= atomic_read(&match->fib6_nh->fib_nh_upper_bound)) fib6_nh 454 net/ipv6/route.c const struct fib6_nh *nh = sibling->fib6_nh; fib6_nh 468 net/ipv6/route.c res->nh = match->fib6_nh; fib6_nh 475 net/ipv6/route.c static bool __rt6_device_match(struct net *net, const struct fib6_nh *nh, fib6_nh 501 net/ipv6/route.c struct fib6_nh *nh; fib6_nh 504 net/ipv6/route.c static int __rt6_nh_dev_match(struct fib6_nh *nh, void *_arg) fib6_nh 514 net/ipv6/route.c static struct fib6_nh *rt6_nh_dev_match(struct net *net, struct nexthop *nh, fib6_nh 540 net/ipv6/route.c struct fib6_nh *nh; fib6_nh 548 net/ipv6/route.c nh = f6i->fib6_nh; fib6_nh 563 net/ipv6/route.c nh = spf6i->fib6_nh; fib6_nh 575 net/ipv6/route.c nh = res->f6i->fib6_nh; fib6_nh 584 net/ipv6/route.c nh = f6i->fib6_nh; fib6_nh 589 net/ipv6/route.c nh = res->f6i->fib6_nh; fib6_nh 622 net/ipv6/route.c static void rt6_probe(struct fib6_nh *fib6_nh) fib6_nh 639 net/ipv6/route.c if (!fib6_nh->fib_nh_gw_family) fib6_nh 642 net/ipv6/route.c nh_gw = &fib6_nh->fib_nh_gw6; fib6_nh 643 net/ipv6/route.c dev = fib6_nh->fib_nh_dev; fib6_nh 645 net/ipv6/route.c last_probe = READ_ONCE(fib6_nh->last_probe); fib6_nh 666 net/ipv6/route.c if (!work || cmpxchg(&fib6_nh->last_probe, fib6_nh 681 net/ipv6/route.c static inline void rt6_probe(struct fib6_nh *fib6_nh) fib6_nh 689 net/ipv6/route.c static enum rt6_nud_state rt6_check_neigh(const struct fib6_nh *fib6_nh) fib6_nh 695 net/ipv6/route.c neigh = __ipv6_neigh_lookup_noref(fib6_nh->fib_nh_dev, fib6_nh 696 net/ipv6/route.c &fib6_nh->fib_nh_gw6); fib6_nh 717 net/ipv6/route.c static int rt6_score_route(const struct fib6_nh *nh, u32 fib6_flags, int oif, fib6_nh 739 net/ipv6/route.c static bool find_match(struct fib6_nh *nh, u32 fib6_flags, fib6_nh 781 net/ipv6/route.c struct fib6_nh *nh; fib6_nh 784 net/ipv6/route.c static int rt6_nh_find_match(struct fib6_nh *nh, void *_arg) fib6_nh 804 net/ipv6/route.c struct fib6_nh *nh; fib6_nh 836 net/ipv6/route.c nh = f6i->fib6_nh; fib6_nh 922 net/ipv6/route.c res->nh = res->f6i->fib6_nh; fib6_nh 1132 net/ipv6/route.c const struct fib6_nh *nh = res->nh; fib6_nh 1585 net/ipv6/route.c const struct fib6_nh *nh = res->nh; fib6_nh 1613 net/ipv6/route.c struct rt6_exception_bucket *fib6_nh_get_excptn_bucket(const struct fib6_nh *nh, fib6_nh 1643 net/ipv6/route.c static void fib6_nh_excptn_bucket_set_flushed(struct fib6_nh *nh, fib6_nh 1666 net/ipv6/route.c struct fib6_nh *nh = res->nh; fib6_nh 1738 net/ipv6/route.c static void fib6_nh_flush_exceptions(struct fib6_nh *nh, struct fib6_info *from) fib6_nh 1768 net/ipv6/route.c static int rt6_nh_flush_exceptions(struct fib6_nh *nh, void *arg) fib6_nh 1783 net/ipv6/route.c fib6_nh_flush_exceptions(f6i->fib6_nh, f6i); fib6_nh 1832 net/ipv6/route.c static int fib6_nh_remove_exception(const struct fib6_nh *nh, int plen, fib6_nh 1875 net/ipv6/route.c static int rt6_nh_remove_exception_rt(struct fib6_nh *nh, void *_arg) fib6_nh 1909 net/ipv6/route.c return fib6_nh_remove_exception(from->fib6_nh, fib6_nh 1916 net/ipv6/route.c static void fib6_nh_update_exception(const struct fib6_nh *nh, int plen, fib6_nh 1942 net/ipv6/route.c struct fib6_nh *match; fib6_nh 1946 net/ipv6/route.c static int fib6_nh_find_match(struct fib6_nh *nh, void *_arg) fib6_nh 1965 net/ipv6/route.c struct fib6_nh *fib6_nh; fib6_nh 1983 net/ipv6/route.c fib6_nh = arg.match; fib6_nh 1985 net/ipv6/route.c fib6_nh = from->fib6_nh; fib6_nh 1987 net/ipv6/route.c fib6_nh_update_exception(fib6_nh, from->fib6_src.plen, rt); fib6_nh 2015 net/ipv6/route.c const struct fib6_nh *nh, int mtu) fib6_nh 2043 net/ipv6/route.c static void fib6_nh_exceptions_clean_tohost(const struct fib6_nh *nh, fib6_nh 2120 net/ipv6/route.c static void fib6_nh_age_exceptions(const struct fib6_nh *nh, fib6_nh 2154 net/ipv6/route.c static int rt6_nh_age_exceptions(struct fib6_nh *nh, void *_arg) fib6_nh 2175 net/ipv6/route.c fib6_nh_age_exceptions(f6i->fib6_nh, gc_args, now); fib6_nh 2788 net/ipv6/route.c res.nh = res.f6i->fib6_nh; fib6_nh 2875 net/ipv6/route.c const struct fib6_nh *nh = res->nh; fib6_nh 2907 net/ipv6/route.c static int fib6_nh_redirect_match(struct fib6_nh *nh, void *_arg) fib6_nh 2973 net/ipv6/route.c res.nh = rt->fib6_nh; fib6_nh 2994 net/ipv6/route.c res.nh = rt->fib6_nh; fib6_nh 3128 net/ipv6/route.c const struct fib6_nh *nh = res->nh; fib6_nh 3415 net/ipv6/route.c int fib6_nh_init(struct net *net, struct fib6_nh *fib6_nh, fib6_nh 3424 net/ipv6/route.c fib6_nh->fib_nh_family = AF_INET6; fib6_nh 3426 net/ipv6/route.c fib6_nh->last_probe = jiffies; fib6_nh 3452 net/ipv6/route.c fib6_nh->fib_nh_flags |= RTNH_F_ONLINK; fib6_nh 3455 net/ipv6/route.c fib6_nh->fib_nh_weight = 1; fib6_nh 3484 net/ipv6/route.c fib6_nh->fib_nh_gw6 = cfg->fc_gateway; fib6_nh 3485 net/ipv6/route.c fib6_nh->fib_nh_gw_family = AF_INET6; fib6_nh 3506 net/ipv6/route.c fib6_nh->fib_nh_flags |= RTNH_F_LINKDOWN; fib6_nh 3508 net/ipv6/route.c err = fib_nh_common_init(&fib6_nh->nh_common, cfg->fc_encap, fib6_nh 3514 net/ipv6/route.c fib6_nh->rt6i_pcpu = alloc_percpu_gfp(struct rt6_info *, gfp_flags); fib6_nh 3515 net/ipv6/route.c if (!fib6_nh->rt6i_pcpu) { fib6_nh 3520 net/ipv6/route.c fib6_nh->fib_nh_dev = dev; fib6_nh 3521 net/ipv6/route.c fib6_nh->fib_nh_oif = dev->ifindex; fib6_nh 3528 net/ipv6/route.c lwtstate_put(fib6_nh->fib_nh_lws); fib6_nh 3529 net/ipv6/route.c fib6_nh->fib_nh_lws = NULL; fib6_nh 3537 net/ipv6/route.c void fib6_nh_release(struct fib6_nh *fib6_nh) fib6_nh 3543 net/ipv6/route.c fib6_nh_flush_exceptions(fib6_nh, NULL); fib6_nh 3544 net/ipv6/route.c bucket = fib6_nh_get_excptn_bucket(fib6_nh, NULL); fib6_nh 3546 net/ipv6/route.c rcu_assign_pointer(fib6_nh->rt6i_exception_bucket, NULL); fib6_nh 3552 net/ipv6/route.c if (fib6_nh->rt6i_pcpu) { fib6_nh 3559 net/ipv6/route.c ppcpu_rt = per_cpu_ptr(fib6_nh->rt6i_pcpu, cpu); fib6_nh 3568 net/ipv6/route.c free_percpu(fib6_nh->rt6i_pcpu); fib6_nh 3571 net/ipv6/route.c fib_nh_common_release(&fib6_nh->nh_common); fib6_nh 3582 net/ipv6/route.c struct fib6_nh *fib6_nh; fib6_nh 3695 net/ipv6/route.c fib6_nh = nexthop_fib6_nh(rt->nh); fib6_nh 3697 net/ipv6/route.c err = fib6_nh_init(net, rt->fib6_nh, cfg, gfp_flags, extack); fib6_nh 3701 net/ipv6/route.c fib6_nh = rt->fib6_nh; fib6_nh 3707 net/ipv6/route.c if (fib6_is_reject(cfg->fc_flags, rt->fib6_nh->fib_nh_dev, fib6_nh 3713 net/ipv6/route.c struct net_device *dev = fib6_nh->fib_nh_dev; fib6_nh 3850 net/ipv6/route.c struct fib6_nh *nh) fib6_nh 3870 net/ipv6/route.c static int fib6_nh_del_cached_rt(struct fib6_nh *nh, void *_arg) fib6_nh 3912 net/ipv6/route.c struct fib6_nh *nh; fib6_nh 3926 net/ipv6/route.c nh = rt->fib6_nh; fib6_nh 3952 net/ipv6/route.c nh = rt->fib6_nh; fib6_nh 4086 net/ipv6/route.c res.nh = res.f6i->fib6_nh; fib6_nh 4143 net/ipv6/route.c if (rt->fib6_nh->fib_nh_dev->ifindex != ifindex) fib6_nh 4146 net/ipv6/route.c !rt->fib6_nh->fib_nh_gw_family) fib6_nh 4148 net/ipv6/route.c if (!ipv6_addr_equal(&rt->fib6_nh->fib_nh_gw6, gwaddr)) fib6_nh 4206 net/ipv6/route.c struct fib6_nh *nh; fib6_nh 4212 net/ipv6/route.c nh = rt->fib6_nh; fib6_nh 4468 net/ipv6/route.c ((void *)rt->fib6_nh->fib_nh_dev == dev || !dev) && fib6_nh 4496 net/ipv6/route.c struct fib6_nh *nh; fib6_nh 4502 net/ipv6/route.c nh = rt->fib6_nh; fib6_nh 4552 net/ipv6/route.c if (rt->fib6_nh->fib_nh_flags & RTNH_F_DEAD || fib6_nh 4553 net/ipv6/route.c (rt->fib6_nh->fib_nh_flags & RTNH_F_LINKDOWN && fib6_nh 4554 net/ipv6/route.c ip6_ignore_linkdown(rt->fib6_nh->fib_nh_dev))) fib6_nh 4566 net/ipv6/route.c total += rt->fib6_nh->fib_nh_weight; fib6_nh 4570 net/ipv6/route.c total += iter->fib6_nh->fib_nh_weight; fib6_nh 4581 net/ipv6/route.c *weight += rt->fib6_nh->fib_nh_weight; fib6_nh 4585 net/ipv6/route.c atomic_set(&rt->fib6_nh->fib_nh_upper_bound, upper_bound); fib6_nh 4629 net/ipv6/route.c rt->fib6_nh->fib_nh_dev == arg->dev) { fib6_nh 4630 net/ipv6/route.c rt->fib6_nh->fib_nh_flags &= ~arg->nh_flags; fib6_nh 4659 net/ipv6/route.c if (rt->fib6_nh->fib_nh_dev == dev) fib6_nh 4662 net/ipv6/route.c if (iter->fib6_nh->fib_nh_dev == dev) fib6_nh 4683 net/ipv6/route.c if (rt->fib6_nh->fib_nh_dev == down_dev || fib6_nh 4684 net/ipv6/route.c rt->fib6_nh->fib_nh_flags & RTNH_F_DEAD) fib6_nh 4687 net/ipv6/route.c if (iter->fib6_nh->fib_nh_dev == down_dev || fib6_nh 4688 net/ipv6/route.c iter->fib6_nh->fib_nh_flags & RTNH_F_DEAD) fib6_nh 4700 net/ipv6/route.c if (rt->fib6_nh->fib_nh_dev == dev) fib6_nh 4701 net/ipv6/route.c rt->fib6_nh->fib_nh_flags |= nh_flags; fib6_nh 4703 net/ipv6/route.c if (iter->fib6_nh->fib_nh_dev == dev) fib6_nh 4704 net/ipv6/route.c iter->fib6_nh->fib_nh_flags |= nh_flags; fib6_nh 4719 net/ipv6/route.c return rt->fib6_nh->fib_nh_dev == dev ? -1 : 0; fib6_nh 4724 net/ipv6/route.c return rt->fib6_nh->fib_nh_dev == dev ? -1 : 0; fib6_nh 4740 net/ipv6/route.c if (rt->fib6_nh->fib_nh_dev != dev || fib6_nh 4743 net/ipv6/route.c rt->fib6_nh->fib_nh_flags |= RTNH_F_LINKDOWN; fib6_nh 4780 net/ipv6/route.c static int fib6_nh_mtu_change(struct fib6_nh *nh, void *_arg) fib6_nh 4831 net/ipv6/route.c return fib6_nh_mtu_change(f6i->fib6_nh, arg); fib6_nh 5123 net/ipv6/route.c rt->fib6_nh->fib_nh_weight = rtnh->rtnh_hops + 1; fib6_nh 5310 net/ipv6/route.c static int rt6_nh_nlmsg_size(struct fib6_nh *nh, void *arg) fib6_nh 5337 net/ipv6/route.c struct fib6_nh *nh = f6i->fib6_nh; fib6_nh 5382 net/ipv6/route.c struct fib6_nh *fib6_nh; fib6_nh 5384 net/ipv6/route.c fib6_nh = nexthop_fib6_nh(nh); fib6_nh 5385 net/ipv6/route.c if (fib_nexthop_info(skb, &fib6_nh->nh_common, AF_INET6, fib6_nh 5513 net/ipv6/route.c if (fib_add_nexthop(skb, &rt->fib6_nh->nh_common, fib6_nh 5514 net/ipv6/route.c rt->fib6_nh->fib_nh_weight, AF_INET6) < 0) fib6_nh 5519 net/ipv6/route.c if (fib_add_nexthop(skb, &sibling->fib6_nh->nh_common, fib6_nh 5520 net/ipv6/route.c sibling->fib6_nh->fib_nh_weight, fib6_nh 5538 net/ipv6/route.c if (fib_nexthop_info(skb, &rt->fib6_nh->nh_common, AF_INET6, fib6_nh 5565 net/ipv6/route.c static int fib6_info_nh_uses_dev(struct fib6_nh *nh, void *arg) fib6_nh 5586 net/ipv6/route.c if (f6i->fib6_nh->fib_nh_dev == dev) fib6_nh 5594 net/ipv6/route.c if (sibling->fib6_nh->fib_nh_dev == dev) fib6_nh 5610 net/ipv6/route.c static int rt6_nh_dump_exceptions(struct fib6_nh *nh, void *arg) fib6_nh 5718 net/ipv6/route.c err = rt6_nh_dump_exceptions(rt->fib6_nh, &w); fib6_nh 6013 net/ipv6/route.c net->ipv6.fib6_null_entry->fib6_nh->fib_nh_dev = dev; fib6_nh 6348 net/ipv6/route.c init_net.ipv6.fib6_null_entry->fib6_nh->fib_nh_dev = init_net.loopback_dev;