United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-6529807 : Can't get data send to Linux IPv6 link-local address

Details
Type:
Bug
Submit Date:
2007-03-01
Status:
Closed
Updated Date:
2012-03-22
Project Name:
JDK
Resolved Date:
2009-10-30
Component:
core-libs
OS:
generic
Sub-Component:
java.net
CPU:
generic
Priority:
P3
Resolution:
Won't Fix
Affected Versions:
6
Fixed Versions:

Related Reports
Relates:
Relates:

Sub Tasks

Description
When investigating CR 6521014 & 6521974, it is found that if a Linux box sends to its own link-local address some data, it can't receive those data. A native Linux application has been developed then. Although it proves that this is a Linux platform problem, not a java one, the issue still need to be tracked. This CR will track the progress about it.

                                    

Comments
EVALUATION

There are two specific issues described by this bug. Both are bugs in the Linux kernel and cause two separate JCK tests to fail.

DatagramSocket: fixed in kernel versions greater than 2.6.18.1
Socket:         fixed in kernel versions greater than 2.6.12

I verified that both of the JCK test pass on kernel versions greater than the ones listed above.
                                     
2009-10-30
EVALUATION

It *is* because of Linux kernel bug. TCP half of the problem has been fixed in 2.6.12-rc2. See changelog:
    http://www.kernel.org/pub/linux/kernel/v2.6/testing/ChangeLog-2.6.12-rc2
It reads:
	[IPV6]: Fix address/interface handling according to the scoping architecture
	
	I think this has been there for long time (maybe since 2.4...).
	
	With the following patch, I can connect local link-local address.
	- Change incoming interface according to the scoping architecture
	- Choose source address on appropriate interface, according to the
	  scoping architecture.

And UDP portion has been recorded in Linux kernel bug database:
    http://bugzilla.kernel.org/show_bug.cgi?id=7432
synopsis "Using Link-local address, IPv6 udp Client and Server running on a same host won't communication".
                                     
2007-06-21
WORK AROUND

On receiving side, bind to IPv6 wildcard address 0::0 instead of link-local address.
                                     
2007-03-01



Hardware and Software, Engineered to Work Together