summaryrefslogtreecommitdiffstats
path: root/sys/netinet/ip_output.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netinet/ip_output.c')
-rw-r--r--sys/netinet/ip_output.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c
index 78aff7f..7ce2104 100644
--- a/sys/netinet/ip_output.c
+++ b/sys/netinet/ip_output.c
@@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$");
#include "opt_ipsec.h"
#include "opt_mac.h"
#include "opt_mbuf_stress_test.h"
+#include "opt_mpath.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -54,6 +55,9 @@ __FBSDID("$FreeBSD$");
#include <net/netisr.h>
#include <net/pfil.h>
#include <net/route.h>
+#ifdef RADIX_MPATH
+#include <net/radix_mpath.h>
+#endif
#include <netinet/in.h>
#include <netinet/in_systm.h>
@@ -225,7 +229,12 @@ again:
* operation (as it is for ARP).
*/
if (ro->ro_rt == NULL)
+#ifdef RADIX_MPATH
+ rtalloc_mpath(ro,
+ ntohl(ip->ip_src.s_addr ^ ip->ip_dst.s_addr));
+#else
rtalloc_ign(ro, 0);
+#endif
if (ro->ro_rt == NULL) {
ipstat.ips_noroute++;
error = EHOSTUNREACH;
OpenPOWER on IntegriCloud