[core] Review of draft-ietf-core-comi-09

Klaus Hartke <hartke@projectcool.de> Mon, 13 April 2020 11:04 UTC

Return-Path: <hartke@projectcool.de>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6C2593A13EA for <core@ietfa.amsl.com>; Mon, 13 Apr 2020 04:04:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WObIzJK8uY-X for <core@ietfa.amsl.com>; Mon, 13 Apr 2020 04:04:21 -0700 (PDT)
Received: from wp382.webpack.hosteurope.de (wp382.webpack.hosteurope.de [IPv6:2a01:488:42:1000:50ed:8597::]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 66D053A13E8 for <core@ietf.org>; Mon, 13 Apr 2020 04:04:21 -0700 (PDT)
Received: from mail-qt1-f172.google.com ([209.85.160.172]); authenticated by wp382.webpack.hosteurope.de running ExIM with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) id 1jNwsz-0007BG-8M; Mon, 13 Apr 2020 13:04:17 +0200
Received: by mail-qt1-f172.google.com with SMTP id 71so6715809qtc.12 for <core@ietf.org>; Mon, 13 Apr 2020 04:04:17 -0700 (PDT)
X-Gm-Message-State: AGi0PuYKDvG4cPQZ+eRw7oIqGU4/q+pD/LRRC0xStgHEaBRq04MUrKY6 VF4TUbByltGvtXOIKFCql+3pv7/Z4I6scWQDtFY=
X-Google-Smtp-Source: APiQypKxUt+JYeIVrp8dG+bzK9+W9FUIQK+yy73UhlU74EDgmg6UUBQn/7U5Lw+TdsXZokuope4/RV/P4wxx92Hu4V8=
X-Received: by 2002:ac8:7b27:: with SMTP id l7mr5705616qtu.283.1586775855967; Mon, 13 Apr 2020 04:04:15 -0700 (PDT)
MIME-Version: 1.0
From: Klaus Hartke <hartke@projectcool.de>
Date: Mon, 13 Apr 2020 13:03:40 +0200
X-Gmail-Original-Message-ID: <CAAzbHvbCwoCnwCfGRFtP5aWzCH8WKcp5QCjH9t75ptAkDj0vVg@mail.gmail.com>
Message-ID: <CAAzbHvbCwoCnwCfGRFtP5aWzCH8WKcp5QCjH9t75ptAkDj0vVg@mail.gmail.com>
To: "core@ietf.org WG" <core@ietf.org>
Content-Type: text/plain; charset="UTF-8"
X-bounce-key: webpack.hosteurope.de; hartke@projectcool.de; 1586775861; 3030684e;
X-HE-SMSGID: 1jNwsz-0007BG-8M
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/dwOABtS2IYiT72vaUyvLhOH7NwA>
Subject: [core] Review of draft-ietf-core-comi-09
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 13 Apr 2020 11:04:27 -0000

Section 2.4: The document seems to use the terms "content format" as a
synonym for "content type". A content format is the combination of a
content type (which is the combination of a media type with specific
values for the media type's parameters) with a content coding. An
example for a media type is "text/plain", for a content type
"text/plain;charset=utf-8", and for a content format
"text/plain;charset=utf-8" combined with "gzip". I think you mean
content type, right?

Section 2.4: In the table, all the media types incorrectly have a leading "/".

Section 4: It's not okay to mandate or recommend specific paths like
</c> and </s>. Not even with a lower-cased "recommended". It's fine to
define a path structure after the "root path" of the application and
use an example path in examples, but implementers should not be
restricted or discouraged in any way to choose a different path (see
BCP 190). The best choice is probably to use a long, not very nice
looking path like </path/to/the/data/store/X9?k="eth0">, so that
implementers immediately get the idea to pick a shorter path
themselves :-)

Section 4: The document specifies the API in terms of the CoAP
Uri-Query option a lot. The Uri-Query option is just the way how the
query string of the request URI is encoded in CoAP, though. It would
be better to specify the API in term of query strings and not to
mention the Uri-Query option.

Section 4.1: It's unclear if a client should send the query string
<?k=0> or <?k="0"> (with quotes, as shown in the table) for a Boolean
value.

Section 4.1: It's unclear if the int2str function returns "291" (5
characters) or "291" (3 characters, typographically set in quotes).

Section 4.2.2: It's unclear if a client should send the query string
<?d=t> or <?d= 't'> (with a space and single quotes, as shown in the
indented paragraph).

Section 4.2.3.1: It's unclear why a client needs to send the query
string <?k="eth0"> instead of <?k=eth0>. The table in section 4.1
seems to say that a string `key` is written as `key`, not as `"key"`.
Can a `key` contain `"` characters itself and, if yes, how are those
escaped?

Section 4.5: If I understand this correctly, this enables getting
events by appending these to an internal "log file" and exposing the
latest few entries of the log file as the resource </s>. This resource
can be observed, so that if new entries are appended, the resource
changes its state and the client gets notifications. Correct? It might
be worth pointing out that this scheme does guarantee delivery of all
entries in the log file to the client. It might also be a good idea to
remind implementers of what happens when the size of the last few
entries is greater than the MTU.

Section 4.5: The last paragraph says "To check that the client is
still alive, the server MUST send Confirmable Message periodically."
That's what RFC 7641 already specifies. Please don't make normative
statements that repeat (or contradict) what RFC 7641 says. :-)

Klaus