Created attachment 26225 [details] asm+ssm join test program When an SSM IP_ADD_SOURCE_MEMBERSHIP is done after an ASM IP_ADD_MEMBERSHIP join on the same group(& same interface) the setsockopt operation should return EINVAL. The linux implementation returns successfull https://www3.tools.ietf.org/html/rfc3678#section-4.1.3 I attached an simple C test program.
I found the discussion about my bug on mailinglist archive, its a pitty that I haven't subscribed the list, so I cant easily reply, here is my endorse: :-) One Problem of this behaviour should be: - Process 1 subscribes to the ASM Group => an IGMP-Exclude-Packet will be send - Process 2 subscribes to the SSM Group => an IGMP-Include Packet will be send, this would filter all multicast traffic from the Group except from SSM IP-address. The ASM-process wont receive data from the whole multicast group instead also only the data from the SSM Sender. Returning an Error on the ssm join would at least inform the user about this situation
I tried to reproduce my last comment on kernel 2.6.35-23 and it dont act like described. Seems that I made an mistake on my last test with an older kernel. The 2. Process/Socket will trigger another IGMP-Exclude on the group instead of an include. It only works like described when the ASM & SSM join are done on the same socket.