<div>
                    Additionally, even when both machines have the udp_multicast program running and both were recorded by tcpdump (RPi 3 times), doing:
                </div><div><br></div><div><div><font face="Monaco">$ ping 239.0.0.251</font></div><div><br></div><div>Results in:</div><div><br></div><div><font face="Monaco">PING 239.0.0.251 (239.0.0.251): 56 data bytes</font></div><div><font face="Monaco">64 bytes from 10.128.30.24: icmp_seq=0 ttl=64 time=0.101 ms</font></div><div><font face="Monaco">64 bytes from 10.128.30.24: icmp_seq=1 ttl=64 time=0.079 ms</font></div><div><font face="Monaco">64 bytes from 10.128.30.24: icmp_seq=2 ttl=64 time=0.125 ms</font></div><div><font face="Monaco">64 bytes from 10.128.30.24: icmp_seq=3 ttl=64 time=0.200 ms</font></div><div><font face="Monaco">64 bytes from 10.128.30.24: icmp_seq=4 ttl=64 time=0.047 ms</font></div><div><font face="Monaco">64 bytes from 10.128.30.24: icmp_seq=5 ttl=64 time=0.099 ms</font></div><div><font face="Monaco">64 bytes from 10.128.30.24: icmp_seq=6 ttl=64 time=0.087 ms</font></div></div>
                <div><div><br></div><div>Only one host is replying. RPi isn’t in that group.</div>
                
                
                


<p style="font-family: Helvetica; font-size: 10pt; margin-bottom: 0cm;">
                
                
                


</p><p style="font-family: Helvetica; font-size: 10pt; margin-bottom: 0cm;">
                
                
                


</p><p style="margin-bottom: 0cm;">
                
                
                


</p><p style="margin-bottom: 0cm"><font color="#000000"><font face="Helvetica, sans-serif"><font style="font-size: 9pt">Kind
regards,
<br>Radek
Gruchalski<br>
</font></font></font><font face="Helvetica, sans-serif"><font style="font-size: 9pt"><a href="mailto:radek@gruchalski.com">radek@gruchalski.com</a><a href="mailto:radek@gruchalski.com">
</a></font></font><font color="#0084d1"><font face="Helvetica, sans-serif"><font style="font-size: 9pt"><br></font></font></font><a href="http://de.linkedin.com/in/radgruchalski/"><font color="#0084d1"><font face="Helvetica, sans-serif"><font style="font-size: 9pt">de.linkedin.com/in/radgruchalski/</font></font></font></a><font color="#000000"><font face="Helvetica, sans-serif"><font style="font-size: 9pt"><br><br></font></font></font><font color="#878787"><font face="Helvetica, sans-serif"><font style="font-size: 8pt"><b>Confidentiality:<br></b></font></font></font><font color="#878787"><font face="Helvetica, sans-serif"><font style="font-size: 8pt">This
communication is intended for the above-named person and may be
confidential and/or legally privileged.<br>If it has come to you in
error you must take no action based on it, nor must you copy or show
it to anyone; please delete/destroy and inform the sender
immediately.</font></font></font></p></div>
                 
                <p style="color: #A0A0A8;">On Saturday, 16 May 2015 at 19:31, Rad Gruchalski wrote:</p>
                <blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;">
                    <span><div><div>
                <div>
                    Hi Peter,
                </div><div><br></div><div>Thank you for your suggestions. I’m getting somewhere but not exactly sure where to, yet.</div><div><br></div><div>I’m running this on RPi:</div><div><br></div><div><font face="Monaco">tcpdump -i eth0 igmp</font></div><div><br></div><div>When I join multicast group from my dev box, I get the following in the tcpdump output:</div><div><br></div><div><font face="Monaco">19:16:48.370585 IP drone…..<a href="http://german-fiber.net">german-fiber.net</a> > 239.0.0.251: igmp v2 report 239.0.0.251</font></div><div><br></div><div>When I join with the RPi itself, I see:</div><div><br></div><div><div><font face="Monaco">19:18:15.245935 IP raspberrypi…..<a href="http://german-fiber.net">german-fiber.net</a> > <a href="http://igmp.mcast.net">igmp.mcast.net</a>: igmp v3 report, 1 group record(s)</font></div><div><font face="Monaco">19:18:16.035929 IP raspberrypi…..<a href="http://german-fiber.net">german-fiber.net</a> > <a href="http://igmp.mcast.net">igmp.mcast.net</a>: igmp v3 report, 1 group record(s)</font></div></div><div><br></div><div>I read is that Ubuntu/Debian IGMP default version is 3. OS X (which the host is), defaults to 3 as well:</div><div><br></div><div><div><font face="Monaco">$ sysctl net.inet.igmp.default_version</font></div><div><font face="Monaco">net.inet.igmp.default_version: 3</font></div></div><div><br></div><div>Erlang (?) for whatever reason announces multicast with version 2 from OS X but version 3 on Raspbian. The weird thing is that I also get double join.</div><div><br></div><div>I tried changing the IGMP version on Raspbian to 2 by using:</div><div><br></div><div><font face="Monaco">echo “2” > /proc/sys/net/ipv4/conf/eth0/force_igmp_version</font></div><div><br></div><div>After the change, RPi join looks like this:</div><div><br></div><div><div><font face="Monaco">19:24:14.115945 IP raspberrypi…..<a href="http://german-fiber.net">german-fiber.net</a> > 239.0.0.251: igmp v2 report 239.0.0.251</font></div><div><font face="Monaco">19:24:14.395920 IP raspberrypi…..<a href="http://german-fiber.net">german-fiber.net</a> > 239.0.0.251: igmp v2 report 239.0.0.251</font></div><div><font face="Monaco">19:24:19.185936 IP raspberrypi…..<a href="http://german-fiber.net">german-fiber.net</a> > 239.0.0.251: igmp v2 report 239.0.0.251</font></div></div><div><br></div><div>For whatever reason there are 3 joins. I’m not quite sure where the problem is. It would appear that Erlang add_membership is IGMPv2? Or would that be handled by the kernel? If it is handled by the kernel, why is it not v3 as suggested by OS X sysctl default? Following on that one, why would this behaviour be different on Raspbian?</div><div>
                        
                        
                        


