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 

 * 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.


More information about the freebsd-current mailing list