summaryrefslogtreecommitdiff
path: root/sys/netinet6
diff options
context:
space:
mode:
authorMarco Pfatschbacher <mpf@cvs.openbsd.org>2008-02-05 22:57:32 +0000
committerMarco Pfatschbacher <mpf@cvs.openbsd.org>2008-02-05 22:57:32 +0000
commit279d8911f3838a3d1546b31c4801fac650ddc9ce (patch)
tree3f4efb4bfc2385425ae2ad31c7f392ddc1729137 /sys/netinet6
parent1c85bd544fb9501c3922670c79d44a2d5baedad0 (diff)
Move carp load balancing (ARP/IP) to a simpler configuration scheme.
Instead of using the same IP on multiple interfaces, carp has to be configured with the new "carpnodes" and "balancing" options. # ifconfig carp0 carpnodes 1:0,2:100,3:100 balancing ip carpdev sis0 192.168.5.50 Please note, that this is a flag day for anyone using carp balancing. You'll need to adjust your configuration accordingly. Addititionally this diff adds IPv6 NDP balancing support. Tested and OK mcbride@, reyk@. Manpage help by jmc@.
Diffstat (limited to 'sys/netinet6')
-rw-r--r--sys/netinet6/icmp6.c3
-rw-r--r--sys/netinet6/ip6_input.c4
-rw-r--r--sys/netinet6/nd6_nbr.c4
3 files changed, 4 insertions, 7 deletions
diff --git a/sys/netinet6/icmp6.c b/sys/netinet6/icmp6.c
index 4a0e360a936..8800a65f449 100644
--- a/sys/netinet6/icmp6.c
+++ b/sys/netinet6/icmp6.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: icmp6.c,v 1.94 2007/06/01 00:52:38 henning Exp $ */
+/* $OpenBSD: icmp6.c,v 1.95 2008/02/05 22:57:31 mpf Exp $ */
/* $KAME: icmp6.c,v 1.217 2001/06/20 15:03:29 jinmei Exp $ */
/*
@@ -481,7 +481,6 @@ icmp6_input(mp, offp, proto)
#if NCARP > 0
if (m->m_pkthdr.rcvif->if_type == IFT_CARP &&
- m->m_pkthdr.rcvif->if_flags & IFF_LINK0 &&
icmp6->icmp6_type == ICMP6_ECHO_REQUEST &&
carp_lsdrop(m, AF_INET6, ip6->ip6_src.s6_addr32,
ip6->ip6_dst.s6_addr32))
diff --git a/sys/netinet6/ip6_input.c b/sys/netinet6/ip6_input.c
index 2459d5d2688..f101308eb9d 100644
--- a/sys/netinet6/ip6_input.c
+++ b/sys/netinet6/ip6_input.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ip6_input.c,v 1.80 2007/12/14 18:33:41 deraadt Exp $ */
+/* $OpenBSD: ip6_input.c,v 1.81 2008/02/05 22:57:31 mpf Exp $ */
/* $KAME: ip6_input.c,v 1.188 2001/03/29 05:34:31 itojun Exp $ */
/*
@@ -258,7 +258,6 @@ ip6_input(m)
#if NCARP > 0
if (m->m_pkthdr.rcvif->if_type == IFT_CARP &&
- m->m_pkthdr.rcvif->if_flags & IFF_LINK0 &&
ip6->ip6_nxt != IPPROTO_ICMPV6 &&
carp_lsdrop(m, AF_INET6, ip6->ip6_src.s6_addr32,
ip6->ip6_dst.s6_addr32))
@@ -552,7 +551,6 @@ ip6_input(m)
#if NCARP > 0
if (m->m_pkthdr.rcvif->if_type == IFT_CARP &&
- m->m_pkthdr.rcvif->if_flags & IFF_LINK0 &&
ip6->ip6_nxt == IPPROTO_ICMPV6 &&
carp_lsdrop(m, AF_INET6, ip6->ip6_src.s6_addr32,
ip6->ip6_dst.s6_addr32))
diff --git a/sys/netinet6/nd6_nbr.c b/sys/netinet6/nd6_nbr.c
index 6168ed52a84..aaa5ceccab4 100644
--- a/sys/netinet6/nd6_nbr.c
+++ b/sys/netinet6/nd6_nbr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: nd6_nbr.c,v 1.46 2007/12/09 21:24:58 hshoexer Exp $ */
+/* $OpenBSD: nd6_nbr.c,v 1.47 2008/02/05 22:57:31 mpf Exp $ */
/* $KAME: nd6_nbr.c,v 1.61 2001/02/10 16:06:14 jinmei Exp $ */
/*
@@ -195,7 +195,7 @@ nd6_ns_input(m, off, icmp6len)
#if NCARP > 0
if (ifp->if_type == IFT_CARP) {
ifa = (struct ifaddr *)in6ifa_ifpwithaddr(ifp, &taddr6);
- if (ifa && !carp_iamatch6(ifp, ifa))
+ if (ifa && !carp_iamatch6(ifp, lladdr, &proxydl))
ifa = NULL;
} else {
ifa = (struct ifaddr *)in6ifa_ifpwithaddr(ifp, &taddr6);