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

Alexander Pelov <a@ackl.io> Mon, 14 November 2016 01:45 UTC

Return-Path: <a@ackl.io>
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 8891C129426 for <core@ietfa.amsl.com>; Sun, 13 Nov 2016 17:45:11 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.619
X-Spam-Level:
X-Spam-Status: No, score=-2.619 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01] 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 MwbapfILz1XM for <core@ietfa.amsl.com>; Sun, 13 Nov 2016 17:45:08 -0800 (PST)
Received: from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net [217.70.183.196]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B07E31293EE for <core@ietf.org>; Sun, 13 Nov 2016 17:45:07 -0800 (PST)
Received: from t2001067c037001284d4f9d282a37a2bd.v6.meeting.ietf.org (t2001067c037001284d4f9d282a37a2bd.v6.meeting.ietf.org [IPv6:2001:67c:370:128:4d4f:9d28:2a37:a2bd]) (Authenticated sender: alex@ackl.io) by relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 64669172095; Mon, 14 Nov 2016 02:45:03 +0100 (CET)
From: Alexander Pelov <a@ackl.io>
Message-Id: <06C875DF-54BE-49AD-AAAA-FD7C9E80361A@ackl.io>
Content-Type: multipart/alternative; boundary="Apple-Mail=_317DE321-4318-4436-B23E-C45D223A7902"
Mime-Version: 1.0 (Mac OS X Mail 10.0 \(3226\))
Date: Mon, 14 Nov 2016 10:45:02 +0900
In-Reply-To: <CABCOCHQKSi452RYKUhMu8ncR+WxGmMMLDGp7oJi9R9RmEnN6VQ@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
References: <c39b5765e0554a4832f59395fb481a34@xs4all.nl> <CABCOCHQKSi452RYKUhMu8ncR+WxGmMMLDGp7oJi9R9RmEnN6VQ@mail.gmail.com>
X-Mailer: Apple Mail (2.3226)
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/g2tS4diLvJO0JVp_OYN1qeYpmXE>
Cc: Core <core@ietf.org>
Subject: Re: [core] draft-ietf-core-sid-00, SID allocation
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.17
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, 14 Nov 2016 01:45:11 -0000

Dear Peter, Andy,

Excellent points, thanks for bringing this up!

A major difference between SIDs and MIBs is that we cannot allocate prefixes in SIDs (as is the case with MIB-OID). The system works perfectly well - it is just NOT feasible for IANA to allocate ranges to individual modules on a global scale. It’s also not feasible for developers/companies to ask IANA for individual allocations per module (and anything else boils down to what we’re currently doing).

The SID draft functions under a Two-tier registration system. IANA -> SDOs/Registrars -> Modules. IANA allocates chunks of IDs to other SDOs/registrars. A module is then registered by these third parties and the particular SIDs get assigned to the individual modules.

Note, that IANA can also register SIDs for individual modules, e.g. for all YANG modules published by the IETF. I would suppose the same policy could apply to other SDOs.

Hope that this clarifies the question.

Best,
Alexander



> Le 14 nov. 2016 à 10:17, Andy Bierman <andy@yumaworks.com> a écrit :
> 
> Hi,
> 
> 
> One question to ask:  How many modules do we expect to have?
> How many objects do we expect to have?  In 30 years of writing MIB modules
> we have never even come close to a million objects. (Maybe 100,000?)
> 
> A million modules, each with a million objects, would still be less than 40 bits.
> So why to we need complex range assignments and non-contiguous numbering
> within a module?  Presumably to preserve numbers and not waste them.
> But since the SID encoding is based on deltas, and the full SID is only used
> once per transaction, this does not seem to be a real concern.
> 
> 
> Andy
> 
> 
> On Sun, Nov 13, 2016 at 4:12 PM, peter van der Stok <stokcons@xs4all.nl <mailto:stokcons@xs4all.nl>> wrote:
> 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 <http://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 <mailto:consultancy@vanderstok.org>
> www: www.vanderstok.org <http://www.vanderstok.org/>
> tel NL: +31(0)492474673     F: +33(0)966015248
> 
> _______________________________________________
> core mailing list
> core@ietf.org <mailto:core@ietf.org>
> https://www.ietf.org/mailman/listinfo/core <https://www.ietf.org/mailman/listinfo/core>
> 
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core