summaryrefslogtreecommitdiffstats
path: root/sys/netinet/in_proto.c
diff options
context:
space:
mode:
authorhsu <hsu@FreeBSD.org>2003-08-07 18:16:59 +0000
committerhsu <hsu@FreeBSD.org>2003-08-07 18:16:59 +0000
commit22b74d7669536646fea2e19cfe101635b524360a (patch)
tree19b3069300529d15575ed4e6985a8ef6a20ac290 /sys/netinet/in_proto.c
parent29ad90976fa4c99c230bbbf38945d03bb662bfd7 (diff)
downloadFreeBSD-src-22b74d7669536646fea2e19cfe101635b524360a.zip
FreeBSD-src-22b74d7669536646fea2e19cfe101635b524360a.tar.gz
1. Basic PIM kernel support
Disabled by default. To enable it, the new "options PIM" must be added to the kernel configuration file (in addition to MROUTING): options MROUTING # Multicast routing options PIM # Protocol Independent Multicast 2. Add support for advanced multicast API setup/configuration and extensibility. 3. Add support for kernel-level PIM Register encapsulation. Disabled by default. Can be enabled by the advanced multicast API. 4. Implement a mechanism for "multicast bandwidth monitoring and upcalls". Submitted by: Pavlin Radoslavov <pavlin@icir.org>
Diffstat (limited to 'sys/netinet/in_proto.c')
-rw-r--r--sys/netinet/in_proto.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/sys/netinet/in_proto.c b/sys/netinet/in_proto.c
index 47c8b24..8199df8 100644
--- a/sys/netinet/in_proto.c
+++ b/sys/netinet/in_proto.c
@@ -36,6 +36,7 @@
#include "opt_ipdivert.h"
#include "opt_ipx.h"
+#include "opt_mrouting.h"
#include "opt_ipsec.h"
#include "opt_inet6.h"
@@ -57,6 +58,9 @@
#include <netinet/ip_var.h>
#include <netinet/ip_icmp.h>
#include <netinet/igmp_var.h>
+#ifdef PIM
+#include <netinet/pim_var.h>
+#endif
#include <netinet/tcp.h>
#include <netinet/tcp_timer.h>
#include <netinet/tcp_var.h>
@@ -216,6 +220,14 @@ struct protosw inetsw[] = {
&rip_usrreqs
},
#endif
+#ifdef PIM
+{ SOCK_RAW, &inetdomain, IPPROTO_PIM, PR_ATOMIC|PR_ADDR|PR_LASTHDR,
+ pim_input, 0, 0, rip_ctloutput,
+ 0,
+ 0, 0, 0, 0,
+ &rip_usrreqs
+},
+#endif /* PIM */
/* raw wildcard */
{ SOCK_RAW, &inetdomain, 0, PR_ATOMIC|PR_ADDR,
rip_input, 0, 0, rip_ctloutput,
@@ -260,4 +272,6 @@ SYSCTL_NODE(_net_inet, IPPROTO_RAW, raw, CTLFLAG_RW, 0, "RAW");
#ifdef IPDIVERT
SYSCTL_NODE(_net_inet, IPPROTO_DIVERT, divert, CTLFLAG_RW, 0, "DIVERT");
#endif
-
+#ifdef PIM
+SYSCTL_NODE(_net_inet, IPPROTO_PIM, pim, CTLFLAG_RW, 0, "PIM");
+#endif
OpenPOWER on IntegriCloud