On Mon, Apr 17, 2006 at 10:14:58PM +0200, Patrick McHardy ([EMAIL PROTECTED]) wrote: > Evgeniy Polyakov wrote: > > On Mon, Apr 17, 2006 at 05:35:04PM +0200, Patrick McHardy ([EMAIL > > PROTECTED]) wrote: > > > >>This seems to be a misunderstanding, subscribing to groups using bind() > >>is kept for compatibility and doesn't use group numbers but bitmasks. > > > > > > So groups less than 32 are considered as bitmask, and other groups as > > group numbers, and there is no way to have them consistent and behave > > like group numbers? > > Not exactly, its not related to the group number. groups used in bind() > are considered as bitmask and groups used for setsockopt are considered > as group numbers. We can't change bind() because this behaviour is > required for compatibility.
So bind and subscribing are almost exclusive and should not be used simultaneously? > > But this introduce some problem with subscribing - if one subscribes to > > group 5 and is bound to the same group it allows to broadcast not only > > to group 5, and those which have the same bits set, but also to group 16 > > (1<<(5-1)), which has nothing in common with the requested group number. > > Only if you use group numbers for bind(), which is plainly wrong. Even if one uses group bitmask at bind time and later subscribes to some group from that bitmask, this will introduce wrong behaviour with unrelated gropus. Maybe we should not allow to subscribe if group bitmask different from 1 was used at bind() time? -- Evgeniy Polyakov - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html