Subject: Re: [core] [Technical Errata Reported] RFC7252 (4946)

From: Carsten Bormann <[email-masked]>
Date: Thu, 16 Mar 2017 07:17:19 +0100

Adding a little background to this errata (extracted from https://github.com/core-wg/coap-tcp-tls/issues/124 — coap-tcp-tls-07 has the same issue):

Fragment identifiers are not used in a transfer protocol; their use is a local matter on the client side. The mistake we made in RFC 7252 is providing ABNF that doesn't show fragment identifiers at all in the URI syntax. While CoAP as a protocol does not care about them, they are intended to be allowed in CoAP URIs so they can indeed be used on the client side. The note in Section 5.10.1 of RFC 7252 mentions this, but the ABNF does not reflect that:

»Note: Fragments ([RFC3986], Section 3.5) are not part of the request URI and thus will not be transmitted in a CoAP request.«

Does it matter? The meaning of fragment identifiers is defined by the media type. So far, there has been little use of fragment identifiers in the media types being used with CoAP. Now, SenML actually does go ahead and defines a meaning for them, and other media types in the future might as well. So it would be good if the ABNF in the CoAP standards did not give the impression fragment identifiers cannot be used at all with CoAP URIs.

Grüße, Carsten

> On 22 Feb 2017, at 20:13, RFC Errata System <[email-masked]> wrote:
> 
> The following errata report has been submitted for RFC7252,
> "The Constrained Application Protocol (CoAP)".
> 
> --------------------------------------
> You may review the report below and at:
> http://www.rfc-editor.org/errata_search.php?rfc=7252&eid=4946
> 
> --------------------------------------
> Type: Technical
> Reported by: Klaus Hartke <[email-masked]>
> 
> Section: 6.1
> 
> Original Text
> -------------
> coap-URI = "coap:" "//" host [ ":" port ] path-abempty [ "?" query ]
> 
> Corrected Text
> --------------
> coap-URI = "coap:" "//" host [ ":" port ] path-abempty [ "?" query ]
>               [ "#" fragment ]
> 
> Notes
> -----
> The optional fragment component allows for indirect identification of a secondary resource, as defined in Section 3.5 of RFC 3986. The fragment identifier is separated from the rest of the URI prior to a dereference; fragment identifiers are processed client-side and are not included in CoAP requests. The original text shows the syntax of coap:// URIs _after_ separating the fragment identifier, which leaves ambiguity as to whether fragment identifiers are supported or not. The corrected text shows the syntax of CoAP URIs _before_ separating the fragment identifier, which makes clear that fragment identifiers are supported.
> 
> Instructions:
> -------------
> This erratum is currently posted as "Reported". If necessary, please
> use "Reply All" to discuss whether it should be verified or
> rejected. When a decision is reached, the verifying party  
> can log in to change the status and edit the report, if necessary. 
> 
> --------------------------------------
> RFC7252 (draft-ietf-core-coap-18)
> --------------------------------------
> Title               : The Constrained Application Protocol (CoAP)
> Publication Date    : June 2014
> Author(s)           : Z. Shelby, K. Hartke, C. Bormann
> Category            : PROPOSED STANDARD
> Source              : Constrained RESTful Environments APP
> Area                : Applications
> Stream              : IETF
> Verifying Party     : IESG
>