[core] draft-ietf-core-sid-00, SID allocation

peter van der Stok <stokcons@xs4all.nl> Mon, 14 November 2016 00:13 UTC

Return-Path: <stokcons@xs4all.nl>
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 7D81A12953D for <core@ietfa.amsl.com>; Sun, 13 Nov 2016 16:13:13 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.602
X-Spam-Level:
X-Spam-Status: No, score=-2.602 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-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 WbUVEXfcbvZR for <core@ietfa.amsl.com>; Sun, 13 Nov 2016 16:13:11 -0800 (PST)
Received: from lb3-smtp-cloud6.xs4all.net (lb3-smtp-cloud6.xs4all.net [194.109.24.31]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 579201295E4 for <core@ietf.org>; Sun, 13 Nov 2016 16:12:57 -0800 (PST)
Received: from webmail.xs4all.nl ([194.109.20.213]) by smtp-cloud6.xs4all.net with ESMTP id 7cCv1u0054bqPqS01cCvA3; Mon, 14 Nov 2016 01:12:55 +0100
Received: from dhcp-9216.meeting.ietf.org ([31.133.146.22]) by webmail.xs4all.nl with HTTP (HTTP/1.1 POST); Mon, 14 Nov 2016 01:12:55 +0100
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"; format="flowed"
Content-Transfer-Encoding: 7bit
Date: Mon, 14 Nov 2016 01:12:55 +0100
From: peter van der Stok <stokcons@xs4all.nl>
To: Core <core@ietf.org>
Organization: vanderstok consultancy
Mail-Reply-To: consultancy@vanderstok.org
Message-ID: <c39b5765e0554a4832f59395fb481a34@xs4all.nl>
X-Sender: stokcons@xs4all.nl (5RyXOYlVViNl/UTKnvTwHzmecxNLnDou)
User-Agent: XS4ALL Webmail
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/YBGj6kD75fMtXLCQsOhQ7rmXG2I>
Subject: [core] draft-ietf-core-sid-00, SID allocation
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
Reply-To: consultancy@vanderstok.org
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, 14 Nov 2016 00:13:13 -0000

Dear YANG-SID authors,

I want to propose a change to the allocation of SIDs.
Currently, the SIDs are divided in ranges and prospective users can 
register a range with IANA.
When the range is already assigned, they need to select a new not 
allocated range.
I think that this will discourage many future SDOs who may want to use 
YANG + COMI. Many of these SDOs like to figure out the best number 
structure for their uses, and will be very disappointed when they cannot 
acquire the range. Actually, I believe, they will abandon the use of 
YANG + COMI.

My proposal is to assign numbers to modules, and let IANA handle the 
module number registration as proposed for the SIDs. The assignment of 
SIDs to YANG identifiers, as proposed in the draft remains, the same. 
The difference is the complete freedom to choose the SIDs in any given 
module. The advantage is that all modules can pick their values from the 
small number range.

The change is in the discovery and the structure of the resource path. 
In COMI I want to define another resource type called YANG module with 
name core.c.module. The discovery will return the path: 
/prefix/module-number-in-binary64. For example, with an empty prefix and 
for module 32, discovery will return /g. To retrieve a specific YANG 
instance with numeric identifier sid in module 32, the statement GET 
coap/example.com/g/sid will do. With two characters, modules with 
numbers < 4096 are covered; probably 3 characters will cover all 
modules.  Given that the SIDs are small, the total URI size will not 
increase due to this modification.

When the full datastore is accessed, the path /c is currently used. We 
can reserve c, meaning module number 28 is already assigned. Another 
method is returning a long path name, such as /whole_store. The size of 
the related URI is not important in this case. However, the proposed 
module allocation necessitates a small modification to the CBOR 
representation of the contents of the full datastore. This is attained 
by representing the full datastore as a CBOR map containing (key, value) 
pairs, where key is the module number and value is the content of the 
module as specified in yang-cbor document.

For the PATCH and the FETCH methods, this representation will also work, 
given the content-formats that are currently looked at.

I hope you like my proposal. The advantage is a simpler IANA 
administration, SID allocation freedom within a module, and shorter 
SIDs. The disadvantage is a slight complexity increase in the CBOR 
representation of the full datastore.

Hope this helps,

Peter


-- 
Peter van der Stok
vanderstok consultancy
mailto: consultancy@vanderstok.org
www: www.vanderstok.org
tel NL: +31(0)492474673     F: +33(0)966015248