<p style="font-family: Helvetica; font-size: 10pt; margin-bottom: 0cm;">
                        
                        
                        


</p><p style="font-family: Helvetica; font-size: 10pt; margin-bottom: 0cm;">
                        
                        
                        


</p><p style="margin-bottom: 0cm;">
                        
                        
                        


</p><p style="margin-bottom: 0cm"><font color="#000000"><font face="Helvetica, sans-serif"><font style="font-size: 9pt">Kind
regards,
<br>Radek
Gruchalski<br>
</font></font></font><font face="Helvetica, sans-serif"><font style="font-size: 9pt"><a href="mailto:radek@gruchalski.com">radek@gruchalski.com</a><a href="mailto:radek@gruchalski.com">
</a></font></font><font color="#0084d1"><font face="Helvetica, sans-serif"><font style="font-size: 9pt"><br></font></font></font><a href="http://de.linkedin.com/in/radgruchalski/"><font color="#0084d1"><font face="Helvetica, sans-serif"><font style="font-size: 9pt">de.linkedin.com/in/radgruchalski/</font></font></font></a><font color="#000000"><font face="Helvetica, sans-serif"><font style="font-size: 9pt"><br><br></font></font></font><font color="#878787"><font face="Helvetica, sans-serif"><font style="font-size: 8pt"><b>Confidentiality:<br></b></font></font></font><font color="#878787"><font face="Helvetica, sans-serif"><font style="font-size: 8pt">This
communication is intended for the above-named person and may be
confidential and/or legally privileged.<br>If it has come to you in
error you must take no action based on it, nor must you copy or show
it to anyone; please delete/destroy and inform the sender
immediately.</font></font></font></p></div>
                  
                <p style="color: #A0A0A8;">On Saturday, 16 May 2015 at 16:05, Peter Membrey wrote:</p><blockquote type="cite"><div>
                    <span><div><div><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000"><div>Hi Max,<br></div><div><br data-mce-bogus="1"></div><div>I'm afraid I don't have a direct answer for your problem, but here's some things that might help you track it down.<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>First, after running your Erlang listener run the following command:<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>$ netstat -g<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>This will show you all of the multicast groups that you are subscribing to and on which interface. Make sure that you see the group you care about in that list.<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>If it is in that list, then start a tcpdump session on that interface as root and take a look at what goes on the wire i.e:<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div># tcpdump -i <interface name> port <multicast dest port><br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div># tcpdump -i eth0 port 10000<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>This lot will tell you if your Pi is looking for multicast and whether or not they're hitting the Pi itself. In other words this should help you isolate the problem.<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>In addition you can try:<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div># tcpdump -i eth0 igmp<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>Which should (I'm going from memory) isolate all igmp traffic. You should see packets sent when you join and leave a group. So if you start this command first, then start your Erlang app, you should see an IGMP join going out.<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>Hope some of this helps!<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>Kind Regards,<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>Peter Membrey<br data-mce-bogus="1"></div><div><br></div><hr data-marker="__DIVIDER__"><div data-marker="__HEADERS__"><b>From: </b>"Rad Gruchalski" <<a href="mailto:radek@gruchalski.com">radek@gruchalski.com</a>><br><b>To: </b>"Max Lapshin" <<a href="mailto:max.lapshin@gmail.com">max.lapshin@gmail.com</a>><br><b>Cc: </b>"erlang questions" <<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a>><br><b>Sent: </b>Saturday, 16 May, 2015 21:30:13<br><b>Subject: </b>Re: [erlang-questions] UDP multicast on Raspberry Pi<br></div><br><div data-marker="__QUOTED_TEXT__"><div>
                    Unfortunately, I get exactly the same result.
                </div><br><div>No data received on RPi when using multicast group.</div><div>It’s very strange as data published over multicast from RPi arrives at the destination. Only RPi isn’t getting any data.</div><div>Just to make sure I was not having any general UDP issues - this is is the no multicast server running on RPi:</div><br><div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">-module(udp_nomulticast).</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco"><br></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">-behaviour(gen_server).</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco"><br></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">-export([start_link/0, stop/0]).</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">-export([init/1, handle_call/3, handle_cast/2, handle_info/2, code_change/3, terminate/2]).</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco"><br></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">start_link() -></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">  gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco"><br></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">stop() -> gen_server:cast(?MODULE, stop).</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco"><br></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">init([]) -></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">  Port = 6666,</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">  IfaceIp = {0,0,0,0},</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">  {ok, OverlaySocket} = gen_udp:open(Port, [ binary,</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">                                             {ip, IfaceIp} ] ),</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">  { ok, OverlaySocket }.</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco"><br></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">handle_info({udp, _ClientSocket, _ClientIp, _ClientPort, Msg}, State) -></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">  error_logger:info_msg("Received multicast data: ~p", [ Msg ]),</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">  {noreply, State}.</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco"><br></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">handle_call( _, _From, State) -></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">  { reply, ok, State }.</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco"><br></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">code_change(_OldVsn, State, _Extra) -></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">  {ok, State}.</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco"><br></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">terminate(_, _) -></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">  ok.</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco"><br></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">handle_cast(stop, LoopData) -></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">  {noreply, LoopData}.</span></div></div><br><div>And the client sending to it from the dev box (RPi IP on the local network is 10.128.30.23):</div><br><div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">-module(nmcc).</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco"><br></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">-export([run/0]).</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco"><br></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">run() -></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">  Port = 6666,</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">  IfaceIp = {0,0,0,0},</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">  RPiIp = {10,128,30,23},</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">  {ok, OverlaySocket} = gen_udp:open(Port, [ binary,</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">                                             {ip, IfaceIp} ] ),</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">  gen_udp:send( OverlaySocket, RPiIp, Port, <<"some random datas">> ),</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">  gen_udp:close( OverlaySocket ).</span></div></div><br><div>This is arriving just fine:</div><br><div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">pi@raspberrypi ~ $ erl</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">Erlang/OTP 17 [erts-6.4] [source] [smp:4:4] [async-threads:10] [kernel-poll:false]</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco"><br></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">Eshell V6.4  (abort with ^G)</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">1> c("udp_nomulticast").</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">{ok,udp_nomulticast}</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">2> udp_nomulticast:start_link().</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">{ok,<0.40.0>}</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">3></span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">=INFO REPORT==== 16-May-2015::15:05:35 ===</span></div><div><span style="font-family: Monaco;" data-mce-style="font-family: Monaco;" face="Monaco">Received multicast data: <<"some random datas”>></span></div></div><br><div>I’m often jumping too fast to conclusions but I genuinely believe this could be some Erlang related problem but I am not sure how to diagnose it.</div><br><div>I tried multiple combinations, binding the server to {0,0,0,0} or multicast IP, different multicast groups. Result is always the same, traffic not arriving at RPi when using multicast UDP. What’s the best way to elevate? File a bug?</div><div>
                                
                                
                                


