diff options
author | hsu <hsu@FreeBSD.org> | 2003-08-07 18:16:59 +0000 |
---|---|---|
committer | hsu <hsu@FreeBSD.org> | 2003-08-07 18:16:59 +0000 |
commit | 22b74d7669536646fea2e19cfe101635b524360a (patch) | |
tree | 19b3069300529d15575ed4e6985a8ef6a20ac290 /sys/netinet/in_proto.c | |
parent | 29ad90976fa4c99c230bbbf38945d03bb662bfd7 (diff) | |
download | FreeBSD-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.c | 16 |
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 |