Subject: [core] Review comments on draft-ietf-core-coap-pubsub-05

From: Jim Schaad <[email-masked]>
Date: Sun, 22 Jul 2018 13:11:57 -0700

1.  Welcome to the world of how CoAP defined resolving of URIs.   RFC 6690
either did not do a good job of explaining things or got them wrong.  There
is a special case for /.well-known/core in terms of how the resolution of
links are done.  As I understand things if you do this

GET /ps?rt="temperature"

And get back in the content

</ps/currentTemp>;rt="temperature";ct=50

When you ask for the resource you will look in the following address

GET /ps/ps/currentTemp

This is because the URI is resolved against the origin of the target URI and
not against just the authority part of the target URI.  Note that this is
the case for /.well-known/core.  

I don't know how you want to address this.  I am not sure that anybody has
actually implemented what the RFC says, but I also don't know if anything
other than /.well-known/core and the RD have used this feature.  RD "gave
up" and said that everything returned is going be resolved by the RD before
sending it back.

2.  It is well defined that one can not create a multiple level new topic
using POST to a topic.  It is not clear if one is allowed to have more than
one item in the link format description for a CREATE operation.

POST /ps/ "<topic1>;ct=50,<topic2>;ct=40"

3.  In section 4.3 in the discussion of garbage collection.  If the broker
does not retain the most recently published value, what is the correct
response to return in a subscribe/read request?  Is this to be treated as if
the Max-Age had been exceeded?

These are just from reading the document.  I have not yet gotten to the
point of trying to update my implementation.

Jim

---

From: Klaus Hartke <[email-masked]>
Date: Sun, 22 Jul 2018 22:47:10 +0200

> When you ask for the resource you will look in the following address

Is this really true? I didn't read RFC 6690 for a very long time,
but this would be really surprising. From a quick glance at RFCs
6690/3986/6454 I would assume the following:

* Reference resolution has two inputs: a URI reference to resolve and
a base URI [RFC 3986, Section 5.2].

* Since the above link does not have an anchor parameter, the base URI
is the origin of the target URI [RFC 6690, Section 2.1].

* Assuming the target URI is <coap://example.com/ps?rt="temperature">,
then the origin of the target URI is the triple ("coap",
"example.com", 5683) [RFC 6454, Section 4].

* This presumably means that the base URI is <coap://example.com:5683/> [??].

* Resolving </ps/currentTemp> against <coap://example.com:5683/>
results in <coap://example.com:5683/ps/currentTemp> [RFC 3986, Section
5.2].

Klaus