<p style="font-family: Helvetica; font-size: 10pt; margin-bottom: 0cm;">
                                
                                
                                


</p><p style="font-family: Helvetica; font-size: 10pt; margin-bottom: 0cm;">
                                
                                
                                


</p><p style="margin-bottom: 0cm;">
                                
                                
                                


</p><p style="margin-bottom: 0cm"><span style="color: #000000;" data-mce-style="color: #000000;" color="#000000"><span style="font-family: Helvetica,sans-serif;" data-mce-style="font-family: Helvetica,sans-serif;" face="Helvetica, sans-serif"><span style="font-size: 9pt;" data-mce-style="font-size: 9pt;">Kind
regards,
<br>Radek
Gruchalski<br>
</span></span></span><span style="font-family: Helvetica,sans-serif;" data-mce-style="font-family: Helvetica,sans-serif;" face="Helvetica, sans-serif"><span style="font-size: 9pt;" data-mce-style="font-size: 9pt;"><a href="mailto:radek@gruchalski.com" target="_blank">radek@gruchalski.com</a><a href="mailto:radek@gruchalski.com" target="_blank">
</a></span></span><span style="color: #0084d1;" data-mce-style="color: #0084d1;" color="#0084d1"><span style="font-family: Helvetica,sans-serif;" data-mce-style="font-family: Helvetica,sans-serif;" face="Helvetica, sans-serif"><span style="font-size: 9pt;" data-mce-style="font-size: 9pt;"><br></span></span></span><a href="http://de.linkedin.com/in/radgruchalski/" target="_blank"><span style="color: #0084d1;" data-mce-style="color: #0084d1;" color="#0084d1"><span style="font-family: Helvetica,sans-serif;" data-mce-style="font-family: Helvetica,sans-serif;" face="Helvetica, sans-serif"><span style="font-size: 9pt;" data-mce-style="font-size: 9pt;">de.linkedin.com/in/radgruchalski/</span></span></span></a><span style="color: #000000;" data-mce-style="color: #000000;" color="#000000"><span style="font-family: Helvetica,sans-serif;" data-mce-style="font-family: Helvetica,sans-serif;" face="Helvetica, sans-serif"><span style="font-size: 9pt;" data-mce-style="font-size: 9pt;"><br><br></span></span></span><span style="color: #878787;" data-mce-style="color: #878787;" color="#878787"><span style="font-family: Helvetica,sans-serif;" data-mce-style="font-family: Helvetica,sans-serif;" face="Helvetica, sans-serif"><span style="font-size: 8pt;" data-mce-style="font-size: 8pt;"><b>Confidentiality:<br></b></span></span></span><span style="color: #878787;" data-mce-style="color: #878787;" color="#878787"><span style="font-family: Helvetica,sans-serif;" data-mce-style="font-family: Helvetica,sans-serif;" face="Helvetica, sans-serif"><span style="font-size: 8pt;" data-mce-style="font-size: 8pt;">This
communication is intended for the above-named person and may be
confidential and/or legally privileged.<br>If it has come to you in
error you must take no action based on it, nor must you copy or show
it to anyone; please delete/destroy and inform the sender
immediately.</span></span></span></p></div>
                   
                <p style="color: #A0A0A8;">On Saturday, 16 May 2015 at 08:25, Max Lapshin wrote:</p><blockquote style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;">
                    <span><div><div><div dir="ltr"><div>Replace  <span style="font-family:Monaco;font-size:12.8000001907349px">{ip, MulticastIp},  with </span><span style="font-family:Monaco;font-size:12.8000001907349px">{ip, IfaceIp},</span></div></div>
</div></div></span>
                   
                   
                   
                   
                </blockquote><div>
                    <br>
                </div>
<br>_______________________________________________<br>erlang-questions mailing list<br><a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br><a href="http://erlang.org/mailman/listinfo/erlang-questions">http://erlang.org/mailman/listinfo/erlang-questions</a><br></div></div></div><div><div>_______________________________________________</div><div>erlang-questions mailing list</div><div><a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a></div><div><a href="http://erlang.org/mailman/listinfo/erlang-questions">http://erlang.org/mailman/listinfo/erlang-questions</a></div></div></div></span>
                  
                  
                  
                  
                </div></blockquote><div>
                    <br>
                </div>
            </div></div></span>
                 
                 
                 
                 
                </blockquote>
                 
                <div>
                    <br>
                </div>