Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 13 Apr 2006 07:32:14 +0100
From:      Bruce M Simpson <bms@spc.org>
To:        Stephen Clark <Stephen.Clark@seclark.us>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: IP_MAX_MEMBERSHIPS
Message-ID:  <20060413063214.GA94628@spc.org>
In-Reply-To: <443DB8A5.1020006@seclark.us>
References:  <443DB8A5.1020006@seclark.us>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Apr 12, 2006 at 10:34:13PM -0400, Stephen Clark wrote:
> Can anyone tell me why the maximum number of members in a multicast 
> group is set at
> 20?
> Are there issues with increasing this number?

Why would one wish to join more than 20 groups on a single socket?

I realize making such a statement leaves me wide open to the charge of
640KB being enough for anyone, but...

This limit in no way affects multicast routing, btw. Based on my reading
of the code...

This is a per-socket limit. The structures to support per-socket multicast
group membership are simple linked lists or statically allocated arrays.
The reason for this is so as not to break the ABI for struct ip_moptions
which has been present since 4.4BSD.

Changing this structure to not use the static allocation would probably
break your kernel for modules compiled without such a change. Also there
are IGMP timers involved.

The other poster who replied is probably talking about a per-interface-card
limit to do with the multicast hash filter on most Ethernet cards - this
is a hard limit, and the driver/hardware has to either support multicast
promiscuous mode (IFF_ALLMULTI) or be able to support full promiscuous mode
(which may not work correctly with IP forwarding in my experience).

Patches to refactor kernel multicast system gladly accepted!

Regards,
BMS

P.S. Someone was meant to be porting IGMPv3/SSM but there were licensing
issues with Apple.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060413063214.GA94628>