diff options
author | Christopher Pascoe <pascoe@cvs.openbsd.org> | 2006-06-18 11:47:47 +0000 |
---|---|---|
committer | Christopher Pascoe <pascoe@cvs.openbsd.org> | 2006-06-18 11:47:47 +0000 |
commit | 7128c15b3d788036fcd81521f6defea3838851fa (patch) | |
tree | e4df6cf82b6c8f0549f702cc93db7ccce4965cc8 /sys/netinet/ip_output.c | |
parent | 200b4f43933395e40b0ce709f1a210782bfaaf5f (diff) |
Add support for equal-cost multipath IP.
To minimise path disruptions, this implements recommendations made in RFC2992 -
the hash-threshold mechanism to select paths based on source/destination IP
address pairs, and inserts multipath routes in the middle of the route table.
To enable multipath distribution, use:
sysctl net.inet.ip.multipath=1
and/or:
sysctl net.inet6.ip6.multipath=1
testing norby@
ok claudio@ henning@ hshoexer@
Diffstat (limited to 'sys/netinet/ip_output.c')
-rw-r--r-- | sys/netinet/ip_output.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c index e241fea438f..65e8698445f 100644 --- a/sys/netinet/ip_output.c +++ b/sys/netinet/ip_output.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ip_output.c,v 1.179 2006/06/06 15:19:15 deraadt Exp $ */ +/* $OpenBSD: ip_output.c,v 1.180 2006/06/18 11:47:45 pascoe Exp $ */ /* $NetBSD: ip_output.c,v 1.28 1996/02/13 23:43:07 christos Exp $ */ /* @@ -219,7 +219,7 @@ ip_output(struct mbuf *m0, ...) IFP_TO_IA(ifp, ia); } else { if (ro->ro_rt == 0) - rtalloc(ro); + rtalloc_mpath(ro, NULL, 0); if (ro->ro_rt == 0) { ipstat.ips_noroute++; @@ -386,7 +386,7 @@ ip_output(struct mbuf *m0, ...) IFP_TO_IA(ifp, ia); } else { if (ro->ro_rt == 0) - rtalloc(ro); + rtalloc_mpath(ro, &ip->ip_src.s_addr, 0); if (ro->ro_rt == 0) { ipstat.ips_noroute++; |