Subject: Re: [core] 🔔 WGLC draft-ietf-core-coap-tcp-tls

From: Jaime Jiménez <[email-masked]>
Date: Mon, 13 Mar 2017 14:02:13 +0000

Dear CoRE WG,

we have extended a bit the call as there were few issues left. At this point there aren’t any other issues we will close this call and move the document forward.
Latest version: https://tools.ietf.org/html/draft-ietf-core-coap-tcp-tls-07

Thanks!!
Jaime Jiménez

On 15 Feb 2017, at 14.17, Jaime Jiménez <[email-masked]<mailto:[email-masked]>> wrote:

Dear CoRE WG,

There has been quite some work on the "CoAP (Constrained Application Protocol) over TCP, TLS, and WebSockets” draft (draft-ietf-core-coap-tcp-tls) since the last WGLC.
BIG thanks to Brian for the time and effort dedicated as Editor. It now seems a good time for a final WGLC to get the last comments from the group in order to move the specification forward.

In particular there has not been much discussion on securing CoAP over WebSockets (https://github.com/core-wg/coap-tcp-tls/issues/102) as well as the Default URI host (https://github.com/core-wg/coap-tcp-tls/issues/108) feedback would be very much welcomed. Please go ahead and check the discussions on the other issues of this version: https://github.com/core-wg/coap-tcp-tls/milestone/4?closed=1  and on the changelog summary. In addition to that, I would like to ask the group to let me know their current implementation status of the draft for the shepherd writeup, especially Open Source implementations of the draft.

latest version: https://tools.ietf.org/html/draft-ietf-core-coap-tcp-tls-06
diff: https://tools.ietf.org/rfcdiff?url2=draft-ietf-core-coap-tcp-tls-06.txt
changelog: https://tools.ietf.org/html/draft-ietf-core-coap-tcp-tls-06#appendix-C.4

The WGLC will last one week, until 2017-02-22 .

Thanks!
Jaime Jiménez

---

From: "Dijk, Esko" <[email-masked]>
Date: Tue, 14 Mar 2017 08:47:05 +0000

Jaime & authors,

looking at the recent changes I see only one issue left: the defined behavior of a CoAP endpoint that doesn't implement a CoAP server. The new text states:

If one side does not implement a

           CoAP server, an appropriate error response such as 4.04 (Not Found)

           or 5.01 (Not Implemented) MUST be returned for all CoAP requests from

           the other side.

Requiring with MUST something that's vaguely defined ("such as X or Y") seems a bad idea to me. Besides, when the endpoint would start returning 4.04 then it actually *is* a CoAP server albeit one without any resources. Still it is expected to behave like a CoAP server then – e.g. return 4.02 if an unknown critical option is found in the request, etcetera. To avoid all these issues and to really make clear there is no server at all – i.e. it isn't able to process or validate any request – the following would be much better:

If one side does not implement a

           CoAP server, an error response 5.01 (Not Implemented) MUST be

            returned for all CoAP requests from the other side.

5.01 in this case means the endpoint hasn't implemented any CoAP methods so it clearly signals that there is no CoAP server. And if there is a CoAP server without resources it can start sending 4.04, but that is to me a different case!

best regards

Esko

From: core [mailto:[email-masked]] On Behalf Of Jaime Jiménez
Sent: Monday, March 13, 2017 15:02
To: [email-masked] WG <[email-masked]>
Cc: [email-masked]
Subject: Re: [core] 🔔 WGLC draft-ietf-core-coap-tcp-tls

Dear CoRE WG,

Thanks!!
Jaime Jiménez

Dear CoRE WG,

Thanks!
Jaime Jiménez

________________________________
The information contained in this message may be confidential and legally protected under applicable law. The message is intended solely for the addressee(s). If you are not the intended recipient, you are hereby notified that any use, forwarding, dissemination, or reproduction of this message is strictly prohibited and may be unlawful. If you are not the intended recipient, please contact the sender by return e-mail and destroy all copies of the original message.

---

From: Carsten Bormann <[email-masked]>
Date: Tue, 14 Mar 2017 10:03:09 +0100

Hi Esko,

we didn’t quite feel that we should be restricting the behavior too much.

You are right that

>            or 5.01 (Not Implemented) MUST be returned for all CoAP requests from        

is somewhat self-defeating, because as soon as it sends 4.04s it *does* implement a server, so the MUST no longer applies :-)

>             returned for all CoAP requests from the other side.

And I agree that without the alternatives this is much easier to follow as guidance.
Maybe we can add that the alternative to 5.01 is to implement a mock server that returns 4.04 or 4.02.  So how about separating the MUST from the implementation guidance:

>            CoAP server, an error response MUST be
> The simplest way to do this is to always return 5.01 (Not Implemented); 
> a more elaborate mock server could also return 4.xx responses 
> such as 4.04 or 4.02 where appropriate.

(A mock server that returns 4.02 still has to implement the option parsing for the requests, but that is the same as for the responses and the signaling messages — maybe we should document the minimal behavior for a mock server with 4.02 etc., here or in the newly resurrected lwig-coap draft.)

Grüße, Carsten

---

From: "Dijk, Esko" <[email-masked]>
Date: Tue, 14 Mar 2017 09:16:28 +0000

Hello Carsten,

agree - this separation makes it more clear. And the MUST requirement is also specific now.

Esko

-----Original Message-----
From: Carsten Bormann [mailto:[email-masked]]
Sent: Tuesday, March 14, 2017 10:03
To: Dijk, Esko <[email-masked]>
Cc: Jaime Jiménez <[email-masked]>; [email-masked]; [email-masked] WG <[email-masked]>
Subject: Re: [core] 🔔 WGLC draft-ietf-core-coap-tcp-tls

Hi Esko,

You are right that

And I agree that without the alternatives this is much easier to follow as guidance.
Maybe we can add that the alternative to 5.01 is to implement a mock server that returns 4.04 or 4.02.  So how about separating the MUST from the implementation guidance:

> The simplest way to do this is to always return 5.01 (Not
> Implemented); a more elaborate mock server could also return 4.xx
> responses such as 4.04 or 4.02 where appropriate.

Grüße, Carsten

---

From: Brian Raymor <[email-masked]>
Date: Wed, 15 Mar 2017 20:19:03 +0000

Captured Carsten's update in https://github.com/core-wg/coap-tcp-tls/pull/123

-----Original Message-----
From: Dijk, Esko [mailto:[email-masked]] 
Sent: Tuesday, March 14, 2017 2:16 AM
To: Carsten Bormann <[email-masked]>
Cc: Jaime Jiménez <[email-masked]>; [email-masked]; [email-masked] WG <[email-masked]>
Subject: RE: [core] 🔔 WGLC draft-ietf-core-coap-tcp-tls

Hello Carsten,

Esko

-----Original Message-----
From: Carsten Bormann [mailto:[email-masked]]
Sent: Tuesday, March 14, 2017 10:03
To: Dijk, Esko <[email-masked]>
Cc: Jaime Jiménez <[email-masked]>; [email-masked]; [email-masked] WG <[email-masked]>
Subject: Re: [core] 🔔 WGLC draft-ietf-core-coap-tcp-tls

Hi Esko,

You are right that

Grüße, Carsten