Symbol: nh
crypto/heimdal/lib/roken/getifaddrs.c
332
struct nlmsghdr *nh;
crypto/heimdal/lib/roken/getifaddrs.c
352
nh = (struct nlmsghdr *)buff;
crypto/heimdal/lib/roken/getifaddrs.c
353
for (nh = (struct nlmsghdr *)buff;
crypto/heimdal/lib/roken/getifaddrs.c
354
NLMSG_OK(nh, read_size);
crypto/heimdal/lib/roken/getifaddrs.c
355
nh = (struct nlmsghdr *)NLMSG_NEXT(nh, read_size)){
crypto/heimdal/lib/roken/getifaddrs.c
356
if (nh->nlmsg_pid != pid ||
crypto/heimdal/lib/roken/getifaddrs.c
357
nh->nlmsg_seq != seq)
crypto/heimdal/lib/roken/getifaddrs.c
359
if (nh->nlmsg_type == NLMSG_DONE){
crypto/heimdal/lib/roken/getifaddrs.c
363
if (nh->nlmsg_type == NLMSG_ERROR){
crypto/heimdal/lib/roken/getifaddrs.c
364
struct nlmsgerr *nlerr = (struct nlmsgerr *)NLMSG_DATA(nh);
crypto/heimdal/lib/roken/getifaddrs.c
366
if (nh->nlmsg_len < NLMSG_LENGTH(sizeof(struct nlmsgerr)))
crypto/openssh/umac.c
1082
nh(&ctx->hash, (const UINT8 *)input, L1_KEY_LEN,
crypto/openssh/umac.c
1144
nh(&ahc->hash, (UINT8 *)msg, nh_len, len, nh_result);
crypto/openssh/umac.c
1151
nh(&ahc->hash, (UINT8 *)msg, L1_KEY_LEN, L1_KEY_LEN, nh_result);
crypto/openssh/umac.c
1160
nh(&ahc->hash, (UINT8 *)msg, nh_len, len, nh_result);
sbin/pfctl/parse.y
1762
struct node_host *h, *nh;
sbin/pfctl/parse.y
1781
for (h = ti->host; h != NULL; h = nh) {
sbin/pfctl/parse.y
1782
nh = h->next;
sbin/pfctl/parse.y
7873
remove_invalid_hosts(struct node_host **nh, sa_family_t *af)
sbin/pfctl/parse.y
7875
struct node_host *n = *nh, *prev = NULL;
sbin/pfctl/parse.y
7883
if (n == (*nh)->tail)
sbin/pfctl/parse.y
7884
(*nh)->tail = prev;
sbin/pfctl/parse.y
7887
*nh = next;
sbin/pfctl/parse.y
7905
invalid_redirect(struct node_host *nh, sa_family_t af)
sbin/pfctl/parse.y
7911
for (n = nh; n != NULL; n = n->next) {
sbin/pfctl/parse.y
7921
if (nh == NULL) {
sbin/ping/ping6.c
2549
u_char *cp = (u_char *)ip6, nh;
sbin/ping/ping6.c
2559
nh = ip6->ip6_nxt;
sbin/ping/ping6.c
2566
switch (nh) {
sbin/ping/ping6.c
2570
nh = ((struct ip6_hbh *)cp)->ip6h_nxt;
sbin/ping/ping6.c
2575
nh = ((struct ip6_dest *)cp)->ip6d_nxt;
sbin/ping/ping6.c
2580
nh = ((struct ip6_frag *)cp)->ip6f_nxt;
sbin/ping/ping6.c
2585
nh = ((struct ip6_rthdr *)cp)->ip6r_nxt;
sbin/ping/ping6.c
2592
nh = ah.ah_nxt;
sbin/ping/ping6.c
2613
printf("Unknown Header(%d)\n", nh);
sbin/route/route_netlink.c
473
struct rta_mpath_nh *nh, bool first)
sbin/route/route_netlink.c
476
if (nh->gw != NULL) {
sbin/route/route_netlink.c
478
print_prefix(h, gwbuf, sizeof(gwbuf), nh->gw, -1);
sbin/route/route_netlink.c
482
if (nh->ifindex != 0) {
sbin/route/route_netlink.c
485
get_ifdata(h, nh->ifindex, &link);
sbin/route/route_netlink.c
486
if (nh->rtax_mtu == 0)
sbin/route/route_netlink.c
487
nh->rtax_mtu = link.ifla_mtu;
sbin/route/route_netlink.c
489
printf("weight %d ", nh->rtnh_weight);
sbin/route/route_netlink.c
490
if (nh->rtax_mtu != 0)
sbin/route/route_netlink.c
491
printf("mtu %d ", nh->rtax_mtu);
sbin/route/route_netlink.c
492
if (nh->rta_expire > 0)
sbin/route/route_netlink.c
493
printf("expire %u ", nh->rta_expire);
sbin/route/route_netlink.c
549
struct rta_mpath_nh *nh = r.rta_multipath.nhops[i];
sbin/route/route_netlink.c
553
print_nlmsg_route_nhop(h, &r, nh, first);
sbin/route/route_netlink.c
557
struct rta_mpath_nh nh = {
sbin/route/route_netlink.c
563
print_nlmsg_route_nhop(h, &r, &nh, true);
sbin/route/route_netlink.c
846
struct rta_mpath_nh *nh = r->rta_multipath.nhops[i];
sbin/route/route_netlink.c
848
print_flushed_route(r, nh->gw);
sys/compat/linprocfs/linprocfs.c
1528
struct nhop_object *nh;
sys/compat/linprocfs/linprocfs.c
1539
nh = nhop_select_func(rnd.rnd_nhop, 0);
sys/compat/linprocfs/linprocfs.c
1541
if (ifname_bsd_to_linux_ifp(nh->nh_ifp, ifname, sizeof(ifname)) <= 0)
sys/compat/linprocfs/linprocfs.c
1544
gw = (nh->nh_flags & NHF_GATEWAY)
sys/compat/linprocfs/linprocfs.c
1545
? nh->gw4_sa.sin_addr.s_addr : 0;
sys/compat/linprocfs/linprocfs.c
1548
(nhop_get_rtflags(nh) & (RTF_GATEWAY | RTF_HOST));
sys/compat/linprocfs/linprocfs.c
1558
mask.s_addr, nh->nh_mtu, 0, 0);
sys/dev/cxgbe/iw_cxgbe/cm.c
531
struct nhop_object *nh;
sys/dev/cxgbe/iw_cxgbe/cm.c
536
nh = fib4_lookup(RT_DEFAULT_FIB, raddr4->sin_addr, 0,
sys/dev/cxgbe/iw_cxgbe/cm.c
546
nh = fib6_lookup(RT_DEFAULT_FIB, &addr6, scopeid,
sys/dev/cxgbe/iw_cxgbe/cm.c
550
if (nh == NULL)
sys/dev/cxgbe/iw_cxgbe/cm.c
553
*ifp = nh->nh_ifp;
sys/dev/cxgbe/tom/t4_connect.c
250
t4_connect(struct toedev *tod, struct socket *so, struct nhop_object *nh,
sys/dev/cxgbe/tom/t4_connect.c
257
if_t rt_ifp = nh->nh_ifp;
sys/dev/cxgbe/tom/t4_connect.c
305
nh->nh_flags & NHF_GATEWAY ? &nh->gw_sa : nam);
sys/dev/cxgbe/tom/t4_listen.c
1234
struct nhop_object *nh;
sys/dev/cxgbe/tom/t4_listen.c
1247
nh = fib6_lookup(RT_DEFAULT_FIB, &inc->inc6_faddr, 0, NHR_NONE, 0);
sys/dev/cxgbe/tom/t4_listen.c
1248
if (nh == NULL)
sys/dev/cxgbe/tom/t4_listen.c
1250
if (nh->nh_ifp != ifp)
sys/dev/cxgbe/tom/t4_listen.c
1252
if (nh->nh_flags & NHF_GATEWAY)
sys/dev/cxgbe/tom/t4_listen.c
1253
((struct sockaddr_in6 *)dst)->sin6_addr = nh->gw6_sa.sin6_addr;
sys/dev/cxgbe/tom/t4_listen.c
1260
nh = fib4_lookup(RT_DEFAULT_FIB, inc->inc_faddr, 0, NHR_NONE, 0);
sys/dev/cxgbe/tom/t4_listen.c
1261
if (nh == NULL)
sys/dev/cxgbe/tom/t4_listen.c
1263
if (nh->nh_ifp != ifp)
sys/dev/cxgbe/tom/t4_listen.c
1265
if (nh->nh_flags & NHF_GATEWAY)
sys/dev/cxgbe/tom/t4_listen.c
1266
if (nh->gw_sa.sa_family == AF_INET)
sys/dev/cxgbe/tom/t4_listen.c
1267
((struct sockaddr_in *)dst)->sin_addr = nh->gw4_sa.sin_addr;
sys/dev/cxgbe/tom/t4_listen.c
1269
*((struct sockaddr_in6 *)dst) = nh->gw6_sa;
sys/dev/irdma/fbsd_kcompat.c
370
struct nhop_object *nh;
sys/dev/irdma/fbsd_kcompat.c
373
nh = fib6_lookup(RT_DEFAULT_FIB, &((struct sockaddr_in6 *)dst_sin)->sin6_addr,
sys/dev/irdma/fbsd_kcompat.c
376
nh = fib4_lookup(RT_DEFAULT_FIB, ((struct sockaddr_in *)dst_sin)->sin_addr, 0, NHR_NONE, 0);
sys/dev/irdma/fbsd_kcompat.c
377
if (!nh || (nh->nh_ifp != netdev &&
sys/dev/irdma/fbsd_kcompat.c
378
rdma_vlan_dev_real_dev(nh->nh_ifp) != netdev))
sys/dev/irdma/fbsd_kcompat.c
380
*gateway = (nh->nh_flags & NHF_GATEWAY) ? true : false;
sys/dev/irdma/fbsd_kcompat.c
381
*nexthop = (*gateway) ? &nh->gw_sa : dst_sin;
sys/dev/irdma/fbsd_kcompat.c
382
*ifp = nh->nh_ifp;
sys/dev/sfxge/sfxge_rx.c
373
struct ip *iph = c->nh;
sys/dev/sfxge/sfxge_rx.c
381
struct ip6_hdr *iph = c->nh;
sys/dev/sfxge/sfxge_rx.c
466
struct ip *iph = c->nh;
sys/dev/sfxge/sfxge_rx.c
470
struct ip6_hdr *iph = c->nh;
sys/dev/sfxge/sfxge_rx.c
487
struct mbuf *mbuf, void *nh, struct tcphdr *th)
sys/dev/sfxge/sfxge_rx.c
492
c->nh = nh;
sys/dev/sfxge/sfxge_rx.c
499
struct ip *iph = nh;
sys/dev/sfxge/sfxge_rx.c
502
struct ip6_hdr *iph = nh;
sys/dev/sfxge/sfxge_rx.c
615
uint16_t l2_id, void *nh, struct tcphdr *th)
sys/dev/sfxge/sfxge_rx.c
665
void *nh;
sys/dev/sfxge/sfxge_rx.c
681
nh = veh + 1;
sys/dev/sfxge/sfxge_rx.c
685
nh = eh + 1;
sys/dev/sfxge/sfxge_rx.c
693
struct ip *iph = nh;
sys/dev/sfxge/sfxge_rx.c
702
struct ip6_hdr *iph = nh;
sys/dev/sfxge/sfxge_rx.c
721
struct ip *c_iph, *iph = nh;
sys/dev/sfxge/sfxge_rx.c
722
c_iph = c->nh;
sys/dev/sfxge/sfxge_rx.c
727
struct ip6_hdr *c_iph, *iph = nh;
sys/dev/sfxge/sfxge_rx.c
728
c_iph = c->nh;
sys/dev/sfxge/sfxge_rx.c
748
c->next_nh = nh;
sys/dev/sfxge/sfxge_rx.c
755
sfxge_lro_new_conn(&rxq->lro, conn_hash, l2_id, nh, th);
sys/dev/sfxge/sfxge_rx.h
84
void *nh;
sys/fs/nfsclient/nfs_clport.c
1066
struct nhop_object *nh;
sys/fs/nfsclient/nfs_clport.c
1073
nh = fib4_lookup(fibnum, sin->sin_addr, 0, NHR_NONE, 0);
sys/fs/nfsclient/nfs_clport.c
1074
if (nh != NULL) {
sys/fs/nfsclient/nfs_clport.c
1075
addr = IA_SIN(ifatoia(nh->nh_ifa))->sin_addr;
sys/fs/nfsclient/nfs_clport.c
1078
nh = NULL;
sys/fs/nfsclient/nfs_clport.c
1084
if (nh == NULL)
sys/fs/nfsserver/nfs_nfsdport.c
1050
struct nfsheur *nh;
sys/fs/nfsserver/nfs_nfsdport.c
1073
nh = nfsrv_sequential_heuristic(uiop, vp);
sys/fs/nfsserver/nfs_nfsdport.c
1074
ioflag |= nh->nh_seqcount << IO_SEQSHIFT;
sys/fs/nfsserver/nfs_nfsdport.c
1084
nh->nh_nextoff = uiop->uio_offset;
sys/fs/nfsserver/nfs_nfsdport.c
1171
struct nfsheur *nh;
sys/fs/nfsserver/nfs_nfsdport.c
1198
nh = nfsrv_sequential_heuristic(uiop, vp);
sys/fs/nfsserver/nfs_nfsdport.c
1199
ioflags |= nh->nh_seqcount << IO_SEQSHIFT;
sys/fs/nfsserver/nfs_nfsdport.c
1204
nh->nh_nextoff = uiop->uio_offset;
sys/fs/nfsserver/nfs_nfsdport.c
351
struct nfsheur *nh;
sys/fs/nfsserver/nfs_nfsdport.c
357
nh = &nfsheur[hi];
sys/fs/nfsserver/nfs_nfsdport.c
360
nh = &nfsheur[hi];
sys/fs/nfsserver/nfs_nfsdport.c
366
if (nfsheur[hi].nh_use < nh->nh_use)
sys/fs/nfsserver/nfs_nfsdport.c
367
nh = &nfsheur[hi];
sys/fs/nfsserver/nfs_nfsdport.c
371
if (nh->nh_vp != vp) {
sys/fs/nfsserver/nfs_nfsdport.c
372
nh->nh_vp = vp;
sys/fs/nfsserver/nfs_nfsdport.c
373
nh->nh_nextoff = uio->uio_offset;
sys/fs/nfsserver/nfs_nfsdport.c
374
nh->nh_use = NHUSE_INIT;
sys/fs/nfsserver/nfs_nfsdport.c
376
nh->nh_seqcount = 4;
sys/fs/nfsserver/nfs_nfsdport.c
378
nh->nh_seqcount = 1;
sys/fs/nfsserver/nfs_nfsdport.c
382
if ((uio->uio_offset == 0 && nh->nh_seqcount > 0) ||
sys/fs/nfsserver/nfs_nfsdport.c
383
uio->uio_offset == nh->nh_nextoff) {
sys/fs/nfsserver/nfs_nfsdport.c
385
nh->nh_seqcount += howmany(uio->uio_resid, 16384);
sys/fs/nfsserver/nfs_nfsdport.c
386
if (nh->nh_seqcount > IO_SEQMAX)
sys/fs/nfsserver/nfs_nfsdport.c
387
nh->nh_seqcount = IO_SEQMAX;
sys/fs/nfsserver/nfs_nfsdport.c
388
} else if (qabs(uio->uio_offset - nh->nh_nextoff) <= MAX_REORDERED_RPC *
sys/fs/nfsserver/nfs_nfsdport.c
391
} else if (nh->nh_seqcount > 1) {
sys/fs/nfsserver/nfs_nfsdport.c
392
nh->nh_seqcount /= 2;
sys/fs/nfsserver/nfs_nfsdport.c
394
nh->nh_seqcount = 0;
sys/fs/nfsserver/nfs_nfsdport.c
396
nh->nh_use += NHUSE_INC;
sys/fs/nfsserver/nfs_nfsdport.c
397
if (nh->nh_use > NHUSE_MAX)
sys/fs/nfsserver/nfs_nfsdport.c
398
nh->nh_use = NHUSE_MAX;
sys/fs/nfsserver/nfs_nfsdport.c
399
return (nh);
sys/kern/uipc_ktls.c
1023
struct nhop_object *nh;
sys/kern/uipc_ktls.c
1052
nh = inp->inp_route.ro_nh;
sys/kern/uipc_ktls.c
1053
if (nh == NULL) {
sys/kern/uipc_ktls.c
1057
ifp = nh->nh_ifp;
sys/kern/uipc_ktls.c
925
struct nhop_object *nh;
sys/kern/uipc_ktls.c
959
nh = inp->inp_route.ro_nh;
sys/kern/uipc_ktls.c
960
if (nh == NULL) {
sys/kern/uipc_ktls.c
964
ifp = nh->nh_ifp;
sys/net/debugnet.c
699
struct nhop_object *nh;
sys/net/debugnet.c
709
nh = fib4_lookup_debugnet(debugnet_fib, dest_sin.sin_addr, 0,
sys/net/debugnet.c
713
if (nh == NULL) {
sys/net/debugnet.c
721
if (nh->gw_sa.sa_family == AF_INET)
sys/net/debugnet.c
722
gw_sin = &nh->gw4_sa;
sys/net/debugnet.c
724
if (nh->gw_sa.sa_family == AF_LINK)
sys/net/debugnet.c
729
MPASS(nh->nh_ifa->ifa_addr->sa_family == AF_INET);
sys/net/debugnet.c
730
local_sin = (struct sockaddr_in *)nh->nh_ifa->ifa_addr;
sys/net/debugnet.c
732
rt_ifp = nh->nh_ifp;
sys/net/if_ovpn.c
1973
struct nhop_object *nh;
sys/net/if_ovpn.c
1991
nh = fib4_lookup(M_GETFIB(*m0), *ip_dst, 0,
sys/net/if_ovpn.c
1993
if (nh && (nh->nh_flags & NHF_GATEWAY)) {
sys/net/if_ovpn.c
1995
nh->gw4_sa.sin_addr);
sys/net/if_ovpn.c
1997
&nh->gw4_sa.sin_addr, peer);
sys/net/if_ovpn.c
2007
struct nhop_object *nh;
sys/net/if_ovpn.c
2025
nh = fib6_lookup(M_GETFIB(*m0), ip6_dst, 0,
sys/net/if_ovpn.c
2027
if (nh && (nh->nh_flags & NHF_GATEWAY)) {
sys/net/if_ovpn.c
2029
&nh->gw6_sa.sin6_addr);
sys/net/if_ovpn.c
2031
&nh->gw6_sa.sin6_addr, peer);
sys/net/if_stf.c
666
struct nhop_object *nh;
sys/net/if_stf.c
669
nh = fib4_lookup(sc->sc_fibnum, *in, 0, 0, 0);
sys/net/if_stf.c
670
if (nh == NULL)
sys/net/if_stf.c
673
if (nh->nh_ifp != inifp)
sys/net/if_stf.c
726
struct nhop_object *nh;
sys/net/if_stf.c
802
nh = fib6_lookup(sc->sc_fibnum, &ip6->ip6_dst, 0, 0, 0);
sys/net/if_stf.c
803
if (nh == NULL) {
sys/net/if_stf.c
808
if ((nh->nh_ifp == ifp) &&
sys/net/if_stf.c
809
(!IN6_ARE_ADDR_EQUAL(&ip6->ip6_src, &nh->gw6_sa.sin6_addr))) {
sys/net/route.c
211
struct nhop_object *nh = nhop_alloc(fibnum, dst->sa_family);
sys/net/route.c
212
if (nh == NULL)
sys/net/route.c
215
nhop_set_gw(nh, gateway, flags & RTF_GATEWAY);
sys/net/route.c
216
nhop_set_transmit_ifp(nh, ifp);
sys/net/route.c
217
nhop_set_src(nh, ifa);
sys/net/route.c
218
nhop_set_pxtype_flag(nh, NHF_HOST);
sys/net/route.c
219
nhop_set_expire(nh, lifetime_sec + time_uptime);
sys/net/route.c
220
nhop_set_redirect(nh, true);
sys/net/route.c
221
nhop_set_origin(nh, NH_ORIGIN_REDIRECT);
sys/net/route.c
222
rnd.rnd_nhop = nhop_get_nhop(nh, &error);
sys/net/route.c
298
struct nhop_object *nh;
sys/net/route.c
300
nh = rib_lookup(fibnum, gateway, NHR_NONE, 0);
sys/net/route.c
306
if ((nh == NULL) || (nh->nh_flags & NHF_DEFAULT))
sys/net/route.c
308
ifa = nh->nh_ifa;
sys/net/route.c
336
rt_ifdelroute(const struct rtentry *rt, const struct nhop_object *nh, void *arg)
sys/net/route.c
340
if (nh->nh_ifp != ifp)
sys/net/route.c
662
rt_routemsg(int cmd, struct rtentry *rt, struct nhop_object *nh,
sys/net/route.c
674
return (rtsock_routemsg(cmd, rt, nh, fibnum));
sys/net/route/fib_algo.c
1761
get_nhop_idx(struct nhop_object *nh)
sys/net/route/fib_algo.c
1763
if (NH_IS_NHGRP(nh))
sys/net/route/fib_algo.c
1764
return (nhgrp_get_idx((struct nhgrp_object *)nh));
sys/net/route/fib_algo.c
1766
return (nhop_get_idx(nh));
sys/net/route/fib_algo.c
1770
fib_get_nhop_idx(struct fib_data *fd, struct nhop_object *nh)
sys/net/route/fib_algo.c
1773
return (get_nhop_idx(nh));
sys/net/route/fib_algo.c
1784
fib_ref_nhop(struct fib_data *fd, struct nhop_object *nh)
sys/net/route/fib_algo.c
1786
uint32_t idx = get_nhop_idx(nh);
sys/net/route/fib_algo.c
1794
nhop_ref_any(nh);
sys/net/route/fib_algo.c
1795
fd->nh_idx[idx] = nh;
sys/net/route/fib_algo.c
1805
struct nhop_object *nh;
sys/net/route/fib_algo.c
1815
nhop_free_any(nrd->nh);
sys/net/route/fib_algo.c
1827
fib_schedule_release_nhop(struct fib_data *fd, struct nhop_object *nh)
sys/net/route/fib_algo.c
1833
nrd->nh = nh;
sys/net/route/fib_algo.c
1840
FD_PRINTF(LOG_ERR, fd, "unable to schedule nhop %p deletion", nh);
sys/net/route/fib_algo.c
1845
fib_unref_nhop(struct fib_data *fd, struct nhop_object *nh)
sys/net/route/fib_algo.c
1847
uint32_t idx = get_nhop_idx(nh);
sys/net/route/fib_algo.c
1850
KASSERT((nh == fd->nh_idx[idx]), ("index table contains whong nh"));
sys/net/route/fib_algo.c
202
static uint32_t fib_ref_nhop(struct fib_data *fd, struct nhop_object *nh);
sys/net/route/fib_algo.c
203
static void fib_unref_nhop(struct fib_data *fd, struct nhop_object *nh);
sys/net/route/fib_algo.c
662
struct nhop_object *nh;
sys/net/route/fib_algo.c
667
nh = rc->rc_nh_new;
sys/net/route/fib_algo.c
668
if (!NH_IS_NHGRP(nh)) {
sys/net/route/fib_algo.c
669
if (!(nh->nh_flags & NHF_GATEWAY))
sys/net/route/fib_algo.c
671
if (nhop_get_rtflags(nh) & RTF_STATIC)
sys/net/route/fib_algo.c
676
nh = rc->rc_nh_old;
sys/net/route/fib_algo.c
677
if (!NH_IS_NHGRP(nh)) {
sys/net/route/fib_algo.c
678
if (!(nh->nh_flags & NHF_GATEWAY))
sys/net/route/fib_algo.c
680
if (nhop_get_rtflags(nh) & RTF_STATIC)
sys/net/route/fib_algo.c
966
struct nhop_object *nh = rt_get_raw_nhop(rt);
sys/net/route/fib_algo.c
967
if (fib_ref_nhop(w->fd, nh) != 0)
sys/net/route/fib_algo.h
125
uint32_t fib_get_nhop_idx(struct fib_data *fd, struct nhop_object *nh);
sys/net/route/nhgrp_ctl.c
247
FIB_NH_LOG(LOG_DEBUG3, x[0].nh, "sum: %lu, slots: %d",
sys/net/route/nhgrp_ctl.c
260
FIB_NH_LOG(LOG_DEBUG3, x[0].nh,
sys/net/route/nhgrp_ctl.c
267
dst->nhops[slot_idx++] = x[i].nh;
sys/net/route/nhgrp_ctl.c
293
FIB_NH_LOG(LOG_INFO, wn[0].nh,
sys/net/route/nhgrp_ctl.c
314
FIB_NH_LOG(LOG_DEBUG, wn[0].nh, "num_nhops: %d, compiled_nhop: %u",
sys/net/route/nhgrp_ctl.c
404
FIB_NH_LOG(LOG_DEBUG2, nhg_priv->nhg_nh_weights[0].nh,
sys/net/route/nhgrp_ctl.c
431
if (nhop_try_ref_object(nhg_priv->nhg_nh_weights[i].nh) != 0)
sys/net/route/nhgrp_ctl.c
439
nhop_free(nhg_priv->nhg_nh_weights[j].nh);
sys/net/route/nhgrp_ctl.c
451
nhop_free(nhg_priv->nhg_nh_weights[i].nh);
sys/net/route/nhgrp_ctl.c
491
if (wn[i].nh->nh_priv->nh_control != ctl) {
sys/net/route/nhgrp_ctl.c
495
if (wn[i].nh->nh_priv->nh_idx == last_id) {
sys/net/route/nhgrp_ctl.c
499
last_id = wn[i].nh->nh_priv->nh_idx;
sys/net/route/nhgrp_ctl.c
690
if (flt_func(rt, src_priv->nhg_nh_weights[i].nh, flt_data))
sys/net/route/nhgrp_ctl.c
700
rnd->rnd_nhop = pnhops[0].nh;
sys/net/route/nhgrp_ctl.c
739
wn[0].nh = rnd_add->rnd_nhop;
sys/net/route/nhgrp_ctl.c
744
wn[1].nh = rnd_orig->rnd_nhop;
sys/net/route/nhgrp_ctl.c
817
wn->nh->nh_priv->nh_idx, wn->weight);
sys/net/route/nhgrp_ctl.c
878
ext[i].nh_idx = nhg_priv->nhg_nh_weights[i].nh->nh_priv->nh_idx;
sys/net/route/nhgrp_ctl.c
90
uint32_t a_idx = w_a->nh->nh_priv->nh_idx;
sys/net/route/nhgrp_ctl.c
91
uint32_t b_idx = w_b->nh->nh_priv->nh_idx;
sys/net/route/nhop.c
210
struct nhop_object *nh = priv->nh;
sys/net/route/nhop.c
212
.ifentropy = (uint16_t)((((uintptr_t)nh->nh_ifp) >> 6) & 0xFFFF),
sys/net/route/nhop.c
213
.family = nh->gw_sa.sa_family,
sys/net/route/nhop.c
215
.gw_addr = (nh->gw_sa.sa_family == AF_INET6) ?
sys/net/route/nhop.c
216
nh->gw6_sa.sin6_addr.s6_addr32[3] :
sys/net/route/nhop.c
217
nh->gw4_sa.sin_addr.s_addr
sys/net/route/nhop.h
165
struct nhop_object *nh;
sys/net/route/nhop.h
170
void nhop_free(struct nhop_object *nh);
sys/net/route/nhop.h
181
void nhop_copy(struct nhop_object *nh, const struct nhop_object *nh_orig);
sys/net/route/nhop.h
182
struct nhop_object *nhop_get_nhop(struct nhop_object *nh, int *perror);
sys/net/route/nhop.h
183
int nhop_get_unlinked(struct nhop_object *nh);
sys/net/route/nhop.h
185
void nhop_set_direct_gw(struct nhop_object *nh, struct ifnet *ifp);
sys/net/route/nhop.h
186
bool nhop_set_gw(struct nhop_object *nh, const struct sockaddr *sa, bool is_gw);
sys/net/route/nhop.h
189
void nhop_set_mtu(struct nhop_object *nh, uint32_t mtu, bool from_user);
sys/net/route/nhop.h
190
void nhop_set_rtflags(struct nhop_object *nh, int rt_flags);
sys/net/route/nhop.h
191
void nhop_set_pxtype_flag(struct nhop_object *nh, int nh_flag);
sys/net/route/nhop.h
192
void nhop_set_broadcast(struct nhop_object *nh, bool is_broadcast);
sys/net/route/nhop.h
193
void nhop_set_blackhole(struct nhop_object *nh, int blackhole_rt_flag);
sys/net/route/nhop.h
194
void nhop_set_pinned(struct nhop_object *nh, bool is_pinned);
sys/net/route/nhop.h
195
void nhop_set_redirect(struct nhop_object *nh, bool is_redirect);
sys/net/route/nhop.h
196
void nhop_set_type(struct nhop_object *nh, enum nhop_type nh_type);
sys/net/route/nhop.h
197
void nhop_set_src(struct nhop_object *nh, struct ifaddr *ifa);
sys/net/route/nhop.h
198
void nhop_set_transmit_ifp(struct nhop_object *nh, struct ifnet *ifp);
sys/net/route/nhop.h
205
void nhop_set_origin(struct nhop_object *nh, uint8_t origin);
sys/net/route/nhop.h
206
uint8_t nhop_get_origin(const struct nhop_object *nh);
sys/net/route/nhop.h
208
uint32_t nhop_get_idx(const struct nhop_object *nh);
sys/net/route/nhop.h
209
uint32_t nhop_get_uidx(const struct nhop_object *nh);
sys/net/route/nhop.h
210
void nhop_set_uidx(struct nhop_object *nh, uint32_t uidx);
sys/net/route/nhop.h
211
enum nhop_type nhop_get_type(const struct nhop_object *nh);
sys/net/route/nhop.h
212
int nhop_get_rtflags(const struct nhop_object *nh);
sys/net/route/nhop.h
213
struct vnet *nhop_get_vnet(const struct nhop_object *nh);
sys/net/route/nhop.h
214
struct nhop_object *nhop_select_func(struct nhop_object *nh, uint32_t flowid);
sys/net/route/nhop.h
215
int nhop_get_upper_family(const struct nhop_object *nh);
sys/net/route/nhop.h
216
bool nhop_set_upper_family(struct nhop_object *nh, int family);
sys/net/route/nhop.h
217
int nhop_get_neigh_family(const struct nhop_object *nh);
sys/net/route/nhop.h
218
uint32_t nhop_get_fibnum(const struct nhop_object *nh);
sys/net/route/nhop.h
219
void nhop_set_fibnum(struct nhop_object *nh, uint32_t fibnum);
sys/net/route/nhop.h
220
uint32_t nhop_get_expire(const struct nhop_object *nh);
sys/net/route/nhop.h
221
void nhop_set_expire(struct nhop_object *nh, uint32_t expire);
sys/net/route/nhop.h
222
struct rib_head *nhop_get_rh(const struct nhop_object *nh);
sys/net/route/nhop_ctl.c
1001
nhop_get_fibnum(const struct nhop_object *nh)
sys/net/route/nhop_ctl.c
1003
return (nh->nh_priv->nh_fibnum);
sys/net/route/nhop_ctl.c
1007
nhop_set_fibnum(struct nhop_object *nh, uint32_t fibnum)
sys/net/route/nhop_ctl.c
1009
nh->nh_priv->nh_fibnum = fibnum;
sys/net/route/nhop_ctl.c
1013
nhop_get_expire(const struct nhop_object *nh)
sys/net/route/nhop_ctl.c
1015
return (nh->nh_priv->nh_expire);
sys/net/route/nhop_ctl.c
1019
nhop_set_expire(struct nhop_object *nh, uint32_t expire)
sys/net/route/nhop_ctl.c
1021
MPASS(!NH_IS_LINKED(nh));
sys/net/route/nhop_ctl.c
1022
nh->nh_priv->nh_expire = expire;
sys/net/route/nhop_ctl.c
1026
nhop_get_rh(const struct nhop_object *nh)
sys/net/route/nhop_ctl.c
1028
uint32_t fibnum = nhop_get_fibnum(nh);
sys/net/route/nhop_ctl.c
1029
int family = nhop_get_neigh_family(nh);
sys/net/route/nhop_ctl.c
1035
nhop_get_origin(const struct nhop_object *nh)
sys/net/route/nhop_ctl.c
1037
return (nh->nh_priv->nh_origin);
sys/net/route/nhop_ctl.c
1041
nhop_set_origin(struct nhop_object *nh, uint8_t origin)
sys/net/route/nhop_ctl.c
1043
nh->nh_priv->nh_origin = origin;
sys/net/route/nhop_ctl.c
1051
struct nhop_object *nh;
sys/net/route/nhop_ctl.c
1057
nh = nh_priv->nh;
sys/net/route/nhop_ctl.c
1058
if (nh->nh_ifp == ifp) {
sys/net/route/nhop_ctl.c
1060
nh->nh_mtu > mtu) {
sys/net/route/nhop_ctl.c
1062
nh->nh_mtu = mtu;
sys/net/route/nhop_ctl.c
1095
return (nh_priv->nh);
sys/net/route/nhop_ctl.c
1103
return (nh_priv->nh);
sys/net/route/nhop_ctl.c
1125
nhop_print_buf(const struct nhop_object *nh, char *buf, size_t bufsize)
sys/net/route/nhop_ctl.c
1130
struct nhop_priv *nh_priv = nh->nh_priv;
sys/net/route/nhop_ctl.c
1131
const char *upper_str = rib_print_family(nh->nh_priv->nh_upper_family);
sys/net/route/nhop_ctl.c
1133
switch (nh->gw_sa.sa_family) {
sys/net/route/nhop_ctl.c
1136
inet_ntop(AF_INET, &nh->gw4_sa.sin_addr, abuf, sizeof(abuf));
sys/net/route/nhop_ctl.c
1138
if_name(nh->nh_ifp), abuf);
sys/net/route/nhop_ctl.c
1143
inet_ntop(AF_INET6, &nh->gw6_sa.sin6_addr, abuf, sizeof(abuf));
sys/net/route/nhop_ctl.c
1145
if_name(nh->nh_ifp), abuf);
sys/net/route/nhop_ctl.c
1150
if_name(nh->nh_ifp));
sys/net/route/nhop_ctl.c
1154
if_name(nh->nh_ifp));
sys/net/route/nhop_ctl.c
1162
nhop_print_buf_any(const struct nhop_object *nh, char *buf, size_t bufsize)
sys/net/route/nhop_ctl.c
1165
if (NH_IS_NHGRP(nh))
sys/net/route/nhop_ctl.c
1166
return (nhgrp_print_buf((const struct nhgrp_object *)nh, buf, bufsize));
sys/net/route/nhop_ctl.c
1168
return (nhop_print_buf(nh, buf, bufsize));
sys/net/route/nhop_ctl.c
1180
dump_nhop_entry(struct rib_head *rh, struct nhop_object *nh, struct sysctl_req *w)
sys/net/route/nhop_ctl.c
1199
arpc.rtm.rtm_flags = nh->nh_priv->rt_flags;
sys/net/route/nhop_ctl.c
1204
pnhe->nh_idx = nh->nh_priv->nh_idx;
sys/net/route/nhop_ctl.c
1206
pnhe->ifindex = nh->nh_ifp->if_index;
sys/net/route/nhop_ctl.c
1207
pnhe->aifindex = nh->nh_aifp->if_index;
sys/net/route/nhop_ctl.c
1208
pnhe->nh_family = nh->nh_priv->nh_upper_family;
sys/net/route/nhop_ctl.c
1209
pnhe->nh_type = nh->nh_priv->nh_type;
sys/net/route/nhop_ctl.c
1210
pnhe->nh_mtu = nh->nh_mtu;
sys/net/route/nhop_ctl.c
1211
pnhe->nh_flags = nh->nh_flags;
sys/net/route/nhop_ctl.c
1213
memcpy(pnhe->nh_prepend, nh->nh_prepend, sizeof(nh->nh_prepend));
sys/net/route/nhop_ctl.c
1214
pnhe->prepend_len = nh->nh_prepend_len;
sys/net/route/nhop_ctl.c
1215
pnhe->nh_refcount = nh->nh_priv->nh_refcnt;
sys/net/route/nhop_ctl.c
1216
pnhe->nh_pksent = counter_u64_fetch(nh->nh_pksent);
sys/net/route/nhop_ctl.c
1221
gw_sa = (struct sockaddr *)&nh->gw4_sa;
sys/net/route/nhop_ctl.c
1224
src_sa = nh->nh_ifa->ifa_addr;
sys/net/route/nhop_ctl.c
1229
nh->nh_ifa->ifa_ifp);
sys/net/route/nhop_ctl.c
125
get_aifp(const struct nhop_object *nh)
sys/net/route/nhop_ctl.c
1276
error = dump_nhop_entry(rh, nh_priv->nh, w);
sys/net/route/nhop_ctl.c
136
if ((nh->nh_ifp->if_flags & IFF_LOOPBACK) &&
sys/net/route/nhop_ctl.c
137
nh->gw_sa.sa_family == AF_LINK) {
sys/net/route/nhop_ctl.c
138
aifp = ifnet_byindex(nh->gwl_sa.sdl_index);
sys/net/route/nhop_ctl.c
140
FIB_NH_LOG(LOG_WARNING, nh, "unable to get aifp for %s index %d",
sys/net/route/nhop_ctl.c
141
if_name(nh->nh_ifp), nh->gwl_sa.sdl_index);
sys/net/route/nhop_ctl.c
146
aifp = nh->nh_ifp;
sys/net/route/nhop_ctl.c
155
if (memcmp(_one->nh, _two->nh, NHOP_END_CMP) != 0)
sys/net/route/nhop_ctl.c
168
set_nhop_mtu_from_info(struct nhop_object *nh, const struct rt_addrinfo *info)
sys/net/route/nhop_ctl.c
171
nhop_set_mtu(nh, info->rti_rmx->rmx_mtu, true);
sys/net/route/nhop_ctl.c
190
set_nhop_gw_from_info(struct nhop_object *nh, struct rt_addrinfo *info)
sys/net/route/nhop_ctl.c
212
FIB_NH_LOG(LOG_DEBUG, nh, "error: invalid ifindex %d",
sys/net/route/nhop_ctl.c
216
nhop_set_direct_gw(nh, ifp);
sys/net/route/nhop_ctl.c
230
if (!nhop_set_gw(nh, gw, is_gw))
sys/net/route/nhop_ctl.c
237
set_nhop_expire_from_info(struct nhop_object *nh, const struct rt_addrinfo *info)
sys/net/route/nhop_ctl.c
244
nhop_set_expire(nh, nh_expire);
sys/net/route/nhop_ctl.c
270
struct nhop_object *nh = nhop_alloc(rnh->rib_fibnum, rnh->rib_family);
sys/net/route/nhop_ctl.c
271
if (nh == NULL)
sys/net/route/nhop_ctl.c
274
if ((error = set_nhop_gw_from_info(nh, info)) != 0) {
sys/net/route/nhop_ctl.c
275
nhop_free(nh);
sys/net/route/nhop_ctl.c
278
nhop_set_transmit_ifp(nh, info->rti_ifp);
sys/net/route/nhop_ctl.c
280
nhop_set_blackhole(nh, info->rti_flags & (RTF_BLACKHOLE | RTF_REJECT));
sys/net/route/nhop_ctl.c
283
info->rti_info[RTAX_NETMASK], nh);
sys/net/route/nhop_ctl.c
285
nhop_set_redirect(nh, info->rti_flags & RTF_DYNAMIC);
sys/net/route/nhop_ctl.c
286
nhop_set_pinned(nh, info->rti_flags & RTF_PINNED);
sys/net/route/nhop_ctl.c
287
set_nhop_expire_from_info(nh, info);
sys/net/route/nhop_ctl.c
288
nhop_set_rtflags(nh, info->rti_flags);
sys/net/route/nhop_ctl.c
290
set_nhop_mtu_from_info(nh, info);
sys/net/route/nhop_ctl.c
291
nhop_set_src(nh, info->rti_ifa);
sys/net/route/nhop_ctl.c
297
*nh_ret = nhop_get_nhop(nh, &error);
sys/net/route/nhop_ctl.c
312
nhop_get_nhop(struct nhop_object *nh, int *perror)
sys/net/route/nhop_ctl.c
314
struct rib_head *rnh = nhop_get_rh(nh);
sys/net/route/nhop_ctl.c
318
nhop_free(nh);
sys/net/route/nhop_ctl.c
322
return (nhop_get_nhop_internal(rnh, nh, perror));
sys/net/route/nhop_ctl.c
326
nhop_get_nhop_internal(struct rib_head *rnh, struct nhop_object *nh, int *perror)
sys/net/route/nhop_ctl.c
331
nh->nh_aifp = get_aifp(nh);
sys/net/route/nhop_ctl.c
334
error = rnh->rnh_augment_nh(rnh->rib_fibnum, nh);
sys/net/route/nhop_ctl.c
336
nhop_free(nh);
sys/net/route/nhop_ctl.c
341
tmp_priv = find_nhop(rnh->nh_control, nh->nh_priv);
sys/net/route/nhop_ctl.c
343
nhop_free(nh);
sys/net/route/nhop_ctl.c
345
return (tmp_priv->nh);
sys/net/route/nhop_ctl.c
356
*perror = finalize_nhop(rnh->nh_control, nh, true);
sys/net/route/nhop_ctl.c
357
return (*perror == 0 ? nh : NULL);
sys/net/route/nhop_ctl.c
368
nhop_get_unlinked(struct nhop_object *nh)
sys/net/route/nhop_ctl.c
370
struct rib_head *rnh = nhop_get_rh(nh);
sys/net/route/nhop_ctl.c
373
nhop_free(nh);
sys/net/route/nhop_ctl.c
377
nh->nh_aifp = get_aifp(nh);
sys/net/route/nhop_ctl.c
379
return (finalize_nhop(rnh->nh_control, nh, false));
sys/net/route/nhop_ctl.c
396
alter_nhop_from_info(struct nhop_object *nh, struct rt_addrinfo *info)
sys/net/route/nhop_ctl.c
402
set_nhop_mtu_from_info(nh, info);
sys/net/route/nhop_ctl.c
405
uint32_t rt_flags = nhop_get_rtflags(nh) & ~RT_CHANGE_RTFLAGS_MASK;
sys/net/route/nhop_ctl.c
407
nhop_set_rtflags(nh, rt_flags);
sys/net/route/nhop_ctl.c
412
error = set_nhop_gw_from_info(nh, info);
sys/net/route/nhop_ctl.c
418
nhop_set_src(nh, info->rti_ifa);
sys/net/route/nhop_ctl.c
420
nhop_set_transmit_ifp(nh, info->rti_ifp);
sys/net/route/nhop_ctl.c
438
struct nhop_object *nh;
sys/net/route/nhop_ctl.c
443
nh = nhop_alloc(rnh->rib_fibnum, rnh->rib_family);
sys/net/route/nhop_ctl.c
444
if (nh == NULL)
sys/net/route/nhop_ctl.c
447
nhop_copy(nh, nh_orig);
sys/net/route/nhop_ctl.c
449
error = alter_nhop_from_info(nh, info);
sys/net/route/nhop_ctl.c
451
nhop_free(nh);
sys/net/route/nhop_ctl.c
455
*pnh = nhop_get_nhop(nh, &error);
sys/net/route/nhop_ctl.c
461
reference_nhop_deps(struct nhop_object *nh)
sys/net/route/nhop_ctl.c
463
if (!ifa_try_ref(nh->nh_ifa))
sys/net/route/nhop_ctl.c
465
nh->nh_aifp = get_aifp(nh);
sys/net/route/nhop_ctl.c
466
if (!if_try_ref(nh->nh_aifp)) {
sys/net/route/nhop_ctl.c
467
ifa_free(nh->nh_ifa);
sys/net/route/nhop_ctl.c
470
FIB_NH_LOG(LOG_DEBUG2, nh, "nh_aifp: %s nh_ifp %s",
sys/net/route/nhop_ctl.c
471
if_name(nh->nh_aifp), if_name(nh->nh_ifp));
sys/net/route/nhop_ctl.c
472
if (!if_try_ref(nh->nh_ifp)) {
sys/net/route/nhop_ctl.c
473
ifa_free(nh->nh_ifa);
sys/net/route/nhop_ctl.c
474
if_rele(nh->nh_aifp);
sys/net/route/nhop_ctl.c
488
finalize_nhop(struct nh_control *ctl, struct nhop_object *nh, bool link)
sys/net/route/nhop_ctl.c
492
nh->nh_pksent = counter_u64_alloc(M_NOWAIT);
sys/net/route/nhop_ctl.c
493
if (nh->nh_pksent == NULL) {
sys/net/route/nhop_ctl.c
494
nhop_free(nh);
sys/net/route/nhop_ctl.c
496
FIB_NH_LOG(LOG_WARNING, nh, "counter_u64_alloc() failed");
sys/net/route/nhop_ctl.c
500
if (!reference_nhop_deps(nh)) {
sys/net/route/nhop_ctl.c
501
counter_u64_free(nh->nh_pksent);
sys/net/route/nhop_ctl.c
502
nhop_free(nh);
sys/net/route/nhop_ctl.c
504
FIB_NH_LOG(LOG_WARNING, nh, "interface reference failed");
sys/net/route/nhop_ctl.c
509
nh->nh_priv->nh_vnet = curvnet;
sys/net/route/nhop_ctl.c
512
refcount_init(&nh->nh_priv->nh_linked, 2);
sys/net/route/nhop_ctl.c
514
MPASS(nh->nh_priv->nh_fibnum == ctl->ctl_rh->rib_fibnum);
sys/net/route/nhop_ctl.c
517
refcount_release(&nh->nh_priv->nh_linked);
sys/net/route/nhop_ctl.c
519
nh->nh_priv->nh_finalized = 1;
sys/net/route/nhop_ctl.c
521
} else if (link_nhop(ctl, nh->nh_priv) == 0) {
sys/net/route/nhop_ctl.c
529
FIB_NH_LOG(LOG_WARNING, nh, "failed to link %s",
sys/net/route/nhop_ctl.c
530
nhop_print_buf(nh, nhbuf, sizeof(nhbuf)));
sys/net/route/nhop_ctl.c
531
destroy_nhop(nh);
sys/net/route/nhop_ctl.c
538
FIB_NH_LOG(LOG_DEBUG, nh, "finalized: %s",
sys/net/route/nhop_ctl.c
539
nhop_print_buf(nh, nhbuf, sizeof(nhbuf)));
sys/net/route/nhop_ctl.c
546
destroy_nhop(struct nhop_object *nh)
sys/net/route/nhop_ctl.c
548
if_rele(nh->nh_ifp);
sys/net/route/nhop_ctl.c
549
if_rele(nh->nh_aifp);
sys/net/route/nhop_ctl.c
550
ifa_free(nh->nh_ifa);
sys/net/route/nhop_ctl.c
551
counter_u64_free(nh->nh_pksent);
sys/net/route/nhop_ctl.c
553
uma_zfree(nhops_zone, nh);
sys/net/route/nhop_ctl.c
566
destroy_nhop(nh_priv->nh);
sys/net/route/nhop_ctl.c
570
nhop_ref_object(struct nhop_object *nh)
sys/net/route/nhop_ctl.c
574
old = refcount_acquire(&nh->nh_priv->nh_refcnt);
sys/net/route/nhop_ctl.c
575
KASSERT(old > 0, ("%s: nhop object %p has 0 refs", __func__, nh));
sys/net/route/nhop_ctl.c
579
nhop_try_ref_object(struct nhop_object *nh)
sys/net/route/nhop_ctl.c
582
return (refcount_acquire_if_not_zero(&nh->nh_priv->nh_refcnt));
sys/net/route/nhop_ctl.c
586
nhop_free(struct nhop_object *nh)
sys/net/route/nhop_ctl.c
589
struct nhop_priv *nh_priv = nh->nh_priv;
sys/net/route/nhop_ctl.c
597
uma_zfree(nhops_zone, nh);
sys/net/route/nhop_ctl.c
603
FIB_NH_LOG(LOG_DEBUG, nh, "deleting %s",
sys/net/route/nhop_ctl.c
604
nhop_print_buf(nh, nhbuf, sizeof(nhbuf)));
sys/net/route/nhop_ctl.c
632
FIB_NH_LOG(LOG_WARNING, nh, "failed to unlink %s",
sys/net/route/nhop_ctl.c
633
nhop_print_buf(nh, nhbuf, sizeof(nhbuf)));
sys/net/route/nhop_ctl.c
644
nhop_ref_any(struct nhop_object *nh)
sys/net/route/nhop_ctl.c
647
if (!NH_IS_NHGRP(nh))
sys/net/route/nhop_ctl.c
648
nhop_ref_object(nh);
sys/net/route/nhop_ctl.c
650
nhgrp_ref_object((struct nhgrp_object *)nh);
sys/net/route/nhop_ctl.c
654
nhop_free_any(struct nhop_object *nh)
sys/net/route/nhop_ctl.c
657
if (!NH_IS_NHGRP(nh))
sys/net/route/nhop_ctl.c
658
nhop_free(nh);
sys/net/route/nhop_ctl.c
660
nhgrp_free((struct nhgrp_object *)nh);
sys/net/route/nhop_ctl.c
672
struct nhop_object *nh;
sys/net/route/nhop_ctl.c
675
nh = (struct nhop_object *)uma_zalloc(nhops_zone, M_NOWAIT | M_ZERO);
sys/net/route/nhop_ctl.c
676
if (__predict_false(nh == NULL))
sys/net/route/nhop_ctl.c
679
nh_priv = (struct nhop_priv *)((char *)nh + NHOP_OBJECT_ALIGNED_SIZE);
sys/net/route/nhop_ctl.c
680
nh->nh_priv = nh_priv;
sys/net/route/nhop_ctl.c
681
nh_priv->nh = nh;
sys/net/route/nhop_ctl.c
689
return (nh);
sys/net/route/nhop_ctl.c
693
nhop_copy(struct nhop_object *nh, const struct nhop_object *nh_orig)
sys/net/route/nhop_ctl.c
695
struct nhop_priv *nh_priv = nh->nh_priv;
sys/net/route/nhop_ctl.c
697
nh->nh_flags = nh_orig->nh_flags;
sys/net/route/nhop_ctl.c
698
nh->nh_mtu = nh_orig->nh_mtu;
sys/net/route/nhop_ctl.c
699
memcpy(&nh->gw_sa, &nh_orig->gw_sa, nh_orig->gw_sa.sa_len);
sys/net/route/nhop_ctl.c
700
nh->nh_ifp = nh_orig->nh_ifp;
sys/net/route/nhop_ctl.c
701
nh->nh_ifa = nh_orig->nh_ifa;
sys/net/route/nhop_ctl.c
702
nh->nh_aifp = nh_orig->nh_aifp;
sys/net/route/nhop_ctl.c
713
nhop_set_direct_gw(struct nhop_object *nh, struct ifnet *ifp)
sys/net/route/nhop_ctl.c
715
nh->nh_flags &= ~NHF_GATEWAY;
sys/net/route/nhop_ctl.c
716
nh->nh_priv->rt_flags &= ~RTF_GATEWAY;
sys/net/route/nhop_ctl.c
717
nh->nh_priv->nh_neigh_family = nh->nh_priv->nh_upper_family;
sys/net/route/nhop_ctl.c
719
fill_sdl_from_ifp(&nh->gwl_sa, ifp);
sys/net/route/nhop_ctl.c
720
memset(&nh->gw_buf[nh->gw_sa.sa_len], 0, sizeof(nh->gw_buf) - nh->gw_sa.sa_len);
sys/net/route/nhop_ctl.c
746
nhop_set_gw(struct nhop_object *nh, const struct sockaddr *gw, bool is_gw)
sys/net/route/nhop_ctl.c
748
if (gw->sa_len > sizeof(nh->gw_buf)) {
sys/net/route/nhop_ctl.c
749
FIB_NH_LOG(LOG_DEBUG, nh, "nhop SA size too big: AF %d len %u",
sys/net/route/nhop_ctl.c
754
if (!nhop_check_gateway(nh->nh_priv->nh_upper_family, gw->sa_family)) {
sys/net/route/nhop_ctl.c
755
FIB_NH_LOG(LOG_DEBUG, nh,
sys/net/route/nhop_ctl.c
757
nh->nh_priv->nh_upper_family, gw->sa_family);
sys/net/route/nhop_ctl.c
761
memcpy(&nh->gw_sa, gw, gw->sa_len);
sys/net/route/nhop_ctl.c
762
memset(&nh->gw_buf[gw->sa_len], 0, sizeof(nh->gw_buf) - gw->sa_len);
sys/net/route/nhop_ctl.c
765
nh->nh_flags |= NHF_GATEWAY;
sys/net/route/nhop_ctl.c
766
nh->nh_priv->rt_flags |= RTF_GATEWAY;
sys/net/route/nhop_ctl.c
767
nh->nh_priv->nh_neigh_family = gw->sa_family;
sys/net/route/nhop_ctl.c
769
nh->nh_flags &= ~NHF_GATEWAY;
sys/net/route/nhop_ctl.c
770
nh->nh_priv->rt_flags &= ~RTF_GATEWAY;
sys/net/route/nhop_ctl.c
771
nh->nh_priv->nh_neigh_family = nh->nh_priv->nh_upper_family;
sys/net/route/nhop_ctl.c
778
nhop_set_upper_family(struct nhop_object *nh, int family)
sys/net/route/nhop_ctl.c
780
if (!nhop_check_gateway(nh->nh_priv->nh_upper_family, family)) {
sys/net/route/nhop_ctl.c
781
FIB_NH_LOG(LOG_DEBUG, nh,
sys/net/route/nhop_ctl.c
783
nh->nh_priv->nh_upper_family, family);
sys/net/route/nhop_ctl.c
787
nh->nh_priv->nh_upper_family = family;
sys/net/route/nhop_ctl.c
792
nhop_set_broadcast(struct nhop_object *nh, bool is_broadcast)
sys/net/route/nhop_ctl.c
795
nh->nh_flags |= NHF_BROADCAST;
sys/net/route/nhop_ctl.c
796
nh->nh_priv->rt_flags |= RTF_BROADCAST;
sys/net/route/nhop_ctl.c
798
nh->nh_flags &= ~NHF_BROADCAST;
sys/net/route/nhop_ctl.c
799
nh->nh_priv->rt_flags &= ~RTF_BROADCAST;
sys/net/route/nhop_ctl.c
804
nhop_set_blackhole(struct nhop_object *nh, int blackhole_rt_flag)
sys/net/route/nhop_ctl.c
806
nh->nh_flags &= ~(NHF_BLACKHOLE | NHF_REJECT);
sys/net/route/nhop_ctl.c
807
nh->nh_priv->rt_flags &= ~(RTF_BLACKHOLE | RTF_REJECT);
sys/net/route/nhop_ctl.c
810
nh->nh_flags |= NHF_BLACKHOLE;
sys/net/route/nhop_ctl.c
811
nh->nh_priv->rt_flags |= RTF_BLACKHOLE;
sys/net/route/nhop_ctl.c
814
nh->nh_flags |= NHF_REJECT;
sys/net/route/nhop_ctl.c
815
nh->nh_priv->rt_flags |= RTF_REJECT;
sys/net/route/nhop_ctl.c
822
nh->nh_ifp = V_loif;
sys/net/route/nhop_ctl.c
823
nh->nh_flags &= ~NHF_GATEWAY;
sys/net/route/nhop_ctl.c
824
nh->nh_priv->rt_flags &= ~RTF_GATEWAY;
sys/net/route/nhop_ctl.c
825
nh->nh_priv->nh_neigh_family = nh->nh_priv->nh_upper_family;
sys/net/route/nhop_ctl.c
827
bzero(&nh->gw_sa, sizeof(nh->gw_sa));
sys/net/route/nhop_ctl.c
829
switch (nh->nh_priv->nh_upper_family) {
sys/net/route/nhop_ctl.c
832
nh->gw4_sa.sin_family = AF_INET;
sys/net/route/nhop_ctl.c
833
nh->gw4_sa.sin_len = sizeof(struct sockaddr_in);
sys/net/route/nhop_ctl.c
834
nh->gw4_sa.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
sys/net/route/nhop_ctl.c
839
nh->gw6_sa.sin6_family = AF_INET6;
sys/net/route/nhop_ctl.c
840
nh->gw6_sa.sin6_len = sizeof(struct sockaddr_in6);
sys/net/route/nhop_ctl.c
841
nh->gw6_sa.sin6_addr = in6addr_loopback;
sys/net/route/nhop_ctl.c
848
nhop_set_redirect(struct nhop_object *nh, bool is_redirect)
sys/net/route/nhop_ctl.c
85
static int dump_nhop_entry(struct rib_head *rh, struct nhop_object *nh, struct sysctl_req *w);
sys/net/route/nhop_ctl.c
851
nh->nh_priv->rt_flags |= RTF_DYNAMIC;
sys/net/route/nhop_ctl.c
852
nh->nh_flags |= NHF_REDIRECT;
sys/net/route/nhop_ctl.c
854
nh->nh_priv->rt_flags &= ~RTF_DYNAMIC;
sys/net/route/nhop_ctl.c
855
nh->nh_flags &= ~NHF_REDIRECT;
sys/net/route/nhop_ctl.c
860
nhop_set_pinned(struct nhop_object *nh, bool is_pinned)
sys/net/route/nhop_ctl.c
863
nh->nh_priv->rt_flags |= RTF_PINNED;
sys/net/route/nhop_ctl.c
865
nh->nh_priv->rt_flags &= ~RTF_PINNED;
sys/net/route/nhop_ctl.c
869
nhop_get_idx(const struct nhop_object *nh)
sys/net/route/nhop_ctl.c
87
static int finalize_nhop(struct nh_control *ctl, struct nhop_object *nh, bool link);
sys/net/route/nhop_ctl.c
872
return (nh->nh_priv->nh_idx);
sys/net/route/nhop_ctl.c
876
nhop_get_uidx(const struct nhop_object *nh)
sys/net/route/nhop_ctl.c
878
return (nh->nh_priv->nh_uidx);
sys/net/route/nhop_ctl.c
88
static struct ifnet *get_aifp(const struct nhop_object *nh);
sys/net/route/nhop_ctl.c
882
nhop_set_uidx(struct nhop_object *nh, uint32_t uidx)
sys/net/route/nhop_ctl.c
884
nh->nh_priv->nh_uidx = uidx;
sys/net/route/nhop_ctl.c
888
nhop_get_type(const struct nhop_object *nh)
sys/net/route/nhop_ctl.c
891
return (nh->nh_priv->nh_type);
sys/net/route/nhop_ctl.c
895
nhop_set_type(struct nhop_object *nh, enum nhop_type nh_type)
sys/net/route/nhop_ctl.c
898
nh->nh_priv->nh_type = nh_type;
sys/net/route/nhop_ctl.c
902
nhop_get_rtflags(const struct nhop_object *nh)
sys/net/route/nhop_ctl.c
905
return (nh->nh_priv->rt_flags);
sys/net/route/nhop_ctl.c
912
nhop_set_rtflags(struct nhop_object *nh, int rt_flags)
sys/net/route/nhop_ctl.c
914
nh->nh_priv->rt_flags &= ~RT_SET_RTFLAGS_MASK;
sys/net/route/nhop_ctl.c
915
nh->nh_priv->rt_flags |= (rt_flags & RT_SET_RTFLAGS_MASK);
sys/net/route/nhop_ctl.c
92
static void destroy_nhop(struct nhop_object *nh);
sys/net/route/nhop_ctl.c
922
nhop_set_pxtype_flag(struct nhop_object *nh, int nh_flag)
sys/net/route/nhop_ctl.c
925
nh->nh_flags |= NHF_HOST;
sys/net/route/nhop_ctl.c
926
nh->nh_flags &= ~NHF_DEFAULT;
sys/net/route/nhop_ctl.c
927
nh->nh_priv->rt_flags |= RTF_HOST;
sys/net/route/nhop_ctl.c
929
nh->nh_flags |= NHF_DEFAULT;
sys/net/route/nhop_ctl.c
930
nh->nh_flags &= ~NHF_HOST;
sys/net/route/nhop_ctl.c
931
nh->nh_priv->rt_flags &= ~RTF_HOST;
sys/net/route/nhop_ctl.c
933
nh->nh_flags &= ~(NHF_HOST | NHF_DEFAULT);
sys/net/route/nhop_ctl.c
934
nh->nh_priv->rt_flags &= ~RTF_HOST;
sys/net/route/nhop_ctl.c
943
nhop_set_mtu(struct nhop_object *nh, uint32_t mtu, bool from_user)
sys/net/route/nhop_ctl.c
947
nh->nh_priv->rt_flags |= RTF_FIXEDMTU;
sys/net/route/nhop_ctl.c
949
nh->nh_priv->rt_flags &= ~RTF_FIXEDMTU;
sys/net/route/nhop_ctl.c
951
nh->nh_mtu = mtu;
sys/net/route/nhop_ctl.c
955
nhop_set_src(struct nhop_object *nh, struct ifaddr *ifa)
sys/net/route/nhop_ctl.c
957
nh->nh_ifa = ifa;
sys/net/route/nhop_ctl.c
961
nhop_set_transmit_ifp(struct nhop_object *nh, struct ifnet *ifp)
sys/net/route/nhop_ctl.c
963
nh->nh_ifp = ifp;
sys/net/route/nhop_ctl.c
968
nhop_get_vnet(const struct nhop_object *nh)
sys/net/route/nhop_ctl.c
971
return (nh->nh_priv->nh_vnet);
sys/net/route/nhop_ctl.c
975
nhop_select_func(struct nhop_object *nh, uint32_t flowid)
sys/net/route/nhop_ctl.c
978
return (nhop_select(nh, flowid));
sys/net/route/nhop_ctl.c
985
nhop_get_upper_family(const struct nhop_object *nh)
sys/net/route/nhop_ctl.c
987
return (nh->nh_priv->nh_upper_family);
sys/net/route/nhop_ctl.c
995
nhop_get_neigh_family(const struct nhop_object *nh)
sys/net/route/nhop_ctl.c
997
return (nh->nh_priv->nh_neigh_family);
sys/net/route/nhop_utils.h
174
uint32_t bitmask_get_resize_items(const struct bitmask_head *nh);
sys/net/route/nhop_var.h
89
struct nhop_object *nh; /* backreference to the dataplane nhop */
sys/net/route/route_ctl.c
1006
if (cb != NULL && !cb(rt, nh, cbdata))
sys/net/route/route_ctl.c
1009
if (prio < nhop_get_prio(nh))
sys/net/route/route_ctl.c
1121
if (check_info_match_nhop(info, NULL, wn[i].nh) == 0) {
sys/net/route/route_ctl.c
1122
nh_orig = wn[i].nh;
sys/net/route/route_ctl.c
1143
wn_new[found_idx].nh = nh_new;
sys/net/route/route_ctl.c
1448
struct nhop_object *nh;
sys/net/route/route_ctl.c
1475
nh = rt->rt_nhop;
sys/net/route/route_ctl.c
1478
di.rc.rc_nh_old = nh;
sys/net/route/route_ctl.c
1485
if (NH_IS_NHGRP(nh)) {
sys/net/route/route_ctl.c
1486
nhg = (struct nhgrp_object *)nh;
sys/net/route/route_ctl.c
1489
rt_routemsg(RTM_DELETE, rt, wn[i].nh, fibnum);
sys/net/route/route_ctl.c
1491
rt_routemsg(RTM_DELETE, rt, nh, fibnum);
sys/net/route/route_ctl.c
177
nhop_can_multipath(const struct nhop_object *nh)
sys/net/route/route_ctl.c
180
if ((nh->nh_flags & NHF_MULTIPATH) != 0)
sys/net/route/route_ctl.c
182
if ((nh->nh_flags & NHF_GATEWAY) == 0)
sys/net/route/route_ctl.c
184
if ((nh->nh_flags & NHF_REDIRECT) != 0)
sys/net/route/route_ctl.c
223
nhop_get_prio(const struct nhop_object *nh)
sys/net/route/route_ctl.c
225
if (NH_IS_PINNED(nh))
sys/net/route/route_ctl.c
236
match_nhop_gw(const struct nhop_object *nh, const struct sockaddr *gw)
sys/net/route/route_ctl.c
239
if (nh->gw_sa.sa_family != gw->sa_family)
sys/net/route/route_ctl.c
244
return (nh->gw4_sa.sin_addr.s_addr ==
sys/net/route/route_ctl.c
256
if (IN6_ARE_ADDR_EQUAL(&nh->gw6_sa.sin6_addr,
sys/net/route/route_ctl.c
265
return (nh->gwl_sa.sdl_index == sdl->sdl_index);
sys/net/route/route_ctl.c
268
return (memcmp(&nh->gw_sa, gw, nh->gw_sa.sa_len) == 0);
sys/net/route/route_ctl.c
280
rib_match_gw(const struct rtentry *rt, const struct nhop_object *nh, void *gw_sa)
sys/net/route/route_ctl.c
284
return (match_nhop_gw(nh, gw));
sys/net/route/route_ctl.c
296
match_gw_one(const struct rtentry *rt, const struct nhop_object *nh, void *_data)
sys/net/route/route_ctl.c
301
if (match_nhop_gw(nh, gwd->gw) && gwd->count++ == 0)
sys/net/route/route_ctl.c
315
const struct nhop_object *nh)
sys/net/route/route_ctl.c
320
if (info->rti_filter(rt, nh, info->rti_filterdata) == 0)
sys/net/route/route_ctl.c
325
if ((gw != NULL) && !match_nhop_gw(nh, gw))
sys/net/route/route_ctl.c
627
struct nhop_object *nh = nhop_alloc(rh_dst->rib_fibnum, rh_dst->rib_family);
sys/net/route/route_ctl.c
628
if (nh == NULL) {
sys/net/route/route_ctl.c
632
nhop_copy(nh, rnd_src->rnd_nhop);
sys/net/route/route_ctl.c
633
nhop_set_origin(nh, nhop_get_origin(rnd_src->rnd_nhop));
sys/net/route/route_ctl.c
634
nhop_set_fibnum(nh, rh_dst->rib_fibnum);
sys/net/route/route_ctl.c
635
nh = nhop_get_nhop_internal(rh_dst, nh, &error);
sys/net/route/route_ctl.c
645
nhop_free(nh);
sys/net/route/route_ctl.c
650
.rnd_nhop = nh,
sys/net/route/route_ctl.c
653
int op_flags = RTM_F_CREATE | (NH_IS_PINNED(nh) ? RTM_F_FORCE : 0);
sys/net/route/route_ctl.c
663
nhop_free(nh);
sys/net/route/route_ctl.c
713
struct nhop_object *nh;
sys/net/route/route_ctl.c
748
error = nhop_create_from_info(rnh, info, &nh);
sys/net/route/route_ctl.c
754
rnd_add.rnd_nhop = nh;
sys/net/route/route_ctl.c
774
struct nhop_object *nh;
sys/net/route/route_ctl.c
780
nh = rnd_add->rnd_nhop;
sys/net/route/route_ctl.c
814
nh = rc->rc_nh_old;
sys/net/route/route_ctl.c
847
nhop_free_any(nh);
sys/net/route/route_ctl.c
986
struct nhop_object *nh = rt->rt_nhop;
sys/net/route/route_ctl.c
988
if (NH_IS_NHGRP(nh)) {
sys/net/route/route_ctl.c
989
struct nhgrp_object *nhg = (struct nhgrp_object *)nh;
sys/net/route/route_ctl.c
99
static int nhop_get_prio(const struct nhop_object *nh);
sys/net/route/route_ctl.h
78
int rib_match_gw(const struct rtentry *rt, const struct nhop_object *nh,
sys/net/route/route_ddb.c
134
struct nhop_object *nh;
sys/net/route/route_ddb.c
139
nh = (struct nhop_object *)rt->rt_nhop;
sys/net/route/route_ddb.c
145
if ((nh->nh_ifp->if_flags & IFF_DYING) == 0) {
sys/net/route/route_ddb.c
146
rt_dumpaddr_ddb("ifp", nh->nh_ifp->if_addr->ifa_addr);
sys/net/route/route_ddb.c
147
rt_dumpaddr_ddb("ifa", nh->nh_ifa->ifa_addr);
sys/net/route/route_ddb.c
151
flags = rt->rte_flags | nhop_get_rtflags(nh);
sys/net/route/route_debug.h
175
char *nhop_print_buf(const struct nhop_object *nh, char *buf, size_t bufsize);
sys/net/route/route_debug.h
176
char *nhop_print_buf_any(const struct nhop_object *nh, char *buf, size_t bufsize);
sys/net/route/route_helpers.c
232
struct nhop_object *nh;
sys/net/route/route_helpers.c
234
nh = NULL;
sys/net/route/route_helpers.c
241
nh = fib4_lookup(fibnum, a->sin_addr, 0, flags, flowid);
sys/net/route/route_helpers.c
249
nh = fib6_lookup(fibnum, &a->sin6_addr, a->sin6_scope_id,
sys/net/route/route_helpers.c
256
return (nh);
sys/net/route/route_helpers.c
263
rc->rc_nh_new = wn_src->nh;
sys/net/route/route_helpers.c
268
FIB_NH_LOG(LOG_DEBUG2, wn_src->nh, "RTM_ADD for %s @ w=%u",
sys/net/route/route_helpers.c
269
nhop_print_buf(wn_src->nh, nhbuf, sizeof(nhbuf)),
sys/net/route/route_helpers.c
279
rc->rc_nh_old = wn_src->nh;
sys/net/route/route_helpers.c
284
FIB_NH_LOG(LOG_DEBUG2, wn_src->nh, "RTM_DEL for %s @ w=%u",
sys/net/route/route_helpers.c
285
nhop_print_buf(wn_src->nh, nhbuf, sizeof(nhbuf)),
sys/net/route/route_helpers.c
306
tmp.nh = rc->rc_nh_old;
sys/net/route/route_helpers.c
314
tmp.nh = rc->rc_nh_new;
sys/net/route/route_helpers.c
323
FIB_NH_LOG(LOG_DEBUG, wn_old[0].nh, "change %s -> %s", buf_old, buf_new);
sys/net/route/route_helpers.c
340
uint32_t nh_idx_old = wn_old[idx_old].nh->nh_priv->nh_idx;
sys/net/route/route_helpers.c
341
uint32_t nh_idx_new = wn_new[idx_new].nh->nh_priv->nh_idx;
sys/net/route/route_helpers.c
453
struct nhop_object *nh = nhop_alloc(fibnum, family);
sys/net/route/route_helpers.c
454
if (nh == NULL)
sys/net/route/route_helpers.c
457
nhop_set_gw(nh, gw, true);
sys/net/route/route_helpers.c
458
nhop_set_transmit_ifp(nh, ifp);
sys/net/route/route_helpers.c
459
nhop_set_src(nh, ifa);
sys/net/route/route_helpers.c
460
nhop_set_pxtype_flag(nh, NHF_DEFAULT);
sys/net/route/route_helpers.c
461
rnd.rnd_nhop = nhop_get_nhop(nh, &error);
sys/net/route/route_ifaddrs.c
195
match_kernel_route(const struct rtentry *rt, struct nhop_object *nh)
sys/net/route/route_ifaddrs.c
197
if (!NH_IS_NHGRP(nh) && (nhop_get_rtflags(nh) & RTF_PINNED) &&
sys/net/route/route_ifaddrs.c
198
nh->nh_aifp->if_fib == nhop_get_fibnum(nh))
sys/net/route/route_ifaddrs.c
206
struct nhop_object *nh = rt->rt_nhop;
sys/net/route/route_ifaddrs.c
209
if (match_kernel_route(rt, nh)) {
sys/net/route/route_ifaddrs.c
212
.rnd_nhop = nh,
sys/net/route/route_ifaddrs.c
74
struct nhop_object *nh;
sys/net/route/route_ifaddrs.c
80
nh = nhop_select(rc.rc_nh_new, 0);
sys/net/route/route_ifaddrs.c
82
nh = nhop_select(rc.rc_nh_old, 0);
sys/net/route/route_ifaddrs.c
83
rt_routemsg(cmd, rc.rc_rt, nh, fibnum);
sys/net/route/route_rtentry.c
108
struct nhop_object *nh = rt->rt_nhop;
sys/net/route/route_rtentry.c
116
if (NH_IS_NHGRP(nh)) {
sys/net/route/route_rtentry.c
117
wn = nhgrp_get_nhops((struct nhgrp_object *)nh, &num_nhops);
sys/net/route/route_rtentry.c
118
nh = wn[0].nh;
sys/net/route/route_rtentry.c
120
CURVNET_SET(nhop_get_vnet(nh));
sys/net/route/route_temporal.c
124
tmproutes_update(struct rib_head *rnh, struct rtentry *rt, struct nhop_object *nh)
sys/net/route/route_temporal.c
127
uint32_t nh_expire = nhop_get_expire(nh);
sys/net/route/route_temporal.c
53
expire_route(const struct rtentry *rt, const struct nhop_object *nh, void *arg)
sys/net/route/route_temporal.c
55
uint32_t nh_expire = nhop_get_expire(nh);
sys/net/route/route_var.h
207
void tmproutes_update(struct rib_head *rnh, struct rtentry *rt, struct nhop_object *nh);
sys/net/route/route_var.h
225
bool nhop_can_multipath(const struct nhop_object *nh);
sys/net/route/route_var.h
226
bool match_nhop_gw(const struct nhop_object *nh, const struct sockaddr *gw);
sys/net/route/route_var.h
228
const struct rtentry *rt, const struct nhop_object *nh);
sys/net/route/route_var.h
250
void nhop_ref_object(struct nhop_object *nh);
sys/net/route/route_var.h
251
int nhop_try_ref_object(struct nhop_object *nh);
sys/net/route/route_var.h
252
void nhop_ref_any(struct nhop_object *nh);
sys/net/route/route_var.h
253
void nhop_free_any(struct nhop_object *nh);
sys/net/route/route_var.h
255
struct nhop_object *nh, int *perror);
sys/net/route/route_var.h
278
nhop_select(struct nhop_object *nh, uint32_t flowid)
sys/net/route/route_var.h
282
if (NH_IS_NHGRP(nh)) {
sys/net/route/route_var.h
283
nhg = (struct nhgrp_object *)nh;
sys/net/route/route_var.h
284
nh = nhg->nhops[flowid % nhg->nhg_size];
sys/net/route/route_var.h
286
return (nh);
sys/net/route/route_var.h
318
int rtsock_routemsg(int cmd, struct rtentry *rt, struct nhop_object *nh,
sys/net/route/route_var.h
45
const struct sockaddr *mask, struct nhop_object *nh);
sys/net/route/route_var.h
47
typedef int rnh_augment_nh_f_t(u_int fibnum, struct nhop_object *nh);
sys/net/rtsock.c
1002
error = rtm_get_jailed(info, ifp, nh,
sys/net/rtsock.c
1008
nh->nh_ifa->ifa_dstaddr;
sys/net/rtsock.c
1021
rtm->rtm_flags = rc->rc_rt->rte_flags | nhop_get_rtflags(nh);
sys/net/rtsock.c
1025
rt_getmetrics(rc->rc_rt, nh, &rtm->rtm_rmx);
sys/net/rtsock.c
1077
struct nhop_object *nh;
sys/net/rtsock.c
1111
nh = NULL;
sys/net/rtsock.c
1180
nh = rc.rc_nh_new;
sys/net/rtsock.c
1181
if (nh != NULL) {
sys/net/rtsock.c
1182
rtm->rtm_index = nh->nh_ifp->if_index;
sys/net/rtsock.c
1183
rtm->rtm_flags = rc.rc_rt->rte_flags | nhop_get_rtflags(nh);
sys/net/rtsock.c
1199
nh = rc.rc_nh_old;
sys/net/rtsock.c
1207
nh = rc.rc_nh_new;
sys/net/rtsock.c
1217
if (error == 0 && nh != NULL) {
sys/net/rtsock.c
1218
error = update_rtm_from_rc(&info, &rtm, alloc_len, &rc, nh);
sys/net/rtsock.c
1324
rt_getmetrics(const struct rtentry *rt, const struct nhop_object *nh,
sys/net/rtsock.c
1329
out->rmx_mtu = nh->nh_mtu;
sys/net/rtsock.c
1331
out->rmx_nhidx = nhop_get_idx(nh);
sys/net/rtsock.c
1333
out->rmx_expire = nhop_get_expire(nh) ?
sys/net/rtsock.c
1334
nhop_get_expire(nh) - time_uptime + time_second : 0;
sys/net/rtsock.c
203
static int sysctl_dumpnhop(struct rtentry *rt, struct nhop_object *nh,
sys/net/rtsock.c
2045
rtsock_routemsg(int cmd, struct rtentry *rt, struct nhop_object *nh,
sys/net/rtsock.c
2061
info.rti_info[RTAX_GATEWAY] = &nh->gw_sa;
sys/net/rtsock.c
2062
info.rti_flags = rt->rte_flags | nhop_get_rtflags(nh);
sys/net/rtsock.c
2063
info.rti_ifp = nh->nh_ifp;
sys/net/rtsock.c
208
const struct nhop_object *nh, struct rt_metrics *out);
sys/net/rtsock.c
215
struct rib_cmd_info *rc, struct nhop_object *nh);
sys/net/rtsock.c
2248
struct nhop_object *nh;
sys/net/rtsock.c
2258
nh = rt_get_raw_nhop(rt);
sys/net/rtsock.c
2259
if (NH_IS_NHGRP(nh)) {
sys/net/rtsock.c
2260
wn = nhgrp_get_nhops((struct nhgrp_object *)nh, &num_nhops);
sys/net/rtsock.c
2262
error = sysctl_dumpnhop(rt, wn[i].nh, wn[i].weight, w);
sys/net/rtsock.c
2267
sysctl_dumpnhop(rt, nh, rt->rt_weight, w);
sys/net/rtsock.c
2274
sysctl_dumpnhop(struct rtentry *rt, struct nhop_object *nh, uint32_t weight,
sys/net/rtsock.c
2281
rtflags = nhop_get_rtflags(nh);
sys/net/rtsock.c
2288
info.rti_info[RTAX_GATEWAY] = &nh->gw_sa;
sys/net/rtsock.c
2291
if (nh->nh_ifp && !(nh->nh_ifp->if_flags & IFF_DYING)) {
sys/net/rtsock.c
2292
info.rti_info[RTAX_IFP] = nh->nh_ifp->if_addr->ifa_addr;
sys/net/rtsock.c
2293
info.rti_info[RTAX_IFA] = nh->nh_ifa->ifa_addr;
sys/net/rtsock.c
2294
if (nh->nh_ifp->if_flags & IFF_POINTOPOINT)
sys/net/rtsock.c
2295
info.rti_info[RTAX_BRD] = nh->nh_ifa->ifa_dstaddr;
sys/net/rtsock.c
2314
rt_getmetrics(rt, nh, &rtm->rtm_rmx);
sys/net/rtsock.c
2316
rtm->rtm_index = nh->nh_ifp->if_index;
sys/net/rtsock.c
280
struct nhop_object *nh;
sys/net/rtsock.c
282
nh = rc->rc_cmd == RTM_DELETE ? rc->rc_nh_old : rc->rc_nh_new;
sys/net/rtsock.c
283
rt_routemsg(rc->rc_cmd, rc->rc_rt, nh, fibnum);
sys/net/rtsock.c
519
struct nhop_object *nh, union sockaddr_union *saun, struct ucred *cred)
sys/net/rtsock.c
526
if (prison_if(cred, nh->nh_ifa->ifa_addr) == 0) {
sys/net/rtsock.c
527
info->rti_info[RTAX_IFA] = nh->nh_ifa->ifa_addr;
sys/net/rtsock.c
561
ia = ((struct sockaddr_in *)nh->nh_ifa->ifa_addr)->
sys/net/rtsock.c
604
ia6 = ((struct sockaddr_in6 *)nh->nh_ifa->ifa_addr)->
sys/net/rtsock.c
725
struct nhop_object *nh;
sys/net/rtsock.c
737
nh = rib_lookup(fibnum, info->rti_info[RTAX_GATEWAY], NHR_NONE, 0);
sys/net/rtsock.c
738
if (nh != NULL && nh->gw_sa.sa_family == AF_LINK &&
sys/net/rtsock.c
739
nh->nh_ifp->if_flags & IFF_LOOPBACK) {
sys/net/rtsock.c
749
select_nhop(struct nhop_object *nh, const struct sockaddr *gw)
sys/net/rtsock.c
754
if (!NH_IS_NHGRP(nh))
sys/net/rtsock.c
755
return (nh);
sys/net/rtsock.c
757
wn = nhgrp_get_nhops((struct nhgrp_object *)nh, &num_nhops);
sys/net/rtsock.c
759
return (wn[0].nh);
sys/net/rtsock.c
761
if (match_nhop_gw(wn[i].nh, gw))
sys/net/rtsock.c
762
return (wn[i].nh);
sys/net/rtsock.c
781
struct nhop_object *nh;
sys/net/rtsock.c
817
nh = select_nhop(rt_get_raw_nhop(rc->rc_rt), info->rti_info[RTAX_GATEWAY]);
sys/net/rtsock.c
818
if (nh == NULL) {
sys/net/rtsock.c
832
if (nh->nh_ifp != NULL &&
sys/net/rtsock.c
833
nh->nh_ifp->if_type == IFT_PROPVIRTUAL) {
sys/net/rtsock.c
843
rt_maskedcopy(nh->nh_ifa->ifa_addr,
sys/net/rtsock.c
845
nh->nh_ifa->ifa_netmask);
sys/net/rtsock.c
855
nh = select_nhop(rt_get_raw_nhop(rc->rc_rt), info->rti_info[RTAX_GATEWAY]);
sys/net/rtsock.c
856
if (nh == NULL) {
sys/net/rtsock.c
861
rc->rc_nh_new = nh;
sys/net/rtsock.c
980
int alloc_len, struct rib_cmd_info *rc, struct nhop_object *nh)
sys/net/rtsock.c
995
info->rti_info[RTAX_GATEWAY] = &nh->gw_sa;
sys/net/rtsock.c
997
ifp = nh->nh_ifp;
sys/netgraph/netflow/netflow.c
358
struct nhop_object *nh = nhop_select_func(rnd.rnd_nhop, 0);
sys/netgraph/netflow/netflow.c
362
fle->f.fle_o_ifx = nh->nh_ifp->if_index;
sys/netgraph/netflow/netflow.c
363
if (nh->gw_sa.sa_family == AF_INET)
sys/netgraph/netflow/netflow.c
364
fle->f.next_hop = nh->gw4_sa.sin_addr;
sys/netgraph/netflow/netflow.c
436
struct nhop_object *nh = nhop_select_func(rnd.rnd_nhop, 0);
sys/netgraph/netflow/netflow.c
440
fle6->f.fle_o_ifx = nh->nh_ifp->if_index;
sys/netgraph/netflow/netflow.c
441
if (nh->gw_sa.sa_family == AF_INET6)
sys/netgraph/netflow/netflow.c
442
fle6->f.n.next_hop6 = nh->gw6_sa.sin6_addr;
sys/netinet/if_ether.c
1032
nh = fib4_lookup(ifp->if_fib, itaddr, 0, 0, 0);
sys/netinet/if_ether.c
1033
if (nh == NULL)
sys/netinet/if_ether.c
1041
if (nh->nh_ifp == ifp)
sys/netinet/if_ether.c
1054
nh = fib4_lookup(ifp->if_fib, isaddr, 0, 0, 0);
sys/netinet/if_ether.c
1055
if (nh == NULL)
sys/netinet/if_ether.c
1057
if (nh->nh_ifp != ifp) {
sys/netinet/if_ether.c
781
struct nhop_object *nh;
sys/netinet/in.c
1597
struct nhop_object *nh;
sys/netinet/in.c
1605
nh = fib4_lookup(ifp->if_fib, addr, 0, NHR_NONE, 0);
sys/netinet/in.c
1606
if (nh == NULL)
sys/netinet/in.c
1615
if (nh->nh_flags & NHF_GATEWAY) {
sys/netinet/in.c
1616
if (!(nh->nh_flags & NHF_HOST) || nh->nh_ifp->if_type != IFT_ETHER ||
sys/netinet/in.c
1617
(nh->nh_ifp->if_flags & (IFF_NOARP | IFF_STATICARP)) != 0 ||
sys/netinet/in.c
1618
memcmp(nh->gw_sa.sa_data, l3addr->sa_data,
sys/netinet/in.c
1631
if ((nh->nh_ifp != ifp) && (nh->nh_flags & NHF_HOST) == 0) {
sys/netinet/in.c
867
in_match_ifaddr(const struct rtentry *rt, const struct nhop_object *nh, void *arg)
sys/netinet/in.c
870
if (nh->nh_ifa == (struct ifaddr *)arg)
sys/netinet/in_fib.c
112
struct nhop_object *nh;
sys/netinet/in_fib.c
116
nh = dp->f(dp->arg, key, scopeid);
sys/netinet/in_fib.c
117
if (nh != NULL) {
sys/netinet/in_fib.c
118
nh = nhop_select(nh, flowid);
sys/netinet/in_fib.c
120
if (RT_LINK_IS_UP(nh->nh_ifp)) {
sys/netinet/in_fib.c
122
nhop_ref_object(nh);
sys/netinet/in_fib.c
123
return (nh);
sys/netinet/in_fib.c
137
struct nhop_object *nh;
sys/netinet/in_fib.c
151
nh = NULL;
sys/netinet/in_fib.c
155
nh = nhop_select((RNTORT(rn))->rt_nhop, flowid);
sys/netinet/in_fib.c
157
if (RT_LINK_IS_UP(nh->nh_ifp)) {
sys/netinet/in_fib.c
159
nhop_ref_object(nh);
sys/netinet/in_fib.c
161
return (nh);
sys/netinet/in_fib.c
172
check_urpf_nhop(const struct nhop_object *nh, uint32_t flags,
sys/netinet/in_fib.c
176
if (src_if != NULL && nh->nh_aifp == src_if) {
sys/netinet/in_fib.c
182
else if ((nh->nh_flags & NHF_DEFAULT) == 0)
sys/netinet/in_fib.c
190
check_urpf(struct nhop_object *nh, uint32_t flags,
sys/netinet/in_fib.c
196
if (NH_IS_NHGRP(nh)) {
sys/netinet/in_fib.c
197
wn = nhgrp_get_nhops((struct nhgrp_object *)nh, &num_nhops);
sys/netinet/in_fib.c
199
if (check_urpf_nhop(wn[i].nh, flags, src_if) != 0)
sys/netinet/in_fib.c
205
return (check_urpf_nhop(nh, flags, src_if));
sys/netinet/in_fib.c
215
struct nhop_object *nh;
sys/netinet/in_fib.c
228
nh = NULL;
sys/netinet/in_fib.c
232
nh = RNTORT(rn)->rt_nhop;
sys/netinet/in_fib.c
235
return (nh);
sys/netinet/in_fib.c
252
struct nhop_object *nh;
sys/netinet/in_fib.c
257
nh = dp->f(dp->arg, key, scopeid);
sys/netinet/in_fib.c
259
nh = lookup_nhop(fibnum, dst, scopeid);
sys/netinet/in_fib.c
261
if (nh != NULL)
sys/netinet/in_fib.c
262
return (check_urpf(nh, flags, src_if));
sys/netinet/in_fib.c
321
struct nhop_object *nh = nhop_select(rnd.rnd_nhop, 0);
sys/netinet/in_fib.c
323
if (RT_LINK_IS_UP(nh->nh_ifp))
sys/netinet/in_fib.c
324
return (nh);
sys/netinet/in_fib_algo.c
118
return (br->nh);
sys/netinet/in_fib_algo.c
122
return (bd->br[start].nh);
sys/netinet/in_fib_algo.c
210
rr->nh = rt_get_raw_nhop(rt);
sys/netinet/in_fib_algo.c
300
.nh = pstack->nh,
sys/netinet/in_fib_algo.c
356
.nh = pst->nh,
sys/netinet/in_fib_algo.c
682
struct nhop_object *nh;
sys/netinet/in_fib_algo.c
691
nh = NULL;
sys/netinet/in_fib_algo.c
695
nh = (RNTORT(rn))->rt_nhop;
sys/netinet/in_fib_algo.c
698
return (nh);
sys/netinet/in_fib_algo.c
76
struct nhop_object *nh;
sys/netinet/in_fib_dxr.c
663
uint32_t nh)
sys/netinet/in_fib_dxr.c
681
fhp->nexthop = nh;
sys/netinet/in_fib_dxr.c
695
uint32_t preflen, nh, start, end, scopeid;
sys/netinet/in_fib_dxr.c
708
nh = fib_get_nhop_idx(da->fd, rt_get_raw_nhop(rt));
sys/netinet/in_fib_dxr.c
711
heap_inject(da, start, end, preflen, nh);
sys/netinet/in_fib_dxr.c
730
nh != fp->nexthop) {
sys/netinet/in_fib_dxr.c
735
if ((--fp)->nexthop == nh)
sys/netinet/in_fib_dxr.c
740
fp->nexthop = nh;
sys/netinet/in_fib_dxr.c
741
heap_inject(da, start, end, preflen, nh);
sys/netinet/in_fib_dxr.c
753
uint32_t start, nh, i;
sys/netinet/in_fib_dxr.c
820
nh = fp->nexthop;
sys/netinet/in_fib_dxr.c
822
fps->nexthop = nh;
sys/netinet/in_fib_dxr.c
825
fps->nexthop = nh;
sys/netinet/in_mcast.c
1847
struct nhop_object *nh;
sys/netinet/in_mcast.c
1861
nh = fib4_lookup(inp->inp_inc.inc_fibnum, maddr, 0, NHR_NONE, 0);
sys/netinet/in_mcast.c
1862
if (nh != NULL) {
sys/netinet/in_mcast.c
1863
ifp = nh->nh_ifp;
sys/netinet/in_pcb.c
1196
struct nhop_object *nh;
sys/netinet/in_pcb.c
1232
nh = NULL;
sys/netinet/in_pcb.c
1246
nh = fib4_lookup(inp->inp_inc.inc_fibnum, *faddr,
sys/netinet/in_pcb.c
1257
if (nh == NULL || nh->nh_ifp == NULL) {
sys/netinet/in_pcb.c
1308
if ((nh->nh_ifp->if_flags & IFF_LOOPBACK) == 0) {
sys/netinet/in_pcb.c
1314
ia = (struct in_ifaddr *)nh->nh_ifa;
sys/netinet/in_pcb.c
1321
sin = (struct sockaddr_in *)nh->nh_ifa->ifa_addr;
sys/netinet/in_pcb.c
1323
ia = (struct in_ifaddr *)nh->nh_ifa;
sys/netinet/in_pcb.c
1333
ifp = nh->nh_ifp;
sys/netinet/in_pcb.c
1363
if ((nh->nh_ifp->if_flags & IFF_LOOPBACK) != 0) {
sys/netinet/in_rmx.c
100
if (nhop_get_type(nh) == 0) {
sys/netinet/in_rmx.c
102
if (nh->nh_flags & NHF_GATEWAY)
sys/netinet/in_rmx.c
107
nhop_set_type(nh, nh_type);
sys/netinet/in_rmx.c
152
in_ifadownkill(const struct rtentry *rt, const struct nhop_object *nh,
sys/netinet/in_rmx.c
157
if (nh->nh_ifa != ap->ifa)
sys/netinet/in_rmx.c
160
if ((nhop_get_rtflags(nh) & RTF_STATIC) != 0 && ap->del == 0)
sys/netinet/in_rmx.c
54
struct nhop_object *nh)
sys/netinet/in_rmx.c
61
nhop_set_pxtype_flag(nh, NHF_HOST);
sys/netinet/in_rmx.c
74
if (in_ifnet_broadcast(addr4->sin_addr, nh->nh_ifp))
sys/netinet/in_rmx.c
77
nhop_set_pxtype_flag(nh, NHF_DEFAULT);
sys/netinet/in_rmx.c
79
nhop_set_pxtype_flag(nh, 0);
sys/netinet/in_rmx.c
81
nhop_set_broadcast(nh, is_broadcast);
sys/netinet/in_rmx.c
87
rib4_augment_nh(u_int fibnum, struct nhop_object *nh)
sys/netinet/in_rmx.c
94
if (nh->nh_mtu == 0) {
sys/netinet/in_rmx.c
95
nh->nh_mtu = nh->nh_ifp->if_mtu;
sys/netinet/in_rmx.c
96
} else if (nh->nh_mtu > nh->nh_ifp->if_mtu)
sys/netinet/in_rmx.c
97
nh->nh_mtu = nh->nh_ifp->if_mtu;
sys/netinet/ip_fastfwd.c
112
ip_redir_alloc(struct mbuf *m, struct nhop_object *nh, u_short ip_len,
sys/netinet/ip_fastfwd.c
118
KASSERT(nh != NULL, ("%s: m %p nh is NULL\n", __func__, m));
sys/netinet/ip_fastfwd.c
139
if ((nh->nh_flags & (NHF_DEFAULT | NHF_REDIRECT |
sys/netinet/ip_fastfwd.c
144
if ((nh->nh_flags & NHF_GATEWAY) == 0 || nh->gw_sa.sa_family != AF_INET)
sys/netinet/ip_fastfwd.c
146
newgw->s_addr = nh->gw4_sa.sin_addr.s_addr;
sys/netinet/ip_fastfwd.c
163
nh_ia = (struct in_ifaddr *)nh->nh_ifa;
sys/netinet/ip_fastfwd.c
198
struct nhop_object *nh;
sys/netinet/ip_fastfwd.c
200
nh = fib4_lookup(M_GETFIB(m), dest, 0, NHR_NONE,
sys/netinet/ip_fastfwd.c
202
if (nh == NULL) {
sys/netinet/ip_fastfwd.c
211
if ((nh->nh_flags & (NHF_BLACKHOLE | NHF_BROADCAST)) != 0) {
sys/netinet/ip_fastfwd.c
217
if (nh->nh_flags & NHF_REJECT) {
sys/netinet/ip_fastfwd.c
223
*pnh = nh;
sys/netinet/ip_fastfwd.c
240
struct nhop_object *nh = NULL;
sys/netinet/ip_fastfwd.c
397
if (ip_findroute(&nh, dest, m) != 0)
sys/netinet/ip_fastfwd.c
411
if (pfil_mbuf_fwd(V_inet_pfil_head, &m, nh->nh_ifp,
sys/netinet/ip_fastfwd.c
450
ip_findroute(&nh, dest, m) != 0)
sys/netinet/ip_fastfwd.c
466
if (nh->nh_flags & NHF_GATEWAY) {
sys/netinet/ip_fastfwd.c
467
gw = &nh->gw_sa;
sys/netinet/ip_fastfwd.c
480
~nh->nh_ifp->if_hwassist)) {
sys/netinet/ip_fastfwd.c
486
~nh->nh_ifp->if_hwassist)) {
sys/netinet/ip_fastfwd.c
492
~nh->nh_ifp->if_hwassist)) {
sys/netinet/ip_fastfwd.c
501
nh->nh_ifp == m->m_pkthdr.rcvif)
sys/netinet/ip_fastfwd.c
502
mcopy = ip_redir_alloc(m, nh, ip_len, &osrc, &redest);
sys/netinet/ip_fastfwd.c
507
if (ip_len <= nh->nh_mtu) {
sys/netinet/ip_fastfwd.c
515
IP_PROBE(send, NULL, NULL, ip, nh->nh_ifp, ip, NULL);
sys/netinet/ip_fastfwd.c
516
error = (*nh->nh_ifp->if_output)(nh->nh_ifp, m, gw, &ro);
sys/netinet/ip_fastfwd.c
524
0, nh->nh_mtu);
sys/netinet/ip_fastfwd.c
531
if (ip_fragment(ip, &m, nh->nh_mtu,
sys/netinet/ip_fastfwd.c
532
nh->nh_ifp->if_hwassist) != 0)
sys/netinet/ip_fastfwd.c
548
mtod(m, struct ip *), nh->nh_ifp,
sys/netinet/ip_fastfwd.c
550
error = (*nh->nh_ifp->if_output)(nh->nh_ifp, m,
sys/netinet/ip_icmp.c
776
struct nhop_object *nh;
sys/netinet/ip_icmp.c
861
nh = fib4_lookup(M_GETFIB(m), ip->ip_dst, 0, NHR_NONE, 0);
sys/netinet/ip_icmp.c
862
if (nh == NULL) {
sys/netinet/ip_icmp.c
867
t = IA_SIN(ifatoia(nh->nh_ifa))->sin_addr;
sys/netinet/ip_icmp.c
959
struct nhop_object *nh;
sys/netinet/ip_icmp.c
972
nh = fib4_lookup(fibnum, dst->sin_addr, 0, NHR_NONE, 0);
sys/netinet/ip_icmp.c
973
if (nh == NULL)
sys/netinet/ip_icmp.c
982
if (!sa_equal((struct sockaddr *)src, &nh->gw_sa))
sys/netinet/ip_icmp.c
984
if (nh->nh_ifa != ifa && ifa->ifa_addr->sa_family != AF_LINK)
sys/netinet/ip_icmp.c
988
if (nh->nh_flags & NHF_HOST)
sys/netinet/ip_icmp.c
992
if (!(nh->nh_flags & NHF_GATEWAY))
sys/netinet/ip_input.c
1039
struct nhop_object *nh;
sys/netinet/ip_input.c
1041
nh = ro.ro_nh;
sys/netinet/ip_input.c
1043
if (nh != NULL && ((nh->nh_flags & (NHF_REDIRECT|NHF_DEFAULT)) == 0)) {
sys/netinet/ip_input.c
1044
struct in_ifaddr *nh_ia = (struct in_ifaddr *)(nh->nh_ifa);
sys/netinet/ip_input.c
1052
if (nh->nh_flags & NHF_GATEWAY) {
sys/netinet/ip_input.c
1053
if (nh->gw_sa.sa_family == AF_INET)
sys/netinet/ip_input.c
1054
dest.s_addr = nh->gw4_sa.sin_addr.s_addr;
sys/netinet/ip_options.c
108
struct nhop_object *nh;
sys/netinet/ip_options.c
254
nh = fib4_lookup(M_GETFIB(m), ipaddr.sin_addr,
sys/netinet/ip_options.c
256
if (nh == NULL)
sys/netinet/ip_options.c
259
memcpy(cp + off, &(IA_SIN(nh->nh_ifa)->sin_addr),
sys/netinet/ip_options.c
300
} else if ((nh = fib4_lookup(M_GETFIB(m),
sys/netinet/ip_options.c
302
memcpy(cp + off, &(IA_SIN(nh->nh_ifa)->sin_addr),
sys/netinet/ip_output.c
293
rt_update_ro_flags(struct route *ro, const struct nhop_object *nh)
sys/netinet/ip_output.c
295
int nh_flags = nh->nh_flags;
sys/netinet/ip_output.c
495
struct nhop_object *nh = ro->ro_nh;
sys/netinet/ip_output.c
497
ia = ifatoia(nh->nh_ifa);
sys/netinet/ip_output.c
498
ifp = nh->nh_ifp;
sys/netinet/ip_output.c
499
counter_u64_add(nh->nh_pksent, 1);
sys/netinet/ip_output.c
500
rt_update_ro_flags(ro, nh);
sys/netinet/ip_output.c
501
if (nh->nh_flags & NHF_GATEWAY)
sys/netinet/ip_output.c
502
gw = &nh->gw_sa;
sys/netinet/ip_output.c
503
if (nh->nh_flags & NHF_HOST)
sys/netinet/ip_output.c
504
isbroadcast = (nh->nh_flags & NHF_BROADCAST);
sys/netinet/ip_output.c
512
mtu = nh->nh_mtu;
sys/netinet/ip_output.c
515
struct nhop_object *nh;
sys/netinet/ip_output.c
517
nh = fib4_lookup(M_GETFIB(m), dst->sin_addr, 0, NHR_NONE,
sys/netinet/ip_output.c
519
if (nh == NULL) {
sys/netinet/ip_output.c
532
ifp = nh->nh_ifp;
sys/netinet/ip_output.c
533
mtu = nh->nh_mtu;
sys/netinet/ip_output.c
534
rt_update_ro_flags(ro, nh);
sys/netinet/ip_output.c
535
if (nh->nh_flags & NHF_GATEWAY)
sys/netinet/ip_output.c
536
gw = &nh->gw_sa;
sys/netinet/ip_output.c
537
ia = ifatoia(nh->nh_ifa);
sys/netinet/ip_output.c
539
isbroadcast = ((nh->nh_flags & (NHF_HOST | NHF_BROADCAST)) ==
sys/netinet/sctp_os_bsd.h
306
#define SCTP_GATHER_MTU_FROM_ROUTE(sctp_ifa, sa, nh) ((uint32_t)((nh != NULL) ? nh->nh_mtu : 0))
sys/netinet/tcp_offload.c
105
error = tod->tod_connect(tod, so, nh, nam);
sys/netinet/tcp_offload.c
65
struct nhop_object *nh;
sys/netinet/tcp_offload.c
77
nh = NULL;
sys/netinet/tcp_offload.c
80
nh = fib4_lookup(0, ((struct sockaddr_in *)nam)->sin_addr,
sys/netinet/tcp_offload.c
88
nh = fib6_lookup(0, &((struct sockaddr_in6 *)nam)->sin6_addr,
sys/netinet/tcp_offload.c
91
if (nh == NULL) {
sys/netinet/tcp_offload.c
96
ifp = nh->nh_ifp;
sys/netinet/tcp_subr.c
3655
struct nhop_object *nh;
sys/netinet/tcp_subr.c
3662
nh = fib4_lookup(inc->inc_fibnum, inc->inc_faddr, 0, NHR_NONE, 0);
sys/netinet/tcp_subr.c
3663
if (nh == NULL)
sys/netinet/tcp_subr.c
3666
ifp = nh->nh_ifp;
sys/netinet/tcp_subr.c
3667
maxmtu = nh->nh_mtu;
sys/netinet/tcp_subr.c
3691
struct nhop_object *nh;
sys/netinet/tcp_subr.c
3704
nh = fib6_lookup(inc->inc_fibnum, &dst6, scopeid, NHR_NONE, 0);
sys/netinet/tcp_subr.c
3705
if (nh == NULL)
sys/netinet/tcp_subr.c
3708
ifp = nh->nh_ifp;
sys/netinet/tcp_subr.c
3709
maxmtu = nh->nh_mtu;
sys/netinet/toecore.c
78
struct nhop_object *nh __unused, struct sockaddr *nam __unused)
sys/netinet6/icmp6.c
2227
struct nhop_object *nh;
sys/netinet6/icmp6.c
2233
nh = fib6_lookup(ifp->if_fib, &kdst, scopeid, 0, 0);
sys/netinet6/icmp6.c
2234
if (nh != NULL) {
sys/netinet6/icmp6.c
2236
nh_addr = ifatoia6(nh->nh_ifa)->ia_addr.sin6_addr;
sys/netinet6/icmp6.c
2237
if ((nh->nh_flags & NHF_GATEWAY) == 0) {
sys/netinet6/icmp6.c
2248
nh_addr = nh->gw6_sa.sin6_addr;
sys/netinet6/icmp6.c
2364
icmp6_redirect_output(struct mbuf *m0, struct nhop_object *nh)
sys/netinet6/icmp6.c
2387
if (!m0 || !nh || !(NH_IS_VALID(nh)) || !(ifp = nh->nh_ifp))
sys/netinet6/icmp6.c
2442
if (nh->nh_flags & NHF_GATEWAY) {
sys/netinet6/icmp6.c
2444
sin6 = &nh->gw6_sa;
sys/netinet6/icmp6.c
2468
if (nh->nh_flags & NHF_GATEWAY) {
sys/netinet6/in6.c
2295
struct nhop_object *nh;
sys/netinet6/in6.c
2308
nh = fib6_lookup(fibnum, &dst, scopeid, NHR_NONE, 0);
sys/netinet6/in6.c
2309
if (nh && ((nh->nh_flags & NHF_GATEWAY) || nh->nh_ifp != ifp)) {
sys/netinet6/in6_fib.c
120
struct nhop_object *nh;
sys/netinet6/in6_fib.c
124
nh = dp->f(dp->arg, key, scopeid);
sys/netinet6/in6_fib.c
125
if (nh != NULL) {
sys/netinet6/in6_fib.c
126
nh = nhop_select(nh, flowid);
sys/netinet6/in6_fib.c
128
if (RT_LINK_IS_UP(nh->nh_ifp)) {
sys/netinet6/in6_fib.c
130
nhop_ref_object(nh);
sys/netinet6/in6_fib.c
131
return (nh);
sys/netinet6/in6_fib.c
145
struct nhop_object *nh;
sys/netinet6/in6_fib.c
164
nh = nhop_select((RNTORT(rn))->rt_nhop, flowid);
sys/netinet6/in6_fib.c
166
if (RT_LINK_IS_UP(nh->nh_ifp)) {
sys/netinet6/in6_fib.c
168
nhop_ref_object(nh);
sys/netinet6/in6_fib.c
170
return (nh);
sys/netinet6/in6_fib.c
181
check_urpf_nhop(const struct nhop_object *nh, uint32_t flags,
sys/netinet6/in6_fib.c
185
if (src_if != NULL && nh->nh_aifp == src_if) {
sys/netinet6/in6_fib.c
191
else if ((nh->nh_flags & NHF_DEFAULT) == 0)
sys/netinet6/in6_fib.c
199
check_urpf(struct nhop_object *nh, uint32_t flags,
sys/netinet6/in6_fib.c
205
if (NH_IS_NHGRP(nh)) {
sys/netinet6/in6_fib.c
206
wn = nhgrp_get_nhops((struct nhgrp_object *)nh, &num_nhops);
sys/netinet6/in6_fib.c
208
if (check_urpf_nhop(wn[i].nh, flags, src_if) != 0)
sys/netinet6/in6_fib.c
214
return (check_urpf_nhop(nh, flags, src_if));
sys/netinet6/in6_fib.c
225
struct nhop_object *nh;
sys/netinet6/in6_fib.c
242
nh = NULL;
sys/netinet6/in6_fib.c
246
nh = RNTORT(rn)->rt_nhop;
sys/netinet6/in6_fib.c
249
return (nh);
sys/netinet6/in6_fib.c
266
struct nhop_object *nh;
sys/netinet6/in6_fib.c
271
nh = dp->f(dp->arg, key, scopeid);
sys/netinet6/in6_fib.c
273
nh = lookup_nhop(fibnum, dst6, scopeid);
sys/netinet6/in6_fib.c
275
if (nh != NULL)
sys/netinet6/in6_fib.c
276
return (check_urpf(nh, flags, src_if));
sys/netinet6/in6_fib.c
336
struct nhop_object *nh = nhop_select(rnd.rnd_nhop, 0);
sys/netinet6/in6_fib.c
338
if (RT_LINK_IS_UP(nh->nh_ifp))
sys/netinet6/in6_fib.c
339
return (nh);
sys/netinet6/in6_fib_algo.c
173
struct nhop_object *nh;
sys/netinet6/in6_fib_algo.c
175
nh = rt_get_raw_nhop(rt);
sys/netinet6/in6_fib_algo.c
183
ae->nhop = nh;
sys/netinet6/in6_fib_algo.c
252
struct nhop_object *nh;
sys/netinet6/in6_fib_algo.c
263
nh = NULL;
sys/netinet6/in6_fib_algo.c
267
nh = (RNTORT(rn))->rt_nhop;
sys/netinet6/in6_fib_algo.c
270
return (nh);
sys/netinet6/in6_mcast.c
1869
struct nhop_object *nh;
sys/netinet6/in6_mcast.c
1879
nh = fib6_lookup(fibnum, &dst, scopeid, 0, 0);
sys/netinet6/in6_mcast.c
1881
return (nh ? nh->nh_ifp : NULL);
sys/netinet6/in6_rmx.c
100
nhop_set_pxtype_flag(nh, NHF_HOST);
sys/netinet6/in6_rmx.c
102
nhop_set_pxtype_flag(nh, NHF_DEFAULT);
sys/netinet6/in6_rmx.c
104
nhop_set_pxtype_flag(nh, 0);
sys/netinet6/in6_rmx.c
110
rib6_augment_nh(u_int fibnum, struct nhop_object *nh)
sys/netinet6/in6_rmx.c
117
if (nh->nh_mtu == 0 || nh->nh_mtu > in6_ifmtu(nh->nh_ifp))
sys/netinet6/in6_rmx.c
118
nh->nh_mtu = in6_ifmtu(nh->nh_ifp);
sys/netinet6/in6_rmx.c
121
if (nhop_get_type(nh) == 0) {
sys/netinet6/in6_rmx.c
123
if (nh->nh_flags & NHF_GATEWAY)
sys/netinet6/in6_rmx.c
128
nhop_set_type(nh, nh_type);
sys/netinet6/in6_rmx.c
95
struct nhop_object *nh)
sys/netinet6/in6_src.c
670
struct nhop_object *nh = NULL;
sys/netinet6/in6_src.c
680
nh = cache_route(fibnum, sin6_next, ron, flowid);
sys/netinet6/in6_src.c
686
if (nh != NULL && (nh->nh_flags & NHF_GATEWAY) != 0)
sys/netinet6/in6_src.c
687
nh = NULL;
sys/netinet6/in6_src.c
689
nh = cache_route(fibnum, dst, ro, flowid);
sys/netinet6/in6_src.c
690
if (nh == NULL)
sys/netinet6/in6_src.c
699
if (nh->nh_aifp->if_index != pi->ipi6_ifindex)
sys/netinet6/in6_src.c
700
nh = NULL;
sys/netinet6/in6_src.c
704
return (nh);
sys/netinet6/in6_src.c
758
struct nhop_object *nh = lookup_route(fibnum, dstsock, ro, opts, flowid);
sys/netinet6/in6_src.c
759
if (nh != NULL) {
sys/netinet6/in6_src.c
760
*retifp = nh->nh_aifp;
sys/netinet6/in6_src.c
767
*retnh = nh;
sys/netinet6/in6_src.c
794
struct nhop_object *nh = NULL;
sys/netinet6/in6_src.c
802
error = selectroute(dstsock, opts, mopts, &sro, retifp, &nh, 1, fibnum, 0);
sys/netinet6/in6_src.c
804
if (nh != NULL)
sys/netinet6/in6_src.c
805
nh_flags = nh->nh_flags;
sys/netinet6/in6_src.c
806
if (nh != NULL && nh == sro.ro_nh)
sys/netinet6/in6_src.c
807
NH_FREE(nh);
sys/netinet6/in6_src.c
873
struct nhop_object *nh;
sys/netinet6/in6_src.c
880
nh = fib6_lookup(fibnum, &dst, scopeid, 0, 0);
sys/netinet6/in6_src.c
881
if (nh != NULL) {
sys/netinet6/in6_src.c
882
hlim = nh->nh_ifp->if_inet6->nd_curhoplimit;
sys/netinet6/ip6_fastfwd.c
203
if (ip6_findroute(&nh, &dst, m) != 0) {
sys/netinet6/ip6_fastfwd.c
209
if (m->m_pkthdr.len > nh->nh_mtu) {
sys/netinet6/ip6_fastfwd.c
210
in6_ifstat_inc(nh->nh_ifp, ifs6_in_toobig);
sys/netinet6/ip6_fastfwd.c
211
icmp6_error(m, ICMP6_PACKET_TOO_BIG, 0, nh->nh_mtu);
sys/netinet6/ip6_fastfwd.c
221
if (pfil_mbuf_out(V_inet6_pfil_head, &m, nh->nh_ifp,
sys/netinet6/ip6_fastfwd.c
229
if (m->m_pkthdr.len > nh->nh_mtu) {
sys/netinet6/ip6_fastfwd.c
230
in6_ifstat_inc(nh->nh_ifp, ifs6_in_toobig);
sys/netinet6/ip6_fastfwd.c
231
icmp6_error(m, ICMP6_PACKET_TOO_BIG, 0, nh->nh_mtu);
sys/netinet6/ip6_fastfwd.c
271
if (ip6_findroute(&nh, &dst, m) != 0) {
sys/netinet6/ip6_fastfwd.c
289
~nh->nh_ifp->if_hwassist)) {
sys/netinet6/ip6_fastfwd.c
299
~nh->nh_ifp->if_hwassist)) {
sys/netinet6/ip6_fastfwd.c
308
IP_PROBE(send, NULL, NULL, ip6, nh->nh_ifp, NULL, ip6);
sys/netinet6/ip6_fastfwd.c
310
if (nh->nh_flags & NHF_GATEWAY)
sys/netinet6/ip6_fastfwd.c
311
dst.sin6_addr = nh->gw6_sa.sin6_addr;
sys/netinet6/ip6_fastfwd.c
312
error = (*nh->nh_ifp->if_output)(nh->nh_ifp, m,
sys/netinet6/ip6_fastfwd.c
315
in6_ifstat_inc(nh->nh_ifp, ifs6_out_discard);
sys/netinet6/ip6_fastfwd.c
318
in6_ifstat_inc(nh->nh_ifp, ifs6_out_forward);
sys/netinet6/ip6_fastfwd.c
326
in6_ifstat_inc(nh->nh_ifp, ifs6_out_discard);
sys/netinet6/ip6_fastfwd.c
65
struct nhop_object *nh;
sys/netinet6/ip6_fastfwd.c
67
nh = fib6_lookup(M_GETFIB(m), &dst->sin6_addr,
sys/netinet6/ip6_fastfwd.c
69
if (nh == NULL) {
sys/netinet6/ip6_fastfwd.c
76
if (nh->nh_flags & NHF_BLACKHOLE) {
sys/netinet6/ip6_fastfwd.c
82
if (nh->nh_flags & NHF_REJECT) {
sys/netinet6/ip6_fastfwd.c
89
*pnh = nh;
sys/netinet6/ip6_fastfwd.c
98
struct nhop_object *nh;
sys/netinet6/ip6_forward.c
189
nh = fib6_lookup(M_GETFIB(m), &dst.sin6_addr, dst.sin6_scope_id,
sys/netinet6/ip6_forward.c
191
if (nh == NULL) {
sys/netinet6/ip6_forward.c
201
if (nh->nh_flags & (NHF_BLACKHOLE | NHF_REJECT)) {
sys/netinet6/ip6_forward.c
204
if (nh->nh_flags & NHF_REJECT) {
sys/netinet6/ip6_forward.c
221
outzone = in6_get_unicast_scopeid(&ip6->ip6_src, nh->nh_ifp);
sys/netinet6/ip6_forward.c
226
in6_ifstat_inc(nh->nh_ifp, ifs6_in_discard);
sys/netinet6/ip6_forward.c
235
if_name(m->m_pkthdr.rcvif), if_name(nh->nh_ifp));
sys/netinet6/ip6_forward.c
251
outzone = in6_get_unicast_scopeid(&ip6->ip6_dst, nh->nh_ifp);
sys/netinet6/ip6_forward.c
259
if (nh->nh_flags & NHF_GATEWAY) {
sys/netinet6/ip6_forward.c
261
dst.sin6_addr = nh->gw6_sa.sin6_addr;
sys/netinet6/ip6_forward.c
275
if (V_ip6_sendredirects && nh->nh_ifp == m->m_pkthdr.rcvif && !srcrt &&
sys/netinet6/ip6_forward.c
276
(nh->nh_flags & NHF_REDIRECT) == 0)
sys/netinet6/ip6_forward.c
287
if ((nh->nh_ifp->if_flags & IFF_LOOPBACK) != 0) {
sys/netinet6/ip6_forward.c
308
if_name(nh->nh_ifp));
sys/netinet6/ip6_forward.c
315
origifp = nh->nh_ifp;
sys/netinet6/ip6_forward.c
329
if (pfil_mbuf_fwd(V_inet6_pfil_head, &m, nh->nh_ifp,
sys/netinet6/ip6_forward.c
341
NH_FREE(nh);
sys/netinet6/ip6_forward.c
380
NH_FREE(nh);
sys/netinet6/ip6_forward.c
387
if (m->m_pkthdr.len > in6_ifmtu(nh->nh_ifp)) {
sys/netinet6/ip6_forward.c
388
in6_ifstat_inc(nh->nh_ifp, ifs6_in_toobig);
sys/netinet6/ip6_forward.c
391
in6_ifmtu(nh->nh_ifp));
sys/netinet6/ip6_forward.c
400
~nh->nh_ifp->if_hwassist)) {
sys/netinet6/ip6_forward.c
410
~nh->nh_ifp->if_hwassist)) {
sys/netinet6/ip6_forward.c
423
error = nd6_output_ifp(nh->nh_ifp, origifp, m, &dst, NULL);
sys/netinet6/ip6_forward.c
425
in6_ifstat_inc(nh->nh_ifp, ifs6_out_discard);
sys/netinet6/ip6_forward.c
429
in6_ifstat_inc(nh->nh_ifp, ifs6_out_forward);
sys/netinet6/ip6_forward.c
443
icmp6_redirect_output(mcopy, nh);
sys/netinet6/ip6_forward.c
474
if (nh != NULL)
sys/netinet6/ip6_forward.c
475
NH_FREE(nh);
sys/netinet6/ip6_forward.c
98
struct nhop_object *nh = NULL;
sys/netinet6/ip6_output.c
1356
struct nhop_object *nh;
sys/netinet6/ip6_output.c
1364
nh = fib6_lookup(fibnum, &kdst, scopeid, NHR_NONE, 0);
sys/netinet6/ip6_output.c
1365
if (nh != NULL) {
sys/netinet6/ip6_output.c
1366
ip6_calcmtu(nh->nh_ifp, dst, nh->nh_mtu, mtup, 0);
sys/netinet6/ip6_output.c
1389
struct nhop_object *nh;
sys/netinet6/ip6_output.c
1418
nh = fib6_lookup(fibnum, &kdst, scopeid, NHR_NONE, 0);
sys/netinet6/ip6_output.c
1419
if (nh != NULL) {
sys/netinet6/ip6_output.c
1420
mtu = nh->nh_mtu;
sys/netinet6/ip6_output.c
409
struct nhop_object *nh;
sys/netinet6/ip6_output.c
645
nh = NULL;
sys/netinet6/ip6_output.c
664
nh = ro->ro_nh;
sys/netinet6/ip6_output.c
676
&nh, fibnum, m->m_pkthdr.flowid);
sys/netinet6/ip6_output.c
689
if (nh == NULL) {
sys/netinet6/ip6_output.c
698
ifp = nh->nh_ifp;
sys/netinet6/ip6_output.c
699
origifp = nh->nh_aifp;
sys/netinet6/ip6_output.c
700
ia = (struct in6_ifaddr *)(nh->nh_ifa);
sys/netinet6/ip6_output.c
701
counter_u64_add(nh->nh_pksent, 1);
sys/netinet6/ip6_output.c
704
struct nhop_object *nh;
sys/netinet6/ip6_output.c
740
nh = fib6_lookup(fibnum, &kdst, scopeid, NHR_NONE,
sys/netinet6/ip6_output.c
742
if (nh == NULL) {
sys/netinet6/ip6_output.c
749
ifp = nh->nh_ifp;
sys/netinet6/ip6_output.c
750
origifp = nh->nh_aifp;
sys/netinet6/ip6_output.c
751
ia = ifatoia6(nh->nh_ifa);
sys/netinet6/ip6_output.c
752
if (nh->nh_flags & NHF_GATEWAY)
sys/netinet6/ip6_output.c
753
dst->sin6_addr = nh->gw6_sa.sin6_addr;
sys/netinet6/ip6_output.c
843
if (nh && !IN6_IS_ADDR_MULTICAST(&ip6->ip6_dst)) {
sys/netinet6/ip6_output.c
852
else if ((nh->nh_flags & NHF_GATEWAY))
sys/netinet6/ip6_output.c
853
dst = &nh->gw6_sa;
sys/netinet6/nd6.c
1287
struct nhop_object *nh;
sys/netinet6/nd6.c
1288
nh = fib6_lookup(ifp->if_fib, &addr->sin6_addr, 0, NHR_NONE, 0);
sys/netinet6/nd6.c
1289
if (nh != NULL && nh->nh_aifp == ifp && (nh->nh_flags & NHF_GATEWAY) == 0)
sys/netinet6/nd6.c
1587
nd6_isdynrte(const struct rtentry *rt, const struct nhop_object *nh, void *xap)
sys/netinet6/nd6.c
1590
if (nh->nh_flags & NHF_REDIRECT)
sys/netinet6/nd6.c
1624
struct nhop_object *nh;
sys/netinet6/nd6.c
1626
nh = rc->rc_nh_old;
sys/netinet6/nd6.c
1627
if (rc->rc_cmd == RTM_DELETE && (nh->nh_flags & NHF_DEFAULT) != 0) {
sys/netinet6/nd6.c
1628
dr = defrouter_lookup(&nh->gw6_sa.sin6_addr, nh->nh_ifp);
sys/netinet6/nd6_rtr.c
2449
rt6_deleteroute(const struct rtentry *rt, const struct nhop_object *nh,
sys/netinet6/nd6_rtr.c
2455
if (nh->gw_sa.sa_family != AF_INET6)
sys/netinet6/nd6_rtr.c
2458
if (!IN6_ARE_ADDR_EQUAL(gate, &nh->gw6_sa.sin6_addr)) {
sys/netinet6/nd6_rtr.c
2467
nh_rt_flags = nhop_get_rtflags(nh);
sys/netinet6/nd6_rtr.c
724
struct nhop_object *nh = nhop_select_func(rc.rc_nh_new, 0);
sys/netinet6/nd6_rtr.c
725
rt_routemsg(RTM_ADD, rc.rc_rt, nh, fibnum);
sys/netinet6/nd6_rtr.c
758
struct nhop_object *nh = nhop_select_func(rc.rc_nh_old, 0);
sys/netinet6/nd6_rtr.c
759
rt_routemsg(RTM_DELETE, rc.rc_rt, nh, fibnum);
sys/netlink/route/nexthop.c
1045
for (struct nhop_object *nh = nhops_iter_start(&iter); nh;
sys/netlink/route/nexthop.c
1046
nh = nhops_iter_next(&iter)) {
sys/netlink/route/nexthop.c
1047
NL_LOG(LOG_DEBUG3, "get %u", nhop_get_idx(nh));
sys/netlink/route/nexthop.c
1048
if (nhop_get_idx(nh) == attrs.nhaf_kid) {
sys/netlink/route/nexthop.c
1049
dump_nhop(nh, 0, &wa.hdr, wa.nw);
sys/netlink/route/nexthop.c
1064
for (struct nhop_object *nh = nhops_iter_start(&iter); nh;
sys/netlink/route/nexthop.c
1065
nh = nhops_iter_next(&iter)) {
sys/netlink/route/nexthop.c
1066
dump_nhop(nh, 0, &wa.hdr, wa.nw);
sys/netlink/route/nexthop.c
175
struct nhop_object *nh = unhop->un_nhop;
sys/netlink/route/nexthop.c
178
nhop_ref_any(nh);
sys/netlink/route/nexthop.c
179
return (nh);
sys/netlink/route/nexthop.c
228
struct nhop_object *nh;
sys/netlink/route/nexthop.c
231
nh = un_tmp->un_nhop;
sys/netlink/route/nexthop.c
234
nh = un_new->un_nhop;
sys/netlink/route/nexthop.c
239
NL_LOG(LOG_DEBUG2, "linked cloned nexthop %p", nh);
sys/netlink/route/nexthop.c
248
nhop_ref_any(nh);
sys/netlink/route/nexthop.c
249
return (nh);
sys/netlink/route/nexthop.c
272
struct nhop_object *nh = NULL;
sys/netlink/route/nexthop.c
284
struct nhop_object *nh;
sys/netlink/route/nexthop.c
285
nh = nhop_alloc(fibnum, AF_UNSPEC);
sys/netlink/route/nexthop.c
286
if (nh == NULL)
sys/netlink/route/nexthop.c
288
nhop_copy(nh, unhop->un_nhop_src);
sys/netlink/route/nexthop.c
290
if (!nhop_set_upper_family(nh, family)) {
sys/netlink/route/nexthop.c
291
nhop_free(nh);
sys/netlink/route/nexthop.c
294
nhop_set_uidx(nh, unhop->un_idx);
sys/netlink/route/nexthop.c
295
nhop_set_pxtype_flag(nh, nh_flags);
sys/netlink/route/nexthop.c
296
return (nhop_get_nhop(nh, &error));
sys/netlink/route/nexthop.c
309
uint32_t uidx = nhop_get_uidx(wn[i].nh);
sys/netlink/route/nexthop.c
311
wn_new[i].nh = nl_find_nhop(fibnum, family, uidx, nh_flags, &error);
sys/netlink/route/nexthop.c
318
struct rib_head *rh = nhop_get_rh(wn_new[0].nh);
sys/netlink/route/nexthop.c
322
nh = (struct nhop_object *)nhg;
sys/netlink/route/nexthop.c
328
return (nh);
sys/netlink/route/nexthop.c
417
grp->id = nhop_get_uidx(wn[i].nh);
sys/netlink/route/nexthop.c
432
dump_nhop(const struct nhop_object *nh, uint32_t uidx, struct nlmsghdr *hdr,
sys/netlink/route/nexthop.c
440
nhm->nh_family = nhop_get_neigh_family(nh);
sys/netlink/route/nexthop.c
442
nhm->nh_protocol = nhop_get_origin(nh);
sys/netlink/route/nexthop.c
447
if (nh->nh_flags & NHF_BLACKHOLE) {
sys/netlink/route/nexthop.c
451
nlattr_add_u32(nw, NHA_OIF, if_getindex(nh->nh_ifp));
sys/netlink/route/nexthop.c
453
switch (nh->gw_sa.sa_family) {
sys/netlink/route/nexthop.c
456
nlattr_add(nw, NHA_GATEWAY, 4, &nh->gw4_sa.sin_addr);
sys/netlink/route/nexthop.c
462
struct in6_addr addr = nh->gw6_sa.sin6_addr;
sys/netlink/route/nexthop.c
472
nlattr_add_u32(nw, NHAF_AIF, if_getindex(nh->nh_aifp));
sys/netlink/route/nexthop.c
475
nlattr_add_u32(nw, NHAF_KID, nhop_get_idx(nh));
sys/netlink/route/nexthop.c
476
nlattr_add_u32(nw, NHAF_FAMILY, nhop_get_upper_family(nh));
sys/netlink/route/nexthop.c
477
nlattr_add_u32(nw, NHAF_TABLE, nhop_get_fibnum(nh));
sys/netlink/route/nexthop.c
742
eligible_nhg(const struct nhop_object *nh)
sys/netlink/route/nexthop.c
744
return (nh->nh_flags & NHF_GATEWAY);
sys/netlink/route/nexthop.c
780
wn[i].nh = unhop->un_nhop_src;
sys/netlink/route/nexthop.c
795
nl_set_nexthop_gw(struct nhop_object *nh, struct sockaddr *gw, if_t ifp,
sys/netlink/route/nexthop.c
810
nhop_set_gw(nh, gw, true);
sys/netlink/route/nexthop.c
818
struct nhop_object *nh;
sys/netlink/route/nexthop.c
840
nh = nhop_alloc(RT_DEFAULT_FIB, family);
sys/netlink/route/nexthop.c
841
if (nh == NULL) {
sys/netlink/route/nexthop.c
845
nhop_set_uidx(nh, attrs->nha_id);
sys/netlink/route/nexthop.c
846
nhop_set_origin(nh, attrs->nh_protocol);
sys/netlink/route/nexthop.c
849
nhop_set_blackhole(nh, NHF_BLACKHOLE);
sys/netlink/route/nexthop.c
851
error = nl_set_nexthop_gw(nh, attrs->nha_gw, attrs->nha_oif, npt);
sys/netlink/route/nexthop.c
853
nhop_free(nh);
sys/netlink/route/nexthop.c
856
nhop_set_transmit_ifp(nh, attrs->nha_oif);
sys/netlink/route/nexthop.c
857
nhop_set_src(nh, ifa);
sys/netlink/route/nexthop.c
860
error = nhop_get_unlinked(nh);
sys/netlink/route/nexthop.c
868
nhop_print_buf(nh, nhbuf, sizeof(nhbuf));
sys/netlink/route/nexthop.c
872
unhop->un_nhop_src = nh;
sys/netlink/route/route_var.h
137
int nl_set_nexthop_gw(struct nhop_object *nh, struct sockaddr *gw,
sys/netlink/route/rt.c
1000
if ((attrs->rta_oif != NULL) && (attrs->rta_oif != nh->nh_ifp))
sys/netlink/route/rt.c
124
dump_rc_nhop_gw(struct nl_writer *nw, const struct nhop_object *nh)
sys/netlink/route/rt.c
130
switch (nhop_get_neigh_family(nh)) {
sys/netlink/route/rt.c
135
nlattr_add(nw, NL_RTA_GATEWAY, 4, &nh->gw4_sa.sin_addr);
sys/netlink/route/rt.c
139
upper_family = nhop_get_upper_family(nh);
sys/netlink/route/rt.c
141
struct in6_addr gw6 = nh->gw6_sa.sin6_addr;
sys/netlink/route/rt.c
147
struct in6_addr gw6 = nh->gw6_sa.sin6_addr;
sys/netlink/route/rt.c
162
dump_rc_nhop_mtu(struct nl_writer *nw, const struct nhop_object *nh)
sys/netlink/route/rt.c
174
*((uint32_t *)(nla + 1)) = nh->nh_mtu;
sys/netlink/route/rt.c
183
uint32_t base_rtflags = nhop_get_rtflags(wn[0].nh);
sys/netlink/route/rt.c
200
rtnh->rtnh_ifindex = if_getindex(wn[i].nh->nh_ifp);
sys/netlink/route/rt.c
202
dump_rc_nhop_gw(nw, wn[i].nh);
sys/netlink/route/rt.c
203
uint32_t rtflags = nhop_get_rtflags(wn[i].nh);
sys/netlink/route/rt.c
207
dump_rc_nhop_mtu(nw, wn[i].nh);
sys/netlink/route/rt.c
208
nh_expire = nhop_get_expire(wn[i].nh);
sys/netlink/route/rt.c
224
const struct nhop_object *nh = rnd->rnd_nhop;
sys/netlink/route/rt.c
232
rtflags = nhop_get_rtflags(nh);
sys/netlink/route/rt.c
241
if (nh->nh_flags & NHF_GATEWAY)
sys/netlink/route/rt.c
242
dump_rc_nhop_gw(nw, nh);
sys/netlink/route/rt.c
244
uidx = nhop_get_uidx(nh);
sys/netlink/route/rt.c
247
nlattr_add_u32(nw, NL_RTA_KNH_ID, nhop_get_idx(nh));
sys/netlink/route/rt.c
251
dump_rc_nhop_mtu(nw, nh);
sys/netlink/route/rt.c
252
nh_expire = nhop_get_expire(nh);
sys/netlink/route/rt.c
257
nlattr_add_u32(nw, NL_RTA_OIF, if_getindex(nh->nh_ifp));
sys/netlink/route/rt.c
54
get_rtm_type(const struct nhop_object *nh)
sys/netlink/route/rt.c
56
int nh_flags = nh->nh_flags;
sys/netlink/route/rt.c
67
nl_get_rtm_protocol(const struct nhop_object *nh)
sys/netlink/route/rt.c
69
const struct nhgrp_object *nhg = (const struct nhgrp_object *)nh;
sys/netlink/route/rt.c
715
finalize_nhop(struct nhop_object *nh, const struct sockaddr *dst, int *perror)
sys/netlink/route/rt.c
721
if (nh->gw_sa.sa_family == 0) {
sys/netlink/route/rt.c
725
if (nh->nh_ifp != NULL)
sys/netlink/route/rt.c
726
nhop_set_direct_gw(nh, nh->nh_ifp);
sys/netlink/route/rt.c
73
if (NH_IS_NHGRP(nh)) {
sys/netlink/route/rt.c
735
if (nh->nh_ifp == NULL) {
sys/netlink/route/rt.c
736
uint32_t fibnum = nhop_get_fibnum(nh);
sys/netlink/route/rt.c
739
if (nh->nh_flags & NHF_GATEWAY)
sys/netlink/route/rt.c
741
else if (nh->nh_flags & NHF_HOST)
sys/netlink/route/rt.c
744
struct ifaddr *ifa = ifa_ifwithroute(flags, dst, &nh->gw_sa, fibnum);
sys/netlink/route/rt.c
750
nhop_set_transmit_ifp(nh, ifa->ifa_ifp);
sys/netlink/route/rt.c
754
if (nh->nh_ifa == NULL) {
sys/netlink/route/rt.c
755
const struct sockaddr *gw_sa = &nh->gw_sa;
sys/netlink/route/rt.c
767
struct ifaddr *ifa = ifaof_ifpforaddr(gw_sa, nh->nh_ifp);
sys/netlink/route/rt.c
77
nh = nhg->nhops[0];
sys/netlink/route/rt.c
770
gw_sa = &nh->gw_sa;
sys/netlink/route/rt.c
771
ifa = ifaof_ifpforaddr(gw_sa, nh->nh_ifp);
sys/netlink/route/rt.c
778
nhop_set_src(nh, ifa);
sys/netlink/route/rt.c
781
return (nhop_get_nhop(nh, perror));
sys/netlink/route/rt.c
79
origin = nhop_get_origin(nh);
sys/netlink/route/rt.c
828
struct nhop_object *nh = nhop_alloc(attrs->rta_table, attrs->rtm_family);
sys/netlink/route/rt.c
829
if (nh == NULL)
sys/netlink/route/rt.c
83
rt_flags = nhop_get_rtflags(nh);
sys/netlink/route/rt.c
832
error = nl_set_nexthop_gw(nh, mpnh->gw, mpnh->ifp, npt);
sys/netlink/route/rt.c
834
nhop_free(nh);
sys/netlink/route/rt.c
838
nhop_set_transmit_ifp(nh, mpnh->ifp);
sys/netlink/route/rt.c
839
nhop_set_pxtype_flag(nh, get_pxflag(attrs));
sys/netlink/route/rt.c
840
nhop_set_rtflags(nh, attrs->rta_rtflags);
sys/netlink/route/rt.c
842
nhop_set_origin(nh, attrs->rtm_protocol);
sys/netlink/route/rt.c
844
*pnh = finalize_nhop(nh, attrs->rta_dst, &error);
sys/netlink/route/rt.c
853
struct nhop_object *nh = NULL;
sys/netlink/route/rt.c
865
error = create_nexthop_one(attrs, mpnh, npt, &wn[i].nh);
sys/netlink/route/rt.c
868
nhop_free(wn[j].nh);
sys/netlink/route/rt.c
874
struct rib_head *rh = nhop_get_rh(wn[0].nh);
sys/netlink/route/rt.c
885
nhop_free(wn[i].nh);
sys/netlink/route/rt.c
892
nh = nhop_alloc(attrs->rta_table, attrs->rtm_family);
sys/netlink/route/rt.c
893
if (nh == NULL) {
sys/netlink/route/rt.c
898
*perror = nl_set_nexthop_gw(nh, attrs->rta_gw, attrs->rta_oif, npt);
sys/netlink/route/rt.c
900
nhop_free(nh);
sys/netlink/route/rt.c
905
nhop_set_transmit_ifp(nh, attrs->rta_oif);
sys/netlink/route/rt.c
907
nhop_set_mtu(nh, attrs->rtax_mtu, true);
sys/netlink/route/rt.c
910
nhop_set_expire(nh, nh_expire);
sys/netlink/route/rt.c
913
nhop_set_broadcast(nh, true);
sys/netlink/route/rt.c
915
nhop_set_origin(nh, attrs->rtm_protocol);
sys/netlink/route/rt.c
916
nhop_set_pxtype_flag(nh, get_pxflag(attrs));
sys/netlink/route/rt.c
917
nhop_set_rtflags(nh, attrs->rta_rtflags);
sys/netlink/route/rt.c
923
nhop_set_blackhole(nh, RTF_BLACKHOLE);
sys/netlink/route/rt.c
927
nhop_set_blackhole(nh, RTF_REJECT);
sys/netlink/route/rt.c
932
nh = finalize_nhop(nh, attrs->rta_dst, perror);
sys/netlink/route/rt.c
935
return (nh);
sys/netlink/route/rt.c
943
struct nhop_object *nh = NULL;
sys/netlink/route/rt.c
968
nh = nl_find_nhop(attrs.rta_table, attrs.rtm_family, attrs.rta_nh_id,
sys/netlink/route/rt.c
973
nh = create_nexthop_from_attrs(&attrs, npt, &error);
sys/netlink/route/rt.c
980
if (!NH_IS_NHGRP(nh) && attrs.rta_weight == 0)
sys/netlink/route/rt.c
982
struct route_nhop_data rnd = { .rnd_nhop = nh, .rnd_weight = attrs.rta_weight };
sys/netlink/route/rt.c
993
path_match_func(const struct rtentry *rt, const struct nhop_object *nh, void *_data)
sys/netlink/route/rt.c
997
if ((attrs->rta_gw != NULL) && !rib_match_gw(rt, nh, attrs->rta_gw))
sys/netpfil/ipfilter/netinet/fil.c
8274
int elen, hlen, nh;
sys/netpfil/ipfilter/netinet/fil.c
8293
nh = fin->fin_fr->fr_icode;
sys/netpfil/ipfilter/netinet/fil.c
8308
nh = IPPROTO_IP;
sys/netpfil/ipfilter/netinet/fil.c
8351
nh = IPPROTO_IP;
sys/netpfil/ipfilter/netinet/fil.c
8358
switch (nh)
sys/netpfil/ipfilter/netinet/ip_fil_freebsd.c
672
struct nhop_object *nh;
sys/netpfil/ipfilter/netinet/ip_fil_freebsd.c
750
nh = fib4_lookup(fibnum, dst->sin_addr, 0, NHR_NONE, 0);
sys/netpfil/ipfilter/netinet/ip_fil_freebsd.c
751
if (nh == NULL) {
sys/netpfil/ipfilter/netinet/ip_fil_freebsd.c
760
ifp = nh->nh_ifp;
sys/netpfil/ipfilter/netinet/ip_fil_freebsd.c
761
if (nh->nh_flags & NHF_GATEWAY) {
sys/netpfil/ipfilter/netinet/ip_fil_freebsd.c
762
gw = &nh->gw_sa;
sys/netpfil/ipfilter/netinet/ip_fil_freebsd.c
918
struct nhop_object *nh;
sys/netpfil/ipfilter/netinet/ip_fil_freebsd.c
921
nh = fib4_lookup(RT_DEFAULT_FIB, fin->fin_src, 0, NHR_NONE, 0);
sys/netpfil/ipfilter/netinet/ip_fil_freebsd.c
922
if (nh == NULL)
sys/netpfil/ipfilter/netinet/ip_fil_freebsd.c
924
return (fin->fin_ifp == nh->nh_ifp);
sys/netpfil/ipfw/ip_fw2.c
484
struct nhop_object *nh;
sys/netpfil/ipfw/ip_fw2.c
486
nh = fib4_lookup(fib, src, 0, NHR_NONE, 0);
sys/netpfil/ipfw/ip_fw2.c
487
if (nh == NULL)
sys/netpfil/ipfw/ip_fw2.c
497
if (ifp != NULL && ifp != nh->nh_aifp)
sys/netpfil/ipfw/ip_fw2.c
501
if (ifp == NULL && (nh->nh_flags & NHF_DEFAULT) != 0)
sys/netpfil/ipfw/ip_fw2.c
505
if (ifp == NULL && (nh->nh_flags & (NHF_REJECT|NHF_BLACKHOLE)) != 0)
sys/netpfil/ipfw/ip_fw2.c
824
struct nhop_object *nh;
sys/netpfil/ipfw/ip_fw2.c
829
nh = fib6_lookup(fib, src, 0, NHR_NONE, 0);
sys/netpfil/ipfw/ip_fw2.c
830
if (nh == NULL)
sys/netpfil/ipfw/ip_fw2.c
834
if (ifp != NULL && ifp != nh->nh_aifp)
sys/netpfil/ipfw/ip_fw2.c
838
if (ifp == NULL && (nh->nh_flags & NHF_DEFAULT) != 0)
sys/netpfil/ipfw/ip_fw2.c
842
if (ifp == NULL && (nh->nh_flags & (NHF_REJECT|NHF_BLACKHOLE)) != 0)
sys/netpfil/ipfw/ip_fw_log.c
520
struct sockaddr_in *nh = (struct sockaddr_in *)*buf;
sys/netpfil/ipfw/ip_fw_log.c
522
*buf += sizeof(*nh);
sys/netpfil/ipfw/ip_fw_log.c
523
memcpy(nh, &insntod(cmd, sa)->sa, sizeof(*nh));
sys/netpfil/ipfw/ip_fw_log.c
524
if (nh->sin_addr.s_addr == INADDR_ANY)
sys/netpfil/ipfw/ip_fw_log.c
525
nh->sin_addr.s_addr = htonl(
sys/netpfil/ipfw/ip_fw_log.c
527
return ((struct sockaddr *)nh);
sys/netpfil/ipfw/ip_fw_log.c
534
struct sockaddr_in6 *nh = (struct sockaddr_in6 *)*buf;
sys/netpfil/ipfw/ip_fw_log.c
536
*buf += sizeof(*nh);
sys/netpfil/ipfw/ip_fw_log.c
539
nh->sin6_family = AF_INET6;
sys/netpfil/ipfw/ip_fw_log.c
540
nh->sin6_len = sizeof(*nh);
sys/netpfil/ipfw/ip_fw_log.c
541
nh->sin6_addr = TARG_VAL(chain, tablearg, nh6);
sys/netpfil/ipfw/ip_fw_log.c
542
nh->sin6_port = sin->sin_port;
sys/netpfil/ipfw/ip_fw_log.c
543
nh->sin6_scope_id =
sys/netpfil/ipfw/ip_fw_log.c
546
memcpy(nh, &insntod(cmd, sa6)->sa, sizeof(*nh));
sys/netpfil/ipfw/ip_fw_log.c
547
return ((struct sockaddr *)nh);
sys/netpfil/ipfw/nat64/nat64_translate.c
1227
struct nhop_object *nh;
sys/netpfil/ipfw/nat64/nat64_translate.c
1270
nh = nat64_find_route6(&dst, m);
sys/netpfil/ipfw/nat64/nat64_translate.c
1271
if (nh == NULL) {
sys/netpfil/ipfw/nat64/nat64_translate.c
1277
if (nh->nh_mtu < plen + sizeof(ip6) &&
sys/netpfil/ipfw/nat64/nat64_translate.c
1280
FRAGSZ(nh->nh_mtu) + sizeof(struct ip), &cfg->stats, logdata);
sys/netpfil/ipfw/nat64/nat64_translate.c
1325
nat64_fragment6(&cfg->stats, &ip6, &mq, m, nh->nh_mtu, ip_id, ip_off);
sys/netpfil/ipfw/nat64/nat64_translate.c
1327
if (V_nat64out->output(nh->nh_ifp, m, (struct sockaddr *)&dst,
sys/netpfil/ipfw/nat64/nat64_translate.c
1562
struct nhop_object *nh;
sys/netpfil/ipfw/nat64/nat64_translate.c
1655
nh = nat64_find_route4(&dst, m);
sys/netpfil/ipfw/nat64/nat64_translate.c
1656
if (nh == NULL) {
sys/netpfil/ipfw/nat64/nat64_translate.c
1662
if (nh->nh_mtu < plen + sizeof(ip)) {
sys/netpfil/ipfw/nat64/nat64_translate.c
1663
nat64_icmp6_reflect(m, ICMP6_PACKET_TOO_BIG, 0, nh->nh_mtu,
sys/netpfil/ipfw/nat64/nat64_translate.c
1717
if (V_nat64out->output(nh->nh_ifp, m, (struct sockaddr *)&dst,
sys/netpfil/ipfw/nat64/nat64_translate.c
623
struct nhop_object *nh;
sys/netpfil/ipfw/nat64/nat64_translate.c
626
nh = fib6_lookup(M_GETFIB(m), &dst->sin6_addr, 0, NHR_NONE, 0);
sys/netpfil/ipfw/nat64/nat64_translate.c
627
if (nh == NULL)
sys/netpfil/ipfw/nat64/nat64_translate.c
629
if (nh->nh_flags & (NHF_BLACKHOLE | NHF_REJECT))
sys/netpfil/ipfw/nat64/nat64_translate.c
634
if (nh->nh_flags & NHF_GATEWAY)
sys/netpfil/ipfw/nat64/nat64_translate.c
635
dst->sin6_addr = nh->gw6_sa.sin6_addr;
sys/netpfil/ipfw/nat64/nat64_translate.c
639
return (nh);
sys/netpfil/ipfw/nat64/nat64_translate.c
770
struct nhop_object *nh;
sys/netpfil/ipfw/nat64/nat64_translate.c
773
nh = fib4_lookup(M_GETFIB(m), dst->sin_addr, 0, NHR_NONE, 0);
sys/netpfil/ipfw/nat64/nat64_translate.c
774
if (nh == NULL)
sys/netpfil/ipfw/nat64/nat64_translate.c
776
if (nh->nh_flags & (NHF_BLACKHOLE | NHF_BROADCAST | NHF_REJECT))
sys/netpfil/ipfw/nat64/nat64_translate.c
781
if (nh->nh_flags & NHF_GATEWAY)
sys/netpfil/ipfw/nat64/nat64_translate.c
782
dst->sin_addr = nh->gw4_sa.sin_addr;
sys/netpfil/ipfw/nat64/nat64_translate.c
784
return (nh);
sys/netpfil/pf/pf.c
10215
const struct nhop_object *nh;
sys/netpfil/pf/pf.c
10216
nh = fib6_lookup(M_GETFIB(m0), &ip6->ip6_dst, 0, NHR_NONE, 0);
sys/netpfil/pf/pf.c
10217
if (nh) {
sys/netpfil/pf/pf.c
10218
ifp = nh->nh_ifp;
sys/netpfil/pf/pf.c
10221
if (nh->nh_flags & NHF_GATEWAY)
sys/netpfil/pf/pf.c
10222
bcopy(&nh->gw6_sa.sin6_addr, &dst.sin6_addr,
sys/netpfil/pf/pf.c
5529
struct nhop_object *nh;
sys/netpfil/pf/pf.c
5543
nh = fib4_lookup(rtableid, addr->v4, 0, 0, 0);
sys/netpfil/pf/pf.c
5544
if (nh != NULL)
sys/netpfil/pf/pf.c
5545
mss = nh->nh_mtu - hlen - sizeof(struct tcphdr);
sys/netpfil/pf/pf.c
5552
nh = fib6_lookup(rtableid, &dst6, scopeid, 0, 0);
sys/netpfil/pf/pf.c
5553
if (nh != NULL)
sys/netpfil/pf/pf.c
5554
mss = nh->nh_mtu - hlen - sizeof(struct tcphdr);
sys/netpfil/pf/pf.c
9890
const struct nhop_object *nh;
sys/netpfil/pf/pf.c
9891
nh = fib4_lookup(M_GETFIB(m0), ip->ip_dst, 0, NHR_NONE, 0);
sys/netpfil/pf/pf.c
9892
if (nh) {
sys/netpfil/pf/pf.c
9893
ifp = nh->nh_ifp;
sys/netpfil/pf/pf.c
9896
if (nh->nh_flags & NHF_GATEWAY) {
sys/netpfil/pf/pf.c
9897
gw = (const union sockaddr_union *)&nh->gw_sa;
sys/ofed/drivers/infiniband/core/ib_addr.c
277
struct nhop_object *nh;
sys/ofed/drivers/infiniband/core/ib_addr.c
306
nh = fib4_lookup(RT_DEFAULT_FIB, dst_tmp.sin_addr,0,NHR_NONE,0);
sys/ofed/drivers/infiniband/core/ib_addr.c
307
if (nh == NULL) {
sys/ofed/drivers/infiniband/core/ib_addr.c
337
} else if (if_getflags(nh->nh_ifp) & IFF_LOOPBACK) {
sys/ofed/drivers/infiniband/core/ib_addr.c
350
ifp = nh->nh_ifp;
sys/ofed/drivers/infiniband/core/ib_addr.c
352
} else if (ifp != nh->nh_ifp) {
sys/ofed/drivers/infiniband/core/ib_addr.c
363
if (if_getflags(nh->nh_ifp) & IFF_LOOPBACK)
sys/ofed/drivers/infiniband/core/ib_addr.c
366
saddr = nh->nh_ifa->ifa_addr;
sys/ofed/drivers/infiniband/core/ib_addr.c
369
ifp = nh->nh_ifp;
sys/ofed/drivers/infiniband/core/ib_addr.c
384
bool is_gw = (nh->nh_flags & NHF_GATEWAY) != 0;
sys/ofed/drivers/infiniband/core/ib_addr.c
394
bool is_gw = (nh->nh_flags & NHF_GATEWAY) != 0;
sys/ofed/drivers/infiniband/core/ib_addr.c
397
if (is_gw && nh->gw_sa.sa_family == AF_INET6)
sys/ofed/drivers/infiniband/core/ib_addr.c
399
&nh->gw_sa, edst, NULL, NULL);
sys/ofed/drivers/infiniband/core/ib_addr.c
403
&nh->gw_sa : (const struct sockaddr *)&dst_tmp,
sys/ofed/drivers/infiniband/core/ib_addr.c
460
struct nhop_object *nh;
sys/ofed/drivers/infiniband/core/ib_addr.c
503
nh = fib6_lookup(RT_DEFAULT_FIB, &dst_in->sin6_addr,
sys/ofed/drivers/infiniband/core/ib_addr.c
505
if (nh == NULL) {
sys/ofed/drivers/infiniband/core/ib_addr.c
535
} else if (if_getflags(nh->nh_ifp) & IFF_LOOPBACK) {
sys/ofed/drivers/infiniband/core/ib_addr.c
548
ifp = nh->nh_ifp;
sys/ofed/drivers/infiniband/core/ib_addr.c
550
} else if (ifp != nh->nh_ifp) {
sys/ofed/drivers/infiniband/core/ib_addr.c
561
if (if_getflags(nh->nh_ifp) & IFF_LOOPBACK)
sys/ofed/drivers/infiniband/core/ib_addr.c
564
saddr = nh->nh_ifa->ifa_addr;
sys/ofed/drivers/infiniband/core/ib_addr.c
567
ifp = nh->nh_ifp;
sys/ofed/drivers/infiniband/core/ib_addr.c
578
bool is_gw = (nh->nh_flags & NHF_GATEWAY) != 0;
sys/ofed/drivers/infiniband/core/ib_addr.c
585
} else if (if_getflags(nh->nh_ifp) & IFF_LOOPBACK) {
sys/ofed/drivers/infiniband/core/ib_addr.c
589
bool is_gw = (nh->nh_flags & NHF_GATEWAY) != 0;
sys/ofed/drivers/infiniband/core/ib_addr.c
592
is_gw ? &nh->gw_sa : (const struct sockaddr *)&dst_tmp,
sys/ofed/drivers/infiniband/core/ib_cma.c
1406
struct nhop_object *nh;
sys/ofed/drivers/infiniband/core/ib_cma.c
1427
nh = fib4_lookup(RT_DEFAULT_FIB, src_addr->sin_addr, 0, NHR_NONE, 0);
sys/ofed/drivers/infiniband/core/ib_cma.c
1428
if (nh != NULL)
sys/ofed/drivers/infiniband/core/ib_cma.c
1429
ret = (nh->nh_ifp == net_dev);
sys/ofed/drivers/infiniband/core/ib_cma.c
1447
struct nhop_object *nh;
sys/ofed/drivers/infiniband/core/ib_cma.c
1479
nh = fib6_lookup(RT_DEFAULT_FIB, &src_addr->sin6_addr,
sys/ofed/drivers/infiniband/core/ib_cma.c
1481
if (nh != NULL)
sys/ofed/drivers/infiniband/core/ib_cma.c
1482
ret = (nh->nh_ifp == net_dev);
usr.bin/netstat/nhgrp.c
280
update_global_map(struct nhop_external *nh)
usr.bin/netstat/nhgrp.c
287
na = (struct nhop_addrs *)((char *)nh + nh->nh_len);
usr.bin/netstat/nhgrp.c
291
if (nh->ifindex < (uint32_t)ifmap_size) {
usr.bin/netstat/nhgrp.c
292
strlcpy(iface_name, ifmap[nh->ifindex].ifname,
usr.bin/netstat/nhgrp.c
298
if (nh->nh_flags & NHF_GATEWAY) {
usr.bin/netstat/nhgrp.c
305
nhop_map_update(&global_nhop_map, nh->nh_idx, gw_addr, iface_name);
usr.bin/netstat/nhgrp.c
312
struct nhop_external *nh;
usr.bin/netstat/nhgrp.c
319
nh = (struct nhop_external *)(rtm + 1);
usr.bin/netstat/nhgrp.c
320
update_global_map(nh);
usr.bin/netstat/nhops.c
237
print_nhop_entry_sysctl(const char *name, struct rt_msghdr *rtm, struct nhop_external *nh)
usr.bin/netstat/nhops.c
250
xo_emit(buffer, nh->nh_idx);
usr.bin/netstat/nhops.c
253
char *cp = nh_types[nh->nh_type];
usr.bin/netstat/nhops.c
257
if (nh->ifindex < (uint32_t)ifmap_size) {
usr.bin/netstat/nhops.c
258
strlcpy(iface_name, ifmap[nh->ifindex].ifname,
usr.bin/netstat/nhops.c
264
na = (struct nhop_addrs *)((char *)nh + nh->nh_len);
usr.bin/netstat/nhops.c
271
if (nh->nh_flags & NHF_GATEWAY) {
usr.bin/netstat/nhops.c
279
nhop_map_update(&global_nhop_map, nh->nh_idx, gw_addr, iface_name);
usr.bin/netstat/nhops.c
288
xo_emit("{t:use/%*lu} ", wid_pksent, nh->nh_pksent);
usr.bin/netstat/nhops.c
289
xo_emit("{t:mtu/%*lu} ", wid_mtu, nh->nh_mtu);
usr.bin/netstat/nhops.c
299
if (nh->aifindex < (uint32_t)ifmap_size && nh->ifindex != nh->aifindex) {
usr.bin/netstat/nhops.c
300
strlcpy(iface_name, ifmap[nh->aifindex].ifname,
usr.bin/netstat/nhops.c
308
xo_emit("{t:refcount/%*lu} ", wid_refcnt, nh->nh_refcount);
usr.bin/netstat/nhops.c
309
if (Wflag && nh->prepend_len) {
usr.bin/netstat/nhops.c
310
int max_bytes = MIN(nh->prepend_len, sizeof(buffer) / 2 - 1);
usr.bin/netstat/nhops.c
312
snprintf(&buffer[i * 2], 3, "%02X", nh->nh_prepend[i]);
usr.bin/netstat/nhops.c
342
struct nhop_external *nh;
usr.bin/netstat/nhops.c
379
nh = (struct nhop_external *)(rtm + 1);
usr.bin/netstat/nhops.c
380
nh_map[nh_count].idx = nh->nh_idx;
usr.bin/netstat/nhops.c
396
struct nhop_external *nh;
usr.bin/netstat/nhops.c
405
nh = (struct nhop_external *)(nd.nh_map[0].rtm + 1);
usr.bin/netstat/nhops.c
406
fam = nh->nh_family;
usr.bin/netstat/nhops.c
425
nh = (struct nhop_external *)(rtm + 1);
usr.bin/netstat/nhops.c
426
print_nhop_entry_sysctl("nh-entry", rtm, nh);
usr.bin/sort/coll.c
839
kv1->hint->v.nh.n1 = wcstoull(smain1, NULL, 10);
usr.bin/sort/coll.c
841
kv1->hint->v.nh.empty=true;
usr.bin/sort/coll.c
842
kv1->hint->v.nh.si = SI1;
usr.bin/sort/coll.c
843
kv1->hint->status = (kv1->hint->v.nh.n1 != ULLONG_MAX) ?
usr.bin/sort/coll.c
845
kv1->hint->v.nh.neg = (sign1 < 0) ? true : false;
usr.bin/sort/coll.c
852
kv2->hint->v.nh.n1 = wcstoull(smain2, NULL, 10);
usr.bin/sort/coll.c
854
kv2->hint->v.nh.empty=true;
usr.bin/sort/coll.c
855
kv2->hint->v.nh.si = SI2;
usr.bin/sort/coll.c
856
kv2->hint->status = (kv2->hint->v.nh.n1 != ULLONG_MAX) ?
usr.bin/sort/coll.c
858
kv2->hint->v.nh.neg = (sign2 < 0) ? true : false;
usr.bin/sort/coll.c
866
e1 = kv1->hint->v.nh.empty;
usr.bin/sort/coll.c
867
e2 = kv2->hint->v.nh.empty;
usr.bin/sort/coll.c
872
neg1 = kv1->hint->v.nh.neg;
usr.bin/sort/coll.c
873
neg2 = kv2->hint->v.nh.neg;
usr.bin/sort/coll.c
887
cmp_res = cmpsuffix(kv1->hint->v.nh.si, kv2->hint->v.nh.si);
usr.bin/sort/coll.c
892
n1 = kv1->hint->v.nh.n1;
usr.bin/sort/coll.c
893
n2 = kv2->hint->v.nh.n1;
usr.bin/sort/coll.h
93
struct n_hint nh;
usr.sbin/arp/arp_netlink.c
170
struct snl_parsed_nhop nh = {};
usr.sbin/arp/arp_netlink.c
171
if (!snl_parse_nlmsg(ss, hdr, &snl_nhmsg_parser, &nh))
usr.sbin/arp/arp_netlink.c
174
return (nh.nhaf_aif);
usr.sbin/ndp/ndp_netlink.c
195
struct snl_parsed_nhop nh = {};
usr.sbin/ndp/ndp_netlink.c
196
if (!snl_parse_nlmsg(ss, hdr, &snl_nhmsg_parser, &nh))
usr.sbin/ndp/ndp_netlink.c
199
return (nh.nhaf_aif);
usr.sbin/route6d/route6d.c
1106
struct in6_addr nh; /* next hop */
usr.sbin/route6d/route6d.c
1185
nh = fsock.sin6_addr;
usr.sbin/route6d/route6d.c
1260
ifcp->ifc_name, inet6_n2p(&nh), ntohs(fsock.sin6_port), nn);
usr.sbin/route6d/route6d.c
1268
nh = np->rip6_dest;
usr.sbin/route6d/route6d.c
1269
trace(1, "\tNexthop: %s\n", inet6_n2p(&nh));
usr.sbin/route6d/route6d.c
1271
nh = fsock.sin6_addr;
usr.sbin/route6d/route6d.c
1272
trace(1, "\tNexthop: %s\n", inet6_n2p(&nh));
usr.sbin/route6d/route6d.c
1274
nh = fsock.sin6_addr;
usr.sbin/route6d/route6d.c
1355
IN6_ARE_ADDR_EQUAL(&nh, &rrt->rrt_gw)) {
usr.sbin/route6d/route6d.c
1363
rrt->rrt_gw = nh;
usr.sbin/route6d/route6d.c
1365
addroute(rrt, &nh, ifcp);
usr.sbin/route6d/route6d.c
1372
IN6_ARE_ADDR_EQUAL(&nh, &rrt->rrt_gw)) {
usr.sbin/route6d/route6d.c
1381
IN6_ARE_ADDR_EQUAL(&nh, &rrt->rrt_gw)) {
usr.sbin/route6d/route6d.c
1389
rrt->rrt_gw = nh;
usr.sbin/route6d/route6d.c
1391
addroute(rrt, &nh, ifcp);
usr.sbin/route6d/route6d.c
1412
rrt->rrt_gw = nh;
usr.sbin/route6d/route6d.c
1419
addroute(rrt, &nh, ifcp);
usr.sbin/route6d/route6d.c
811
struct in6_addr *nh; /* next hop */
usr.sbin/route6d/route6d.c
828
nh = NULL;
usr.sbin/route6d/route6d.c
839
nh = NULL;
usr.sbin/route6d/route6d.c
878
nrt = 0; np = ripbuf->rip6_nets; nh = NULL;
usr.sbin/route6d/route6d.c
900
if (nh == NULL || !IN6_ARE_ADDR_EQUAL(nh, &rrt->rrt_gw)) {
usr.sbin/route6d/route6d.c
903
nh = NULL;
usr.sbin/route6d/route6d.c
912
nh = &rrt->rrt_gw;
usr.sbin/route6d/route6d.c
915
} else if (nh && (rrt->rrt_index != ifcp->ifc_index ||
usr.sbin/route6d/route6d.c
916
!IN6_ARE_ADDR_EQUAL(nh, &rrt->rrt_gw) ||
usr.sbin/route6d/route6d.c
921
nh = NULL;
usr.sbin/route6d/route6d.c
927
nh = NULL;
usr.sbin/route6d/route6d.c
936
nh = NULL;
usr.sbin/traceroute6/traceroute6.c
1513
u_char *cp = (u_char *)ip6, nh;
usr.sbin/traceroute6/traceroute6.c
1520
nh = ip6->ip6_nxt;
usr.sbin/traceroute6/traceroute6.c
1523
while (lim - cp >= (nh == IPPROTO_NONE ? 0 : 8)) {
usr.sbin/traceroute6/traceroute6.c
1524
switch (nh) {
usr.sbin/traceroute6/traceroute6.c
1528
return (useproto == nh ? cp : NULL);
usr.sbin/traceroute6/traceroute6.c
1532
return (useproto == nh ? cp : NULL);
usr.sbin/traceroute6/traceroute6.c
1534
return (useproto == nh ? none_hdr : NULL);
usr.sbin/traceroute6/traceroute6.c
1537
nh = ((struct ip6_frag *)cp)->ip6f_nxt;
usr.sbin/traceroute6/traceroute6.c
1541
nh = ((struct ip6_ext *)cp)->ip6e_nxt;
usr.sbin/traceroute6/traceroute6.c
1545
nh = ((struct ip6_ext *)cp)->ip6e_nxt;