HEADS UP: Source-specific multicast code committed to tree
Bruce M Simpson
bms at incunabulum.net
Tue Jun 12 16:26:25 UTC 2007
The SSM socket layer has now been committed. This introduces the
protocol-independent multicast socket API specified in RFC 3678.
This does not introduce IGMPv3 or MLDv2 support, although it does make
the necessary header file changes. It is now possible to block and
unblock selected IPv4 multicast sources from within applications, and
this is one step towards bringing the IPv4 code up-to-date with respect
to other operating systems.
* The biggest aspect of the change is that handling of IPv4 multicast
socket options has been moved into its own file, netinet/in_mcast.c.
* Strict socket membership is now the default; the legacy 4.4BSD
behaviour of delivering a multicast datagram to all sockets matching the
4-tuple has been removed.
* struct sockaddr_storage is now referenced from within netinet header
files, therefore the necessary magic to declare it where needed has been
added.
* The code has been regression tested for the existing any-source IPv4
multicast interface.
* __FreeBSD_version has been bumped, and UPDATING updated.
Please read src/UPDATING particularly if you use routed with multicast
routes and point-to-point interfaces as the IP_MULTI_IF hack has been
removed in favour of the 'struct ip_mreqn' solution used in Linux to
specify an interface by index for multicast joins. This is not an issue
in the IPv6 and protocol-independent API.
I have a patch for the Rhyolite routed code however it has not been
committed upstream, it was posted to -net some months ago.
Please let me know if there are any issues.
Regards,
BMS
More information about the freebsd-current
mailing list