Re: [apps-discuss] Device URNs

Jari Arkko <jari.arkko@piuha.net> Thu, 23 February 2012 19:39 UTC

Return-Path: <jari.arkko@piuha.net>
X-Original-To: apps-discuss@ietfa.amsl.com
Delivered-To: apps-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C25EC21F8692 for <apps-discuss@ietfa.amsl.com>; Thu, 23 Feb 2012 11:39:43 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.54
X-Spam-Level:
X-Spam-Status: No, score=-102.54 tagged_above=-999 required=5 tests=[AWL=0.059, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id r4hTkKlxprrS for <apps-discuss@ietfa.amsl.com>; Thu, 23 Feb 2012 11:39:43 -0800 (PST)
Received: from p130.piuha.net (p130.piuha.net [IPv6:2001:14b8:400::130]) by ietfa.amsl.com (Postfix) with ESMTP id 52EDC21F868A for <apps-discuss@ietf.org>; Thu, 23 Feb 2012 11:39:42 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by p130.piuha.net (Postfix) with ESMTP id 435C62DA06; Thu, 23 Feb 2012 21:39:41 +0200 (EET)
X-Virus-Scanned: amavisd-new at piuha.net
Received: from p130.piuha.net ([127.0.0.1]) by localhost (p130.piuha.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yMoRPiuPuQmI; Thu, 23 Feb 2012 21:39:40 +0200 (EET)
Received: from [127.0.0.1] (p130.piuha.net [IPv6:2a00:1d50:2::130]) by p130.piuha.net (Postfix) with ESMTP id 5F1B62CC3C; Thu, 23 Feb 2012 21:39:40 +0200 (EET)
Message-ID: <4F4695FB.5090607@piuha.net>
Date: Thu, 23 Feb 2012 21:39:39 +0200
From: Jari Arkko <jari.arkko@piuha.net>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20120129 Thunderbird/10.0
MIME-Version: 1.0
To: Peter Saint-Andre <stpeter@stpeter.im>
References: <4F463F5C.7020104@piuha.net> <4F4685DC.6080801@stpeter.im> <4F46861E.6030001@stpeter.im>
In-Reply-To: <4F46861E.6030001@stpeter.im>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Cc: Cullen Jennings <fluffy@cisco.com>, General discussion of application-layer protocols <apps-discuss@ietf.org>
Subject: Re: [apps-discuss] Device URNs
X-BeenThere: apps-discuss@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: General discussion of application-layer protocols <apps-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/apps-discuss>
List-Post: <mailto:apps-discuss@ietf.org>
List-Help: <mailto:apps-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 23 Feb 2012 19:39:43 -0000

Peter,

First, it looks like I should have posted to the URN list (I did not remember one existed... shows how much I know :-)

In any case, here's what the draft says about UUIDs:

    Universally Unique IDentifier (UUID) URNs [RFC4122] are another
    alternative way for representing device identifiers, and already
    support MAC addresses as one of type of an identifier.  However,
    UUIDs can be inconvenient in environments where it is important that
    the identifiers are as simple as possible and where additional
    requirements on stable storage, real-time clocks, and identifier
    length can be prohibitive.  UUID-based identifiers are recommended
    for all general purpose uses when MAC addresses are available as
    identifiers.  The device URN defined in this memo is recommended for
    constrained environments.

But to put this into more concrete terms, I have a problem with the way the UUID RFC requires me to handle time. I could be reading the RFC wrong; I'd be happy to be corrected.

The first problem is that it requires the existence of a clock and in practice requires the existence of stable storage, which may not exist on all types of platforms. But perhaps those issues are solvable. The more serious practical problem is that I want to use devices manufactured with standard hardware identifiers, which I can note at the time of manufacturing and then correlate that information with the whatever the message the device is sending later. For instance, device HW address is printed on the box, I install the device somewhere, when I get a message from the device later I'll know that it came from that particular "somewhere". If the device needs to boot up and generate a UUID with random or time-dependent components, this matching is harder.

I think there are ways around these things with UUIDs. You could manufacture devices with UUIDs burned into them and print them on the box. But that would set a requirement on them that current devices and manufacturing processes do not have. If I want to use off-the-shelf tiny ethernet-based sensor platforms they don't come with UUIDs burned in. (And while I'm mostly representing myself with these requirements, they seem pretty common when I talk to various industry players. We have a large we-manage-your-iot-devices-for-you business at my day job; those folks very much want to see a model where you never have to touch, configure, power up, or boot the device in any way before it is put out there in the field. All the intelligence about what devices does what is in the servers somewhere.)

But I could be missing something, of course.

Jari