diff options
author | Bruce M Simpson <bms@FreeBSD.org> | 2009-03-19 01:43:03 +0000 |
---|---|---|
committer | Bruce M Simpson <bms@FreeBSD.org> | 2009-03-19 01:43:03 +0000 |
commit | 443fc3176dee8c923a5e1e465231de9dc4197489 (patch) | |
tree | d8c3186aadc92c08ebcc649765a90704c2e1d233 /sys/netinet6/ip6_mroute.h | |
parent | 1975dc405ac942504055db9f8d07d1a39c8e32a9 (diff) | |
download | src-443fc3176dee8c923a5e1e465231de9dc4197489.tar.gz src-443fc3176dee8c923a5e1e465231de9dc4197489.zip |
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
Notes
Notes:
svn path=/head/; revision=190012
Diffstat (limited to 'sys/netinet6/ip6_mroute.h')
-rw-r--r-- | sys/netinet6/ip6_mroute.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/netinet6/ip6_mroute.h b/sys/netinet6/ip6_mroute.h index 0e35e629498e..a0a5e4ad0874 100644 --- a/sys/netinet6/ip6_mroute.h +++ b/sys/netinet6/ip6_mroute.h @@ -212,7 +212,7 @@ struct mif6 { u_quad_t m6_pkt_out; /* # pkts out on interface */ u_quad_t m6_bytes_in; /* # bytes in on interface */ u_quad_t m6_bytes_out; /* # bytes out on interface */ - struct route_in6 m6_route;/* cached route if this is a tunnel */ + struct route_in6 m6_route; /* cached route */ #ifdef notyet u_int m6_rsvp_on; /* RSVP listening on this vif */ struct socket *m6_rsvpd; /* RSVP daemon socket */ |