summaryrefslogtreecommitdiffstats
path: root/sys/netinet/in_proto.c
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2005-02-22 13:04:05 +0000
committerglebius <glebius@FreeBSD.org>2005-02-22 13:04:05 +0000
commite1d22638d0a8257ed01b7f95d1b6d5cef74ebd07 (patch)
tree120bc2567ed859da022499edb1691fa4c7bdd908 /sys/netinet/in_proto.c
parenta986ceef8da1f3c7f37ca981d799c33b3e6ae3f2 (diff)
downloadFreeBSD-src-e1d22638d0a8257ed01b7f95d1b6d5cef74ebd07.zip
FreeBSD-src-e1d22638d0a8257ed01b7f95d1b6d5cef74ebd07.tar.gz
Add CARP (Common Address Redundancy Protocol), which allows multiple
hosts to share an IP address, providing high availability and load balancing. Original work on CARP done by Michael Shalayeff, with many additions by Marco Pfatschbacher and Ryan McBride. FreeBSD port done solely by Max Laier. Patch by: mlaier Obtained from: OpenBSD (mickey, mcbride)
Diffstat (limited to 'sys/netinet/in_proto.c')
-rw-r--r--sys/netinet/in_proto.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/sys/netinet/in_proto.c b/sys/netinet/in_proto.c
index 9ae32c4..103682f 100644
--- a/sys/netinet/in_proto.c
+++ b/sys/netinet/in_proto.c
@@ -35,6 +35,7 @@
#include "opt_ipsec.h"
#include "opt_inet6.h"
#include "opt_pf.h"
+#include "opt_carp.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -90,6 +91,10 @@
#include <net/if_pfsync.h>
#endif
+#ifdef DEV_CARP
+#include <netinet/ip_carp.h>
+#endif
+
extern struct domain inetdomain;
/* Spacer for loadable protocols. */
@@ -237,6 +242,14 @@ struct protosw inetsw[] = {
&rip_usrreqs
},
#endif /* DEV_PFSYNC */
+#ifdef DEV_CARP
+{ SOCK_RAW, &inetdomain, IPPROTO_CARP, PR_ATOMIC|PR_ADDR,
+ carp_input, (pr_output_t*)rip_output, 0, rip_ctloutput,
+ 0,
+ 0, 0, 0, 0,
+ &rip_usrreqs
+},
+#endif /* DEV_CARP */
/* Spacer n-times for loadable protocols. */
IPPROTOSPACER,
IPPROTOSPACER,
@@ -290,3 +303,6 @@ SYSCTL_NODE(_net_inet, IPPROTO_RAW, raw, CTLFLAG_RW, 0, "RAW");
#ifdef PIM
SYSCTL_NODE(_net_inet, IPPROTO_PIM, pim, CTLFLAG_RW, 0, "PIM");
#endif
+#ifdef DEV_CARP
+SYSCTL_NODE(_net_inet, IPPROTO_CARP, carp, CTLFLAG_RW, 0, "CARP");
+#endif
OpenPOWER on IntegriCloud