Re: [core] CBOR Encoding of Data Modeled with YANG

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> Tue, 08 December 2015 13:09 UTC

Return-Path: <j.schoenwaelder@jacobs-university.de>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1BA191B2C7B for <core@ietfa.amsl.com>; Tue, 8 Dec 2015 05:09:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level:
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 ivcFS3bYcnnQ for <core@ietfa.amsl.com>; Tue, 8 Dec 2015 05:09:55 -0800 (PST)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5CCFF1A90C4 for <core@ietf.org>; Tue, 8 Dec 2015 05:09:50 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 2C637A15; Tue, 8 Dec 2015 14:09:49 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id AuYpKTozYE56; Tue, 8 Dec 2015 14:09:48 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Tue, 8 Dec 2015 14:09:48 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id D9D0B20056; Tue, 8 Dec 2015 14:09:47 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius2.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id X-Mzf1zZatjx; Tue, 8 Dec 2015 14:09:47 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id B520E20058; Tue, 8 Dec 2015 14:09:46 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 4BAC43929589; Tue, 8 Dec 2015 14:09:45 +0100 (CET)
Date: Tue, 08 Dec 2015 14:09:44 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Carsten Bormann <cabo@tzi.org>
Message-ID: <20151208130943.GA65029@elstar.local>
Mail-Followup-To: Carsten Bormann <cabo@tzi.org>, core@ietf.org
References: <20151207194229.GA61491@elstar.local> <BLUPR06MB1763B7F9EBF812C06DB04252FE090@BLUPR06MB1763.namprd06.prod.outlook.com> <20151207203826.GA61647@elstar.local> <BLUPR06MB1763E9AB0D1E4A0478D47C05FE090@BLUPR06MB1763.namprd06.prod.outlook.com> <20151208093350.GA62650@elstar.local> <5666AE1A.2040908@ackl.io> <20151208105530.GA62785@elstar.local> <64B950CF-863D-4440-AF7A-F8DF79C80409@telecom-bretagne.eu> <20151208115310.GA62928@elstar.local> <5666CE50.90008@tzi.org>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <5666CE50.90008@tzi.org>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/23_FHHRyT0cfEXDXPlyl8a2cP8k>
Cc: core@ietf.org
Subject: Re: [core] CBOR Encoding of Data Modeled with YANG
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: Tue, 08 Dec 2015 13:09:59 -0000

On Tue, Dec 08, 2015 at 01:34:24PM +0100, Carsten Bormann wrote:
> Juergen Schoenwaelder wrote:
> > I want independently developed systems to interoperate. In general, I
> > can't assume modules have data node IDs (since a YANG module like lets
> > say ietf-interfaces simply does not define them).
> 
> One discussion we haven't had is whether we can combine COMI-style
> identifier hashing as the general solution with optional use of manually
> managed identifiers.  This would give us the coverage of "any item from
> any YANG module" that we would like to have, but still provide the
> opportunity for more optimization in specific modules that can benefit
> from tighter representation (including the external/internal identifier
> split), which we might be able to subject to a tighter development regime.
>

I prefer one solution instead of multiple solutions. I think we should
try to understand the pros/cons of the various possible solutions and
try to take an informed decision.

The solution space is even bigger than the two proposals on the table.
For example, an implementation could simply use locally assigned data
node IDs and publish a dictionary mapping names to data node ids. Yes,
there are downsides with this as well. (Or, as a variation, you
include the dictionary in the encoding, then it looks a bit like
compression.)

So far, the decision tree I have in my mind roughly looks like this:

a) use identifier strings (+simple, -verbose)
b) use data node identifiers (-more complex, +compact)
   b1) derive data node identifiers algorithmically from YANG data models
       (-might be tricky in certain cases)
   b2) use a hash algorithm to derive data node identifiers from the set of
       announced YANG data models
       (-need to deal with hash collisions, slightly larger numbers)
   b3) use locally assigned data node identifiers and provide a cachable
       mapping dictionary
       (-different data node identifiers for each device, data without
         dictionary is meaningless)

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>