Re: [core] Iotdir last call review of draft-ietf-core-senml-etch-05

Ari Keränen <ari.keranen@ericsson.com> Sun, 08 September 2019 18:57 UTC

Return-Path: <ari.keranen@ericsson.com>
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 C5AE6120813; Sun, 8 Sep 2019 11:57:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level:
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FROM_EXCESS_BASE64=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=ericsson.com
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 sqTuUsGYGfzf; Sun, 8 Sep 2019 11:57:55 -0700 (PDT)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130044.outbound.protection.outlook.com [40.107.13.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1D74C120144; Sun, 8 Sep 2019 11:57:55 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MOTDAOz8yXK1k5KyFv6nuXwLz0fi2V2eeWg5ecx/Bule4YgFwjdgmsLvXBG84OWsULMbh6IIl4ErlVJykARNd5RNeHRfagMjcrfvqnzCSi0iaZLdO531F3EVQASNoHqYp7z97vjL9RP+k+4SDLxoSwYIs0tKsvWhkxP3QN3Ka54orrKycR6R15b6+2hGE+0Q4b8y7Od5FJqu/OmMWKKEkL9DPbCg0OnPDtYJffrKx3xwXK/WPZeBqLR2sn3lXpIEMNI7iMhZyIOx9pBnjAMpzYGRK71kT4Ne8dsjshkKiVQigEg/SQ2raftUJGmGarYFA8cpr3jHfCc7BkhQSV3GSw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SWTQ1Y9tipjjrLgXS8/I/iqVzXK2FHNzx9doEE0iZHY=; b=INt4I4HectWq7VBVVOk+meqBrOpfx6YF7m9h/VnawTpA51L2SlkMnvWo5uA4Y4hv6LqH9ISs0EfsTCUSuIJ57rWy/NmitD21GjSm2uq5jIBTzkmn4+EeaXxS2h0vCqMCdwH3MkhEli0Sw2JBUpkaK39RfXa9RRVCTcNoHQDuMVe3UlIUH9V8/k4GV313lNeNvaljgkE0+wbV05sNsIXS/VKTX1ixNLeAAxGMBf5ScNnZQzY+A/0U9uGR+1p86HbYOUu2v7b20WZndxdk6l2sn84/ioVLO43s9B90RNc/KRxsphBrLgvkcIIqMxTy2/QNwybLusAI1xusbvaGGfadsg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SWTQ1Y9tipjjrLgXS8/I/iqVzXK2FHNzx9doEE0iZHY=; b=pWsKdWpTZpZicFy8neP4xtctkaBnpdPZyw5/c0qW8bZ1nrw5SSbUSfju0nzw+fHkxGMvelv5FjBf/meFYhSBLOIGXocCOtLeLJnQfSEaS3cDOGwlaMgN3kIc22Qkhe41oqcvNQ33XqfRhVSSgOePKZlW+K5YWfXjusSuaH+R+Ts=
Received: from HE1PR07MB4236.eurprd07.prod.outlook.com (20.176.166.145) by HE1PR07MB4363.eurprd07.prod.outlook.com (20.176.167.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2263.7; Sun, 8 Sep 2019 18:57:50 +0000
Received: from HE1PR07MB4236.eurprd07.prod.outlook.com ([fe80::ac70:36ee:cd9c:614e]) by HE1PR07MB4236.eurprd07.prod.outlook.com ([fe80::ac70:36ee:cd9c:614e%6]) with mapi id 15.20.2263.005; Sun, 8 Sep 2019 18:57:50 +0000
From: Ari Keränen <ari.keranen@ericsson.com>
To: Matthias Kovatsch <ietf@kovatsch.net>
CC: "Iot-dir@ietf.org" <Iot-dir@ietf.org>, "ietf@ietf.org" <ietf@ietf.org>, "core@ietf.org" <core@ietf.org>, "draft-ietf-core-senml-etch.all@ietf.org" <draft-ietf-core-senml-etch.all@ietf.org>
Thread-Topic: Iotdir last call review of draft-ietf-core-senml-etch-05
Thread-Index: AQHVYY90C0by5tfzwEGda53GFOLD+KcgXnoA
Date: Sun, 08 Sep 2019 18:57:50 +0000
Message-ID: <9F387997-3F3C-4BF0-836F-27D9CB7BA2CA@ericsson.com>
References: <156742967398.13091.10827676798390937517@ietfa.amsl.com>
Accept-Language: en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/10.1c.0.190812
authentication-results: spf=none (sender IP is ) smtp.mailfrom=ari.keranen@ericsson.com;
x-originating-ip: [2001:14bb:150:480b:5433:ff16:143a:58c5]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: d1068025-9ccb-414d-11ce-08d7348e7289
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600166)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:HE1PR07MB4363;
x-ms-traffictypediagnostic: HE1PR07MB4363:
x-ms-exchange-purlcount: 1
x-microsoft-antispam-prvs: <HE1PR07MB43638FF64DD5A607665879D085B40@HE1PR07MB4363.eurprd07.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 0154C61618
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(376002)(346002)(39860400002)(366004)(396003)(136003)(199004)(189003)(2616005)(2906002)(46003)(256004)(6506007)(14444005)(45080400002)(229853002)(36756003)(6246003)(7736002)(66476007)(85202003)(66946007)(76116006)(66446008)(64756008)(66556008)(6436002)(6116002)(6486002)(71200400001)(54906003)(186003)(8676002)(33656002)(6306002)(14454004)(446003)(71190400001)(102836004)(316002)(486006)(476003)(86362001)(6512007)(25786009)(58126008)(305945005)(85182001)(478600001)(8936002)(53936002)(76176011)(6916009)(5660300002)(4326008)(966005)(81156014)(81166006)(99286004); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR07MB4363; H:HE1PR07MB4236.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: bTuHbPgV6ipaZe9u1kmlnpcyTqj947DqTH6qjgTOM6rUHl7zAY4LIJiGyutRBHdulFkGXL9u+iqDP7LPvBfktYb7TSTgdtnbwBrbun0L8zE731jKu9Sbaq2iaZ8zkcLM3tVEabXOp7lhsBWGcIm/fvcKjNcK25EPjHj16m//MO2JbLWQIJvgyRh8IhyFEGjIP1ml2h9d6I9ALwg+2pjNpXd1VM6TTO7EvbHKG7EGKw+Hd41goHOmEsPDoiEt3/GisPo1x9w2rsblSze8OFwd5HK16oOnSHp4Tua7gRxfPJ2xWr0smuElVR/pfbUswxGz/iN+ecZ7T1UyazsLNocMbPoRtycW9GEeNbc2/qXJlQLwl+H6dkbbWL4ZOGVfKn0ayX8Ez3g2XFucA1rUHRXaXCKbKMXjsg45aHE/ePTiVi8=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-ID: <058C16282E0E53488C7A55E34D69366B@eurprd07.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d1068025-9ccb-414d-11ce-08d7348e7289
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Sep 2019 18:57:50.6321 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 1R+xFkWTd5oOSo4ZyVqEfXkRZOVsx1cqeIBaFVAJ1JxcbiYuUwfd56oO8515cu78fpHg0PFGM/e2z3nWi9ibYYTlJXbZ9VzZc8wFJuLU+Lw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR07MB4363
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/iDxbuCOBEBwoa6H34vfp3-QoEAY>
Subject: Re: [core] Iotdir last call review of draft-ietf-core-senml-etch-05
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: Sun, 08 Sep 2019 18:58:02 -0000

Thank you Matthias for the thorough review! I have prepared a PR to accommodate your comments:
https://github.com/core-wg/senml-etch/pull/9/files

Please see also below comments and discussion on each issue.

> On 2 Sep 2019, at 16.08, Matthias Kovatsch via Datatracker <noreply@ietf.org> wrote:
> 
> Reviewer: Matthias Kovatsch
> Review result: Ready with Nits
[...]
> It would be good to get the help from an expert on Windows Clipboard Formats
> and Macintosh Uniform Type Identifiers, as no good guidelines are available to
> check these IANA considerations. (This issue appears to be recurrent also for
> other specs.)

I agree; I used here the same pattern we used for the SenML RFC (which I think we copied from some older RFC or W3C spec), but indeed better guidance in general would be useful.
 
> ## Technical comments
> 
> * P4 (3.1): I am missing assertions such as "Values in a Fetch Record MUST be
> ignored."

Actually this applies to all fields other than (base)name and time. I added a note to end of 3.1:
"All other Fetch Record fields than name, base name, time, and base time MUST be ignored."

I also noted this difference to SenML (lack of values) in the intro.

>  * What should happen when a Patch Record does not have a value?

Good catch! There should be either value or sum field in all Patch records; otherwise the resulting record would not be valid SenML record. I added following to 3.2: "All Patch Records MUST contain at least a SenML Value or a Sum field.  A Patch Pack with invalid Records MUST be rejected."

I noticed also that the first sentence of 3.2 was a bit misleading; I changed that from "The (i)PATCH method can be used to change the values of SenML Records" to "[...] change the fields of SenML Records".

> * P5 §3: The record must not be added when the value is null. (behavior not
> described formally enough)

Changed this:

OLD: If a Patch Record has a value ("v") field with value null, the matched Record (if any) is removed from the Pack.
NEW: If a Patch Record has a value ("v") field with value null, it MUST NOT be added but the matched Record (if any) is removed from the Target Pack.

I also added definition of Target Pack: "A SenML Pack that is a target for a Fetch or Patch operation."

> * P7: "Windows Clipboard Name" --> Microsoft and for instance HTML spec use
> "Windows Clipboard Format"
>  * Okay, the sting itself is the Windows Clipboard Format Name...

That naming convention was used also by W3C specs (and now SenML RFC) with media type registrations.

>  * The long string with spaces ("SenML FETCH/PATCH format") is a bit weird for
>  this purpose, no?

Spaces seem to be OK here: for example SVG Image has clipboard format name "SVG Image". But if there's better guidance available, I'd be happy to follow that.

>    * I also had the problem to find proper guidelines for Windows Clipboard
>    Formats; are there any?

I'm not aware of any and didn't find any good sources based on quick googling.

>  * No Macintosh Uniform Type Identifier?

There are actually Mac UTIs in sections 6.2 and 6.3.

> ## Additional comment
> 
> * As already discussed with one of the authors, an implication for LwM2M is
> probably that these patch documents must not be used with Executable Resources
> (one might try to execute multiple resources at once with a PATCH method). The
> application of a Patch Pack is then not idempotent anymore. Furthermore, it is
> unclear what the value should be when the LwM2M Executable Resource does not
> take arguments. * If executing multiple resources atomically is an important
> use case, I think we need another iteration to deal with the state vs RPC issue
> ("use PATCH to call function(s) without arguments by giving a new state?!")

Indeed. I'm not aware of use case for using Patch with LwM2M exec resources, but can double check this.
 
> ## Editorial comments
> 
> * P1 §1 (Abstract), P2 last §: "iPATCH, PATCH, and FETCH" --> "FETCH, PATCH,
> and iPATCH"
>  * It is easier on the brain if the order is kept consistent...

Fixed.
 
> * P2 §6: "hence full name" --> "hence the unique identifiers" ?
>  * RFC 8428 does not define or contain "full name", but "globally unique
>  identifier for the resource"

Good point. 8428 also uses simply "name" to refer to the "unique ID that results in the concatenation of the name and base name fields". I think using "name" is less confusing in this context so I would suggest changing "full name" to just "name". But would be great to hear views of others on this too.

> * P3 §1: "The semantics of the ..."
>  * Creates question about semantics for FETCH
>  * Better to reverse sentences and start with "The rest of the document uses
>  the term "(i)PATCH" to refer to both methods, as the semantics of the new
>  media types are the same for the CoAP PATCH and iPATCH methods."

Fixed.
 
> * P3 §1: ", that can be used with the" --> ", which ..."

Fixed.

> * P3 §3: "Also the following ..." --> to many "also", just "The following ..."

Changed to "The following additional terms" to make it clear this adds (and does not contradict) to the previous terms.
 
> * P4 §2 (3.1): "... when resolved, match resolved names" --> "identifiers"
>  * names when resolved are resolved names, hence unclear what is compared
>  * P2 calls them "full names"
>  * See above, should be something like "globally unique identifier for the
>  resource"

To make this more clear I'd suggest adding "..match resolved names in a *Target* SenML Pack". Alternatively we could go for the "(globally) unique IDs" way.

> * P4 §8: Add example for records with name and time

Added.

>  * Would be good to quickly show what "resolved form of records" means

I added a short example of this to the end of the SenML FETCH section: "In resolved form the SenML name in the example above becomes '2001:db8::2/3311/0/5850'. Since there is no base time in the Pack, the time in resolved form is equal to the time in the example."

> * P4 §9 (3.2): Add statement that SenML patch documents are always idempotent,
> hence PATCH and iPATCH are equivalent?
>  * Basically move the last sentence to the beginning and give explanation for
>  "(i)PATCH".

IMHO, moving the last sentence to the beginning would make the flow of the text a bit weird. But I suggest changing the last sentence of the paragraph into: "Application of Patch Packs is idempotent; hence PATCH and iPATCH methods for SenML Packs are equivalent."
 
> * P5 §2: "When the name" --> "When the resolved name" ?

Fixed. 

Thank you once more for the review!


Cheers,
Ari