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

Andy Bierman <andy@yumaworks.com> Mon, 14 November 2016 01:58 UTC

Return-Path: <andy@yumaworks.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 CA0C71295F0 for <core@ietfa.amsl.com>; Sun, 13 Nov 2016 17:58:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=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 (2048-bit key) header.d=yumaworks-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 c6fhCIe5ZSN7 for <core@ietfa.amsl.com>; Sun, 13 Nov 2016 17:58:39 -0800 (PST)
Received: from mail-ua0-x22e.google.com (mail-ua0-x22e.google.com [IPv6:2607:f8b0:400c:c08::22e]) (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 4F116129474 for <core@ietf.org>; Sun, 13 Nov 2016 17:58:39 -0800 (PST)
Received: by mail-ua0-x22e.google.com with SMTP id 20so52863564uak.0 for <core@ietf.org>; Sun, 13 Nov 2016 17:58:39 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=9kZAGaZ6eok7Nfy89btK/KzV/n4rgXj5Cj0Q/+Jafr4=; b=1Us3GRLgHVU2hBkFVeHuwoh/L4vUI2elU+NvGnBphcQt3t4/b1ujkIpg3Ps3RpSh+U 9HZrpH91ljbajUsiYavbXDXWA0pZSFVrv1rh3LRcQCY/3fZw3iyqOLADEuofyOJAVqcP Yhf6OynJ/49WtreK5IXK7aCufq92fz/3vSmHL4GZuXSPQxpMkW5rADxNx+8Bg2yQAII0 +GUWyCv1rhMAauupOqzyN/GPTMFrUqDRNEOw27sFoosgkNAkASYpWJ6c6tvI0hA/9RCY oMuU/lee3Gr3eAyqIoThWKGzQ7ief8De2akWYC3CXDFmv2umT0uT5ywoEy6N827RnGrc BpQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=9kZAGaZ6eok7Nfy89btK/KzV/n4rgXj5Cj0Q/+Jafr4=; b=emetgJ8jyzgx2HrOQ/2apdO6CcEt5HX6fltbkQ0VZxCSmOVRtXAKeYAKF8NN/0lF0l aZ//Mf2CC6ebzecuOYJMfrmQRLSUSjD6Bq/fWKXlnP10JW/PUuxJQteJ0wVeRKClT5G+ aZJawFc7IeMUMlnY9hRWF1VGzkvLrMAg/es450TLPHSvSb5dd+BtxuR2vVd4roRKrPqX 9NuKdcvyVkWybYJy1cIaNpEmE8MLs3FZFp6k/egv7bLAp5bHuyfn0DlusEY61GzXIaEw 3dPtNCLiy0zTD7WLVKAHphjK4YhZ9bgiG7U/rh0ARxZ8JZwzq5pq1/GhnbfwudeIMFVJ AzvA==
X-Gm-Message-State: ABUngvcb4QDwDL7H+VVtmwC2M7jvZqUjdSESU/vyrqm7DiJ3/BnMkOSTEhtytNLeu1AbSZ/puo9NSS1P1otFEg==
X-Received: by 10.159.49.75 with SMTP id n11mr8329263uab.133.1479088718338; Sun, 13 Nov 2016 17:58:38 -0800 (PST)
MIME-Version: 1.0
Received: by 10.103.64.129 with HTTP; Sun, 13 Nov 2016 17:58:37 -0800 (PST)
In-Reply-To: <06C875DF-54BE-49AD-AAAA-FD7C9E80361A@ackl.io>
References: <c39b5765e0554a4832f59395fb481a34@xs4all.nl> <CABCOCHQKSi452RYKUhMu8ncR+WxGmMMLDGp7oJi9R9RmEnN6VQ@mail.gmail.com> <06C875DF-54BE-49AD-AAAA-FD7C9E80361A@ackl.io>
From: Andy Bierman <andy@yumaworks.com>
Date: Sun, 13 Nov 2016 17:58:37 -0800
Message-ID: <CABCOCHR7v-OrHYJL+67aQ2Ndwew6p7H_4tt0_fvg5Xo3yok9xg@mail.gmail.com>
To: Alexander Pelov <a@ackl.io>
Content-Type: multipart/alternative; boundary="f403045e2458a5f3be0541392db3"
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/C-rP_iLCWQY9dh1i7LB4u13QcPM>
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:58:42 -0000

On Sun, Nov 13, 2016 at 5:45 PM, Alexander Pelov <a@ackl.io> wrote:

> 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).
>


You want to manually manage ranges.  Why?

Why not allocate module-ids with a fixed range of objects within a module?

e.g.,32 bits for modules,  20 bits for objects --> module ID 1 has objects
0x100000 to 0x1fffff.

What evidence do you have that we need more than 4 billion modules,
each with up to 1 million objects?

There is no operational experience with SIDs but there is plenty with
managed objects
in general.

Andy



>
> 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>
> 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 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
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
>
>