HEADS UP: Source-specific multicast code committed to tree

Bruce M Simpson bms at incunabulum.net
Tue Jun 12 18:09:08 UTC 2007

Julian Elischer wrote:
>> * 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.
> this seems a but counterintuitive
This particular change only affects UDP.

Strictly speaking, multicast datagrams should only be delivered locally 
to sockets which are members of the multicast group. Source multicast 
makes this definition stricter - multicast datagrams should only be 
delivered if the source is permitted to deliver to the destination.

In the absence of IGMPv3/MLDv2 support from upstream routers, it is 
possible for datagrams from blocked sources to reach the end host. For 
the time being FreeBSD merely enforces these semantics by dropping such 
datagrams. When IGMPv3/MLDv2 support is added, the source filter list is 
relayed to upstream multicast routers whenever it changes, and they 
SHOULD NOT deliver datagrams blocked by source filters to the end host.

Other implementations have done this for many years and it's time 
FreeBSD followed suit. A sysctl to enable the strict behaviour has been 
in place for a few years now. It is preferred by design in a source 
multicast environment.


More information about the freebsd-current mailing list