Request for review and commit of PIM patches
Pavlin Radoslavov
pavlin at icir.org
Wed Apr 23 02:25:15 PDT 2003
All,
For quite some time I have been maintaining the IPv4 PIM kernel
patches for *BSD, and I'd like to request for their inclusion in
FreeBSD-current (and hopefully in the forthcoming 5.2 release).
At high level, the patches include the following:
1. Basic PIM kernel support
(similar to the support that has been already added to other UN*X
flavors, including IPv6 from KAME, though the other
implementations were based on an early version of those patches :))
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. Few bug fixes to the existing multicast code.
3. Added support for advanced multicast API setup/configuration and
extensibility.
4. Added support for kernel-level PIM Register encapsulation.
5. Implemented a mechanism for "multicast bandwidth monitoring and
upcalls".
6. Pulled-out the IP fragmentation code from ip_output() into
a new function ip_fragment().
This is basically same change that was done back in November 2002,
but later was reversed-back due to its non-urgency at the time:
http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/netinet/ip_output.c?rev=1.171&content-type=text/x-cvsweb-markup
The motivation for the additional changes on top of the basic PIM
support is because of various limitations of the basic support.
All those additional changes are completely backward
compatible (both at the API and the binary level), so the new
features will be used only if the user-level program explicitly
tries to enable them.
The patches against FreeBSD-current as of April 23, 2003 are
available from:
http://www.icir.org/pavlin/.private/pim/pim_freebsd_current_20030423.tar.gz
The details about the changes are described in the README file. The
README contains also installation information.
Please let me know if you have any questions.
Thank you,
Pavlin Radoslavov
Part of this work has been supported by the XORP project at ICSI
http://www.xorp.org/
Acknowledgments:
- Ahmed Helmy (USC) for the original PIM patches.
- George Edmond Eddy (Rusty) (then at ISI) for various code
modifications.
- Hitoshi Asaeda (WIDE Project) for various modifications and
porting to other *BSD flavors.
- Andrew Adams (NextHop) for various suggestions and feedbacks.
- Chris Brown (NextHop) for various feedbacks and for the co-design
of the advanced multicast API setup/configuration.
- Luigi Rizzo (U. of Pisa and ICSI) for the code audition back in
November 2002.
- All users who were brave enough to try those patches when
they were still evolving.
More information about the freebsd-net
mailing list