RFR:8194298 Add support for per Socket configuration of TCP keepalive
Chris Hegarty
chris.hegarty at oracle.com
Mon Apr 23 13:56:35 UTC 2018
On 23/04/18 13:34, Alan Bateman wrote:
> On 23/04/2018 13:05, vyom tewari wrote:
>> Hi,
>>
>> Please find the latest
>> webrev(http://cr.openjdk.java.net/~vtewari/8194298/webrev0.1/index.html).
>> I incorporated most of the review comments.
> This looks much better but I think the second paragraph of the spec of
> each option needs to be inverted so that it states clearly what the
> options does before it gets into the background of SO_KEEPALIVE. For
> example, TCP_KEEPALIVE should say that it sets the idle period for keep
> alive before it explains SO_KEEPALIVE.
Mea culpa, I ordered the paragraphs as they are to be consistent
with TCP_QUICKACK. I don't have any objection if they are reversed.
> The currently wording also begs
> questions as to whether the socket option means anything when
> SO_KEEPALIVE is not enabled.
It's implicit. The option can still be set and its value retrieved.
> Also it probably should say something about
> whether it can be changed at any time or not.
You can set it any time. Of course, it may not be effective
immediately, depending on the exact state of the socket.
We may also want to add a note that the accepted values may
have an upper-bound. For example, the following is the largest
set of values that I can set on my Ubuntu Linux, without an
exception being thrown [*].
TCP_KEEPIDLE = 32767
TCP_KEEPINTERVAL = 32767
TCP_KEEPCOUNT = 127
-Chris.
[*] "java.net.SocketException: Invalid argument" when a given
value is "too" large.
More information about the net-dev
mailing list