RFR(S): JDK-8151444 JDP not working on some windows configurations

Dmitry Samersoff dmitry.samersoff at oracle.com
Wed Mar 23 11:51:38 UTC 2016


Yasumasa,

  We have at least two problems with explicit setting of IP_MULTICAST_IF
that I can reproduce in-house.[1]

  Source address of IP packet should match the interface we are using
and network configuration can be changed while Java app is running i.e.
after the point we are setting interface flags.

  So existing code is incorrect, and I decide to remove it.

  If we need to reliably send broadcast to all available interfaces,
code have to be more complicated than just setting IP_MULTICAST_IF on
jdp start.
  We probably need to check the state of available interfaces
periodically and launch separate JdpBroadcaster for each interface.

  I'm not sure we should add such complication to Jdp.
  Sorry!

* * *
1. Below is Linux/tcpdump output in one of test configurations:
eth0 192.168.0.77 connected to LAN, wlan0 172.16.2.100 is not connected
to anything.

*Default settings:*

dooku:hs-rt#tcpdump -n -i eth0 port 7095

IP 192.168.0.77.35874 > 224.0.23.178.7095: UDP, length 262

dooku:hs-rt#tcpdump -n -i wlan0 port 7095

<no packets>

*IP_MULTICAST_IF set explicitly for both eth0 and wlan0*

dooku:hs-rt#tcpdump -n -i eth0 port 7095

IP 172.16.2.100.44921 > 224.0.23.178.7095: UDP, length 262

dooku:hs-rt#tcpdump -n -i wlan0 port 7095

IP 172.16.2.100.42919 > 224.0.23.178.7095: UDP, length 262

-Dmitry




On 2016-03-23 02:18, Yasumasa Suenaga wrote:
> Hi Dmitry,
> 
> Does your change work on Linux multi-homed environment?
> The code which you remove is added at JDK-8057556.
> 
>   http://mail.openjdk.java.net/pipermail/serviceability-dev/2014-September/015504.html
> 
> DiagramChannel which is used in JDPBroadcaster tries to send JDP packet
> through all "UP" NICs.
> However, NIC which is controlled by NetworkManager seems to be still "UP"
> when ifdown command is executed.
> (It seems to be removed IP address from NIC only.)
> 
> I cannot check your change because I destroyed environment for reproduce.
> Did you check your change on Linux multi-homed (and NetworkManager is active)
> environment?
> 
> 
> Thanks,
> 
> Yasumasa
> 
> 
> On 2016/03/22 20:51, Dmitry Samersoff wrote:
>> Everybody,
>>
>> Please review the fix:
>>
>> http://cr.openjdk.java.net/~dsamersoff/JDK-8151444/webrev.01/
>>
>> Removed code attempts to set IP_MULTICAST_IF to enforce sending of JDP
>> packets to all available interfaces. It doesn't work on some multi-homed
>> windows configurations.
>>
>> Also fixed minor bug in testcase.
>>
>> -Dmitry
>>
>>
>>


-- 
Dmitry Samersoff
Oracle Java development team, Saint Petersburg, Russia
* I would love to change the world, but they won't give me the sources.


More information about the serviceability-dev mailing list