Re: [core] 🔔 WGLC on draft-ietf-core-coap-senml

Peter Saint-Andre - Filament <peter@filament.com> Thu, 20 July 2017 23:12 UTC

Return-Path: <peter@filament.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 BC23A127599 for <core@ietfa.amsl.com>; Thu, 20 Jul 2017 16:12:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level:
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=filament-com.20150623.gappssmtp.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 xvdx_8xzB5Ni for <core@ietfa.amsl.com>; Thu, 20 Jul 2017 16:12:02 -0700 (PDT)
Received: from mail-it0-x232.google.com (mail-it0-x232.google.com [IPv6:2607:f8b0:4001:c0b::232]) (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 131571243F3 for <core@ietf.org>; Thu, 20 Jul 2017 16:12:02 -0700 (PDT)
Received: by mail-it0-x232.google.com with SMTP id h199so155011ith.1 for <core@ietf.org>; Thu, 20 Jul 2017 16:12:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=filament-com.20150623.gappssmtp.com; s=20150623; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=VMDK+Way5gsbURu61dxPQ58c/kFsACJ4OdeIPpJ9x3o=; b=DJ4GuPlcvVNANKYwHkJ4N/bynyB2ctSK0JArrErWTmQZnmlXw05Tvkg79B6q6etsh0 ARe/njtcZ663fheNmfQ3zw0e0KPZr7Hjw2TcUDPVZPvsCZc1FvSJDo9biGi4KXwQuJbO ZcCPuUyW42n5d05SSXIHk2M+57MgY+eyAa12juzbhkzrkb3NpSMSOvelRP8otPrSNez6 lW70WjdPsJ3p135qTry9ESR69HxuzYzuMVxGYICIDQMojtC1tnN+070w+e59zeGrJgKy J+4ql4xH6oS52X48Im3ptcWGdwbOKI8V9Mdk53maLIaoKnirGZS9L946gj56/MHQQVY/ Ywkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=VMDK+Way5gsbURu61dxPQ58c/kFsACJ4OdeIPpJ9x3o=; b=BxdC8q3Lyns8hQIGgHLEcLC3iHIzHB+WoUlqJwDcSznPmfsnmzaiPrk1pry83xvs3U 5B49+ZyYrR55iuYHq8qboTyynK1nFNcBFX8Jw0ikykdIM/Bj6JgudBBUtflbmDA7H40b wp/dYkWseA/MU4o7bSsVhsQds7Z2wyXebi/C0ju+T3vS79xf1ANSQs95UdgfA8lDOFoX Es+Iez14R/u6S9HrcmNg4pmeMT9ZzFXz4grymLql4G1Y/EwF2uFWc3g80SW8Nzf3HBDi 3g8se1EJaTu7mggo1f1PAMslkjiZrZGTQ2QxXKK3VgOTBJv21dPH93bagMMMHifpbwHM 5blA==
X-Gm-Message-State: AIVw110V7p6evDPtWFFkNS2uhhPa/USd9tE5fdkgYHgeOyMeCiHvezq9 /eFgAeEiC9i18Gie
X-Received: by 10.36.22.17 with SMTP id a17mr5352362ita.40.1500592321303; Thu, 20 Jul 2017 16:12:01 -0700 (PDT)
Received: from aither.local ([2601:282:4202:67d3:dc2d:4b2e:14fc:6687]) by smtp.gmail.com with ESMTPSA id z84sm4181itc.32.2017.07.20.16.11.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 20 Jul 2017 16:12:00 -0700 (PDT)
To: Ari Keränen <ari.keranen@ericsson.com>
References: <5BAB706B-110D-4711-A62E-5980030F241F@ericsson.com> <a51a5b55-7787-beb9-59c0-62724490c79e@filament.com> <5559A4D7-0D55-403D-A3C7-527942640A15@ericsson.com> <1243a4c8-5ce6-642e-faf3-5dda093d13df@filament.com> <5AA558F8-BD20-4871-806B-251155922C56@ericsson.com> <96c526a2-aa7f-5ec3-6e5d-13562b3a8310@filament.com> <CB55E424-B2C8-4FA3-933A-FAF81D796597@ericsson.com>
Cc: core <core@ietf.org>
From: Peter Saint-Andre - Filament <peter@filament.com>
Message-ID: <c4b2718f-31b0-3ada-291f-21373dc07639@filament.com>
Date: Thu, 20 Jul 2017 17:11:57 -0600
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <CB55E424-B2C8-4FA3-933A-FAF81D796597@ericsson.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/IkY3d90vLLW9x0d8F9jkn9lz4KA>
Subject: Re: [core] 🔔 WGLC on draft-ietf-core-coap-senml
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.22
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: Thu, 20 Jul 2017 23:12:04 -0000

On 7/20/17 4:36 PM, Ari Keränen wrote:
> 
>> On 19 Jul 2017, at 16.31, Peter Saint-Andre - Filament
>> <peter@filament.com> wrote:
>> 
>> On 7/19/17 6:45 AM, Ari Keränen wrote:

<snip/>

> OK. The urn:dev is now progressing in CoRE so I guess we can do the
> allocation for that and move forward with it.

Excellent!

>>>>>> Please note that this set is more restricted than the range
>>>>>> of characters allowed for URIs in general (RFC 3986) or
>>>>>> URNs in particular (RFC 8141). At the least it would be
>>>>>> helpful to point this out, because AFAICS it will limit the
>>>>>> URI schemes or URN namespaces that can be used.
>>>>> 
>>>>> Good point. I'd suggest text:
>>>>> 
>>>>> "Note that the character set for SenML names is a subset of
>>>>> the characters allowed in URIs. The restricted set was chosen
>>>>> to enable efficient and safe use of names in various systems
>>>>> (e.g., as database keys)."
>>>> 
>>>> I suggest that we also say something like "The restrictions
>>>> imply that care needs to be taken in the choice of URIs or URNs
>>>> as SenML names." Furthermore, if someone wants to use a URI
>>>> scheme that allows characters outside that set (e.g., the 'tag'
>>>> scheme), then do those characters need to be encoded somehow?
>>>> (Ick.) If not, then we should say so.
>>> 
>>> One should not try to put "full URIs" into the names. Rather the
>>> names can be used as part of a URI.
>> 
>> I'm confused. What I see in the draft right now is that names
>> (whether "Name" or "Base Name + Name" = concatenated name) are
>> URIs, with URIs from the URN scheme used as examples. Is that a
>> misunderstanding on my part?
> 
> URIs that conform to the restricted character set ("A" to "Z", "a" to
> "z", "0" to "9", "-", ":", ".", "/", "_"), such as urn:dev, are OK.
> For example URL with brackets would not be OK (see section 5.1.6 for
> example with IPv6 address).

So I'll repeat my concern: How do we handle such URLs? Are they forbidden?

If they are not forbidden, do characters like brackets get escaped
somehow? (I hope we don't go down that road.)

If they are forbidden, then most URI schemes and URN namespaces won't be
usable. For example, URIs schemes such as 'tag' (RFC 4151) and 'ni' (RFC
6920) don't conform to the restricted character set, and there are
characters allowed in URN syntax (e.g., '@', '%', '?', '[', ']', '#',
'~', '+', '=', '&') that don't conform either. Thus it might even be
misleading to say that names are URIs because so few URI schemes or URN
namespaces can be employed here. We might need to say something like this...

OLD

   The Name value is concatenated to the Base Name value to get the name
   of the sensor.  The resulting name needs to uniquely identify and
   differentiate the sensor from all others.  It is RECOMMENDED that the
   full names are represented as URIs [RFC3986] or URNs [RFC2141].  One
   way to create a unique name is to include some bit string that has
   guaranteed uniqueness (such as a 1-wire address) that is assigned to
   the device.  Some of the examples in this draft use the device URN
   type as specified in [I-D.arkko-core-dev-urn].  UUIDs [RFC4122] are
   another way to generate a unique name.  Note that long-term stable
   unique identifiers are problematic for privacy reasons and should be
   used with care or avoided as described in [RFC7721].

   The resulting concatenated name MUST consist only of characters out
   of the set "A" to "Z", "a" to "z", "0" to "9", "-", ":", ".", "/", or
   "_" and it MUST start with a character out of the set "A" to "Z", "a"
   to "z", or "0" to "9".  This restricted character set was chosen so
   that these names can be directly used as in other types of URI
   including segments of an HTTP path with no special encoding and can
   be directly used in many databases and analytic systems.  [RFC5952]
   contains advice on encoding an IPv6 address in a name.

NEW

   The Name value is concatenated to the Base Name value to yield the
   name of the sensor.  The resulting concatenated name needs to
   uniquely identify and differentiate the sensor from all others.
   The concatenated name MUST consist only of characters out of the set
   "A" to "Z", "a" to "z", "0" to "9", "-", ":", ".", "/", and "_";
   furthermore, it MUST start with a character out of the set "A" to
   "Z", "a" to "z", or "0" to "9".  This restricted character set was
   chosen so that concatenated names can be used directly within
   various URI schemes (including segments of an HTTP path with no
   special encoding) and can be used directly in many databases and
   analytic systems.  [RFC5952] contains advice on encoding an IPv6
   address in a name.

   Although it is RECOMMENDED that concatenated names are represented
   as URIs [RFC3986] or URNs [RFC8141], the restricted character set
   specified above puts strict limits on the URI schemes and URN
   namespaces that can be used.  As a result, implementers need to take
   care in choosing the naming scheme for concatenated names, because
   such names both need to be unique and need to conform to the
   restricted character set.  One approach is to include a bit
   string that has guaranteed uniqueness (such as a 1-wire address).
   Another, shown in some of the examples within this document, is to
   use the device URN namespace as specified in
   [I-D.arkko-core-dev-urn].  A third approach is to use UUIDs
   [RFC4122].  Unfortunately, the restricted character set does not
   allow the use of some URI schemes that might otherwise be
   attractive, such as the 'tag' scheme [RFC4151] and the 'ni' scheme
   [RFC6920].  Note also that long-term, stable, unique identifiers are
   problematic for privacy reasons and should be used with care or
   avoided entirely as described in [RFC7721].

>>> Perhaps something we should be more clear about.
>> 
>> Yes, clarity would be good.
> 
> Will add clarification about the URIs.

See above for proposed text.

>>> Now: https://github.com/core-wg/senml-spec/issues/73
>>> 
>>>>>> Section 4.6
>>>>>> 
>>>>>> Up to this point in the document, SenML has been defined as
>>>>>> a format for representing sensor measurements. Given that a
>>>>>> sensor measures something in the world, what does it mean
>>>>>> to *set* the value of a sensor or a sensor measurement?
>>>>> 
>>>>> I guess this needs to be elaborated also in the intro (it's
>>>>> hinted in the abstract).
>>>> 
>>>> That's the barest of hints. :-) I almost provided a comment
>>>> about it, but let it go.
>>> 
>>> Admittedly :) Do you have any proposal how to make it better?
>> 
>> One option is to remove the configuration and actuation use cases.
>> They seem to be an afterthought. Perhaps define them more carefully
>> in a separate I-D that re-uses SenML, thus not holding up the core
>> SenML work any further.
>> 
>> If people really want to support these use cases now and in the
>> core spec, then I can suggest improvements to the text.
> 
> There is already use for these so I think we should include the
> functionality in the base spec.

OK, I will take a closer look at the text and propose some improvements.

Peter