Subject: [DNSOP] Brian Haberman's Discuss on draft-ietf-dnsop-edns-tcp-keepalive-04: (with DISCUSS)

From: "Brian Haberman" <[email-masked]>
Date: Mon, 04 Jan 2016 10:18:16 -0800

Brian Haberman has entered the following ballot position for
draft-ietf-dnsop-edns-tcp-keepalive-04: Discuss

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)

Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.

The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-dnsop-edns-tcp-keepalive/

----------------------------------------------------------------------
DISCUSS:
----------------------------------------------------------------------

I support the publication of this document, but I have a point I want to
discuss to help with the clarity of the spec.

Section 3.2.1 says that clients send this option with the first query
sent on a TCP connection and Section 3.2.2 says it should honor the
timeout provided by the server and close the socket when appropriate.
What is not discussed is how the client should manage the timer with
respect to the reception of multiple query responses that may, or may
not, include edns-tcp-keepalive option. Section 3.3.2 says the server MAY
send the option, so it is up to the server to decide when to include the
option and the corresponding timeout value. Should the client's timer
simply reflect the value sent in the latest response? The smallest
remaining time?

I think a few sentences on client timer management would be beneficial.

---

From: Sara Dickinson <[email-masked]>
Date: Tue, 5 Jan 2016 17:08:42 +0000

> On 4 Jan 2016, at 18:18, Brian Haberman <[email-masked]> wrote:
> 

Hi, 

Thanks for the feedback. The intention in section 3.2.2 was that the client should update the timeout whenever receiving a new value in any response. Would it be enough to clarify by changing the last sentence in the second paragraph to:

  “It SHOULD honour the timeout received in that response (overriding any previous timeout) and
   initiate close of the connection before the timeout expires.”

Regards

Sara.

---

From: Brian Haberman <[email-masked]>
Date: Tue, 5 Jan 2016 13:00:10 -0500

Hi Sara,

>> Section 3.2.1 says that clients send this option with the first
>> query sent on a TCP connection and Section 3.2.2 says it should
>> honor the timeout provided by the server and close the socket when
>> appropriate. What is not discussed is how the client should manage
>> the timer with respect to the reception of multiple query responses
>> that may, or may not, include edns-tcp-keepalive option. Section
>> 3.3.2 says the server MAY send the option, so it is up to the
>> server to decide when to include the option and the corresponding
>> timeout value. Should the client's timer simply reflect the value
>> sent in the latest response? The smallest remaining time?
>> 
> Thanks for the feedback. The intention in section 3.2.2 was that the
> client should update the timeout whenever receiving a new value in
> any response. Would it be enough to clarify by changing the last
> sentence in the second paragraph to:
> 
> “It SHOULD honour the timeout received in that response (overriding
> any previous timeout) and initiate close of the connection before the
> timeout expires.”

Yes, the above would make it clearer on how the client manages the
timeout value.

I will clear the DISCUSS based on the proposed change above.

On an unrelated note, why is the inclusion of this option, when
supported, only a MAY in 3.3.2? I would think that if the option is
supported and enabled, its inclusion would be a SHOULD.

Regards,
Brian