diff options
author | bms <bms@FreeBSD.org> | 2009-03-19 01:43:03 +0000 |
---|---|---|
committer | bms <bms@FreeBSD.org> | 2009-03-19 01:43:03 +0000 |
commit | 76f193cd692e42617fb7f33b9581e7e5a3da58f0 (patch) | |
tree | d8c3186aadc92c08ebcc649765a90704c2e1d233 /sys/modules/ip_mroute_mod | |
parent | be7293a078080bef32e2a64d792bfdfa0c65dead (diff) | |
download | FreeBSD-src-76f193cd692e42617fb7f33b9581e7e5a3da58f0.zip FreeBSD-src-76f193cd692e42617fb7f33b9581e7e5a3da58f0.tar.gz |
Introduce a number of changes to the MROUTING code.
This is purely a forwarding plane cleanup; no control plane
code is involved.
Summary:
* Split IPv4 and IPv6 MROUTING support. The static compile-time
kernel option remains the same, however, the modules may now
be built for IPv4 and IPv6 separately as ip_mroute_mod and
ip6_mroute_mod.
* Clean up the IPv4 multicast forwarding code to use BSD queue
and hash table constructs. Don't build our own timer abstractions
when ratecheck() and timevalclear() etc will do.
* Expose the multicast forwarding cache (MFC) and virtual interface
table (VIF) as sysctls, to reduce netstat's dependence on libkvm
for this information for running kernels.
* bandwidth meters however still require libkvm.
* Make the MFC hash table size a boot/load-time tunable ULONG,
net.inet.ip.mfchashsize (defaults to 256).
* Remove unused members from struct vif and struct mfc.
* Kill RSVP support, as no current RSVP implementation uses it.
These stubs could be moved to raw_ip.c.
* Don't share locks or initialization between IPv4 and IPv6.
* Don't use a static struct route_in6 in ip6_mroute.c.
The v6 code is still using a cached struct route_in6, this is
moved to mif6 for the time being.
* More cleanup remains to be merged from ip_mroute.c to ip6_mroute.c.
v4 path tested using ports/net/mcast-tools.
v6 changes are mostly mechanical locking and *have not* been tested.
As these changes partially break some kernel ABIs, they will not
be MFCed. There is a lot more work to be done here.
Reviewed by: Pavlin Radoslavov
Diffstat (limited to 'sys/modules/ip_mroute_mod')
-rw-r--r-- | sys/modules/ip_mroute_mod/Makefile | 9 |
1 files changed, 0 insertions, 9 deletions
diff --git a/sys/modules/ip_mroute_mod/Makefile b/sys/modules/ip_mroute_mod/Makefile index 3ca0a3dc..141eceb 100644 --- a/sys/modules/ip_mroute_mod/Makefile +++ b/sys/modules/ip_mroute_mod/Makefile @@ -8,21 +8,12 @@ KMOD= ip_mroute SRCS= ip_mroute.c SRCS+= opt_inet.h opt_mac.h opt_mrouting.h opt_route.h -SRCS+= opt_inet6.h - -.if ${MK_INET6_SUPPORT} != "no" -SRCS+= ip6_mroute.c -.endif .if !defined(KERNBUILDDIR) opt_inet.h: echo "#define INET 1" > ${.TARGET} opt_mrouting.h: echo "#define MROUTING 1" > ${.TARGET} -.if ${MK_INET6_SUPPORT} != "no" -opt_inet6.h: - echo "#define INET6 1" > ${.TARGET} -.endif .endif .include <bsd.kmod.mk> |