diff options
| author | Alexander V. Chernikov <melifaro@FreeBSD.org> | 2020-04-28 08:06:56 +0000 |
|---|---|---|
| committer | Alexander V. Chernikov <melifaro@FreeBSD.org> | 2020-04-28 08:06:56 +0000 |
| commit | 4043ee3cd79c54b0e33739570cc97694654c90f4 (patch) | |
| tree | 1df92e4ae69c49304448942a4b28402bb0df3b7c /sys/netinet/ip_output.c | |
| parent | 1b0051bada28c82332651da2eb735f3efb658d87 (diff) | |
Notes
Diffstat (limited to 'sys/netinet/ip_output.c')
| -rw-r--r-- | sys/netinet/ip_output.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c index ef858a54fab9f..984ef807e533f 100644 --- a/sys/netinet/ip_output.c +++ b/sys/netinet/ip_output.c @@ -68,9 +68,6 @@ __FBSDID("$FreeBSD$"); #include <net/pfil.h> #include <net/route.h> #include <net/route/nhop.h> -#ifdef RADIX_MPATH -#include <net/radix_mpath.h> -#endif #include <net/rss_config.h> #include <net/vnet.h> @@ -470,14 +467,15 @@ again: * layer, as this is probably required in all cases * for correct operation (as it is for ARP). */ + uint32_t flowid; #ifdef RADIX_MPATH - rtalloc_mpath_fib(ro, - ntohl(ip->ip_src.s_addr ^ ip->ip_dst.s_addr), - fibnum); + flowid = ntohl(ip->ip_src.s_addr ^ ip->ip_dst.s_addr); #else - ro->ro_nh = fib4_lookup(fibnum, dst->sin_addr, 0, - NHR_REF, m->m_pkthdr.flowid); + flowid = m->m_pkthdr.flowid; #endif + ro->ro_nh = fib4_lookup(fibnum, dst->sin_addr, 0, + NHR_REF, flowid); + if (ro->ro_nh == NULL || (!NH_IS_VALID(ro->ro_nh)) || !RT_LINK_IS_UP(ro->ro_nh->nh_ifp)) { #if defined(IPSEC) || defined(IPSEC_SUPPORT) |
