multicast join problems (source specific)

Mark Geib mark.geib.44@REDACTED
Mon Jan 18 22:20:20 CET 2021


I have a problem when joining more than one source specific multicast group. The first gen_udp:open() works as expected, I start receiving datagrams sent to the specified multicast address, and coming from the specified source. However, in another gen_server if I try to do the same, but on a different multicast and source address, I start receiving the datagrams on both the new socket as well as the first socket and from both multicast groups. The open looks like:

Port = 3100,
Bin = << <<239,0,0,1>>/binary, <<0,0,0,0>>/binary, <<10,0,1,1>>/binary >>,
{ok, _Socket} = gen_udp:open(Port,
                             [binary,
                              {active, true},
                              {reuseaddr, true},
                              {multicast_ttl, 30},
                              {raw, 0, 39, Bin}]), %% 0 - IPPROTO_IP, 39 - IP_ADD_SOURCE_MEMBERSHIP

I am able to join multiple multicasts, non source specific, and receive only datagrams from the correct group by using an open like:

Port = 3100,
{ok, _Socket} = gen_udp:open(Port,
                             [binary,
                              {active, true},
                              {reuseaddr, true},
                              {multicast_ttl, 30},
                              {add_membership, {239,0,0,1}, {0,0,0,0}}]),

Any suggestions or help would be appreciated.

Mark.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20210118/4ee777b1/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 528 bytes
Desc: Message signed with OpenPGP
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20210118/4ee777b1/attachment.bin>


More information about the erlang-questions mailing list