Re: RFR: 8284890: Support for Do not fragment IP socket options [v2]

2022-04-15 Thread Erik Joelsson
On Fri, 15 Apr 2022 11:49:29 GMT, Michael McMahon  wrote:

>> Hi,
>> 
>> Could I get the following PR review please? It adds a new JDK specific 
>> extended socket option
>> called IP_DONTFRAGMENT, which disables IP packet fragmentation in both IPv4 
>> and IPv6
>> UDP sockets (NIO DatagramChannels). For IPv4 in particular, it sets the DF 
>> (Dont Fragment) bit
>> in the IP header. There is no equivalent in the IPv6 packet header as 
>> fragmentation is implemented
>> exclusively by the sending and receiving nodes.
>> 
>> Thanks,
>> Michael
>
> Michael McMahon has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   builds in github action now

Build change looks good.

-

Marked as reviewed by erikj (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/8245


Re: RFR: 8284539: Configure --with-source-date=version fails on MacOS

2022-04-15 Thread Erik Joelsson
On Thu, 14 Apr 2022 16:13:59 GMT, Andrew Leonard  wrote:

> JDK-8282769 added support for more ISO-8601 formats, but remove handling of 
> just a date "-MM-DD" being present, which is the case for a configure 
> using --with-source-date=version which uses the date string from 
> version-numbers.conf.
> Also, the first date parse had an invalid format string "%FZ %TZ", with too 
> many Zs.
> This PR corrects the first date parse to parse a standard ISO-8601 Zulu 
> date&time: "%FT%TZ"
> Then it adds the final check for no time being specified.
> 
> Signed-off-by: Andrew Leonard 

Marked as reviewed by erikj (Reviewer).

make/autoconf/util.m4 line 243:

> 241: # BSD date
> 242: # ISO-8601 date&time in Zulu 'date'T'time'Z
> 243: timestamp=$($DATE -u -j -f "%FT%TZ" "$2" "+%s" 2> /dev/null)

You are removing the space between FT and TZ, I'm just curious why and if that 
is significant.
EDIT: Never mind me, this looks good.

-

PR: https://git.openjdk.java.net/jdk/pull/8247


Re: RFR: 8284890: Support for Do not fragment IP socket options [v2]

2022-04-15 Thread Michael McMahon
On Fri, 15 Apr 2022 10:04:48 GMT, Daniel Jeliński  wrote:

>> Michael McMahon has updated the pull request incrementally with one 
>> additional commit since the last revision:
>> 
>>   builds in github action now
>
> src/jdk.net/windows/native/libextnet/WindowsSocketOptions.c line 73:
> 
>> 71: if (family == AF_INET) {
>> 72: opt = optval;
>> 73: rv = setsockopt(fd, IPPROTO_IP, IP_DONTFRAGMENT, (char *)&opt, 
>> sizeof(int));
> 
> Why do we only use `IPV6_MTU_DISCOVER` but not `IP_MTU_DISCOVER`? As far as I 
> can tell, `IP_DONTFRAGMENT` alone doesn't guarantee that the DF bit will be 
> set.

I did (manually) check that the DF bit is set, though unfortunately, there's no 
straightforward way to test that in the regression test. We could have the same 
construction for AF_INET as AF_INET6 and try IP_MTU_DISCOVER first which won't 
work pre Windows 10/2019. So, I'll make that change.

-

PR: https://git.openjdk.java.net/jdk/pull/8245


Re: RFR: 8284890: Support for Do not fragment IP socket options [v2]

2022-04-15 Thread Michael McMahon
> Hi,
> 
> Could I get the following PR review please? It adds a new JDK specific 
> extended socket option
> called IP_DONTFRAGMENT, which disables IP packet fragmentation in both IPv4 
> and IPv6
> UDP sockets (NIO DatagramChannels). For IPv4 in particular, it sets the DF 
> (Dont Fragment) bit
> in the IP header. There is no equivalent in the IPv6 packet header as 
> fragmentation is implemented
> exclusively by the sending and receiving nodes.
> 
> Thanks,
> Michael

Michael McMahon has updated the pull request incrementally with one additional 
commit since the last revision:

  builds in github action now

-

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/8245/files
  - new: https://git.openjdk.java.net/jdk/pull/8245/files/446dd6cf..14c776b1

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=8245&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=8245&range=00-01

  Stats: 4 lines in 1 file changed: 4 ins; 0 del; 0 mod
  Patch: https://git.openjdk.java.net/jdk/pull/8245.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/8245/head:pull/8245

PR: https://git.openjdk.java.net/jdk/pull/8245


Re: RFR: 8284890: Support for Do not fragment IP socket options

2022-04-15 Thread Michael McMahon
On Fri, 15 Apr 2022 09:19:48 GMT, Daniel Fuchs  wrote:

>> Hi,
>> 
>> Could I get the following PR review please? It adds a new JDK specific 
>> extended socket option
>> called IP_DONTFRAGMENT, which disables IP packet fragmentation in both IPv4 
>> and IPv6
>> UDP sockets (NIO DatagramChannels). For IPv4 in particular, it sets the DF 
>> (Dont Fragment) bit
>> in the IP header. There is no equivalent in the IPv6 packet header as 
>> fragmentation is implemented
>> exclusively by the sending and receiving nodes.
>> 
>> Thanks,
>> Michael
>
> test/jdk/jdk/net/ExtendedSocketOption/DontFragmentTest.java line 40:
> 
>> 38: 
>> 39: public class DontFragmentTest {
>> 40: 
> 
> Should we have a similar test for DatagramSocket / MulticastSocket / 
> DatagramChannel.socket() ?

Good idea

-

PR: https://git.openjdk.java.net/jdk/pull/8245


Re: RFR: 8284890: Support for Do not fragment IP socket options

2022-04-15 Thread Daniel Jeliński
On Thu, 14 Apr 2022 16:04:22 GMT, Michael McMahon  wrote:

> Hi,
> 
> Could I get the following PR review please? It adds a new JDK specific 
> extended socket option
> called IP_DONTFRAGMENT, which disables IP packet fragmentation in both IPv4 
> and IPv6
> UDP sockets (NIO DatagramChannels). For IPv4 in particular, it sets the DF 
> (Dont Fragment) bit
> in the IP header. There is no equivalent in the IPv6 packet header as 
> fragmentation is implemented
> exclusively by the sending and receiving nodes.
> 
> Thanks,
> Michael

src/jdk.net/windows/native/libextnet/WindowsSocketOptions.c line 73:

> 71: if (family == AF_INET) {
> 72: opt = optval;
> 73: rv = setsockopt(fd, IPPROTO_IP, IP_DONTFRAGMENT, (char *)&opt, 
> sizeof(int));

Why do we only use `IPV6_MTU_DISCOVER` but not `IP_MTU_DISCOVER`? As far as I 
can tell, `IP_DONTFRAGMENT` alone doesn't guarantee that the DF bit will be set.

-

PR: https://git.openjdk.java.net/jdk/pull/8245


Re: RFR: 8284890: Support for Do not fragment IP socket options

2022-04-15 Thread Daniel Fuchs
On Thu, 14 Apr 2022 16:04:22 GMT, Michael McMahon  wrote:

> Hi,
> 
> Could I get the following PR review please? It adds a new JDK specific 
> extended socket option
> called IP_DONTFRAGMENT, which disables IP packet fragmentation in both IPv4 
> and IPv6
> UDP sockets (NIO DatagramChannels). For IPv4 in particular, it sets the DF 
> (Dont Fragment) bit
> in the IP header. There is no equivalent in the IPv6 packet header as 
> fragmentation is implemented
> exclusively by the sending and receiving nodes.
> 
> Thanks,
> Michael

test/jdk/jdk/net/ExtendedSocketOption/DontFragmentTest.java line 40:

> 38: 
> 39: public class DontFragmentTest {
> 40: 

Should we have a similar test for DatagramSocket / MulticastSocket / 
DatagramChannel.socket() ?

-

PR: https://git.openjdk.java.net/jdk/pull/8245


RFR: 8284890: Support for Do not fragment IP socket options

2022-04-15 Thread Michael McMahon
Hi,

Could I get the following PR review please? It adds a new JDK specific extended 
socket option
called IP_DONTFRAGMENT, which disables IP packet fragmentation in both IPv4 and 
IPv6
UDP sockets (NIO DatagramChannels). For IPv4 in particular, it sets the DF 
(Dont Fragment) bit
in the IP header. There is no equivalent in the IPv6 packet header as 
fragmentation is implemented
exclusively by the sending and receiving nodes.

Thanks,
Michael

-

Commit messages:
 - fix whitespace errors
 - minor spec update
 - windows 2016 issue
 - windows issue
 - windows update
 - test update
 - updates
 - simplified test. Loosened spec
 - Merge branch 'master' into mtu
 - fixed test
 - ... and 11 more: https://git.openjdk.java.net/jdk/compare/40ddb755...446dd6cf

Changes: https://git.openjdk.java.net/jdk/pull/8245/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=8245&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8284890
  Stats: 437 lines in 11 files changed: 434 ins; 0 del; 3 mod
  Patch: https://git.openjdk.java.net/jdk/pull/8245.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/8245/head:pull/8245

PR: https://git.openjdk.java.net/jdk/pull/8245