On 9/8/18 11:49 AM, Andre Naujoks wrote: > On 9/7/18 6:08 PM, David Lloyd wrote: >> On Fri, Sep 7, 2018 at 6:56 AM Andre Naujoks <nauts...@gmail.com> wrote: >>> On 9/7/18 1:15 PM, Alan Bateman wrote: >>>> On 07/09/2018 10:49, Decke, Hendrik (K-GERFA/A) wrote: >>>>> >>>>> Hello, >>>>> >>>>> it seems one of our external developers (Andre Naujoks, CC) found a >>>>> bug while binding a IPv6 multicast UDP-socket for one of our projects. >>>>> >>>>> >>>>> >>>>> Since this seems to be a fundamental bug (from our perspective), we >>>>> address this directly to this mailing list. >>>>> >>>>> (reproducible in OpenJDK 8-11, Windows and Linux) >>>>> >>>> This bug was submitted this week on this issue: >>>> https://bugs.openjdk.java.net/browse/JDK-8210493 >>>> >>>> Have you tried joining the mullticast group, specifying the network >>>> interface, rather than binding to the multicast address? >>> >>> Hi Alan. >>> >>> First of all, thank you for the quick reply. I was not aware, that there >>> was actually a bug opened for that issue. >>> >>> The join is not the problem at this point. We need to bind the socket to >>> the address to avoid receiving traffic from all multicast groups, that >>> are joined on the system. Since a join joins the system (not the socket) >>> to the group, all sockets bound to a port, which receive multicast >>> traffic will receive all of that traffic, no matter the destination >>> address. The bind prevents that. IP_MULTICAST_ALL sadly only works for >>> IPv4 and the patch I tried to get IPV6_MULTICAST_ALL upstream into the >>> kernel was even more sadly (almost) ignored. see >>> https://marc.info/?l=linux-netdev&m=152344460530252&w=2 >> >> Hi Andre, >> >> I spoke with a colleague about this kernel patch. They said first of >> all that multicast filtering is pretty complex in the kernel with a >> lot of subtle behaviors. But, they also said that it may have been >> ignored because of the format of the patch, perhaps even >> accidentally/automatically. The proposed patch has an "RFC" tag, and >> such patches apparently need to be in "git-format-patch" mode. >> Lastly, they said that since the time that the post was made, >> IP_MULTICAST_ALL (for IPv4 only of course) has changed a little bit in >> that "it only allows receipt of all multicast groups if a specific >> list of multicast groups has not already been set", so it may need to >> be updated accordingly. FWIW they didn't mention seeing any actual >> problems with the content of the patch, though I'm not sure how >> thoroughly they reviewed it. >> >> So, while I myself am not a Linux kernel contributor, I do suspect >> that if you reposted an updated version of the patch, in the correct >> format, it will enter the patch queue and may be more actively >> discussed. For more information, see [1]. >> >> [1] >> https://www.kernel.org/doc/html/v4.17/process/submitting-patches.html#the-canonical-patch-format >> > > Hi David > > Thanks for the advice. The patch was actually generated with 'git > format-patch' I just added some explanatory text, which I did not see as > part of the commit message. The RFC tag was intentional because I am not > that deeply familiar with the networking code in the kernel to "just > send a patch", if you know what I mean. As far as I know, there is no > automatic handling of those e-mails except for the patchwork stuff. > > I need to take a look at the IP_MULTICAST_ALL changes and see, if there > is anything that needs to be changed in the IPV6_MULTICAST_ALL addition > to accommodate for that. But, as you said, the multicast filtering is > pretty complex. > > I'll try and re-post the patch on Monday, leave out all the extra stuff > and see if it changes anything or at least if it gets any more replies.
I just reposted the patch. Fully automated this time. I couldn't find any changes in the IPv4 handling of the socket option, that was not there, when I first posted it. Lets see, if this has more success. https://marc.info/?l=linux-netdev&m=153656806202701&w=2 Regards Andre > > Regards > Andre >