Re: [YANG] insert and key attributes

Phil Shafer <phil@juniper.net> Mon, 14 January 2008 17:11 UTC

Return-path: <yang-bounces@ietf.org>
Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1JESqR-0007d8-J8; Mon, 14 Jan 2008 12:11:31 -0500
Received: from yang by megatron.ietf.org with local (Exim 4.43) id 1JESqP-0007d1-Pe for yang-confirm+ok@megatron.ietf.org; Mon, 14 Jan 2008 12:11:29 -0500
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1JESqP-0007ct-Fm for yang@ietf.org; Mon, 14 Jan 2008 12:11:29 -0500
Received: from exprod7og112.obsmtp.com ([64.18.2.177]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1JESqO-00088O-VX for yang@ietf.org; Mon, 14 Jan 2008 12:11:29 -0500
Received: from source ([66.129.224.36]) by exprod7ob112.postini.com ([64.18.6.12]) with SMTP; Mon, 14 Jan 2008 09:10:34 PST
Received: from magenta.juniper.net ([172.17.27.123]) by emailsmtp56.jnpr.net with Microsoft SMTPSVC(6.0.3790.3959); Mon, 14 Jan 2008 09:10:34 -0800
Received: from idle.juniper.net (idleski.juniper.net [172.25.4.26]) by magenta.juniper.net (8.11.3/8.11.3) with ESMTP id m0EHAY958841; Mon, 14 Jan 2008 09:10:34 -0800 (PST) (envelope-from phil@idle.juniper.net)
Received: from idle.juniper.net (localhost [127.0.0.1]) by idle.juniper.net (8.13.8/8.13.8) with ESMTP id m0EHATX9058087; Mon, 14 Jan 2008 17:10:29 GMT (envelope-from phil@idle.juniper.net)
Message-Id: <200801141710.m0EHATX9058087@idle.juniper.net>
To: Andy Bierman <ietf@andybierman.com>
Subject: Re: [YANG] insert and key attributes
In-reply-to: <478B7E1F.4040201@andybierman.com>
Date: Mon, 14 Jan 2008 12:10:28 -0500
From: Phil Shafer <phil@juniper.net>
X-OriginalArrivalTime: 14 Jan 2008 17:10:34.0740 (UTC) FILETIME=[60360B40:01C856D0]
X-Spam-Score: -4.0 (----)
X-Scan-Signature: 769a46790fb42fbb0b0cc700c82f7081
Cc: yang@ietf.org
X-BeenThere: yang@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: YANG modeling Language for NETCONF <yang.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/yang>, <mailto:yang-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www1.ietf.org/pipermail/yang>
List-Post: <mailto:yang@ietf.org>
List-Help: <mailto:yang-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/yang>, <mailto:yang-request@ietf.org?subject=subscribe>
Errors-To: yang-bounces@ietf.org

Andy Bierman writes:
>This is your interpretation of RFC 4741.

Yup, and it's my memory of the WG's repetition of "that's up
to the data modeler".

>The goal of the IETF should be to
>converge on a standard <edit-config> operation, not simply
>codify proprietary CLI with angle brackets.

RFC 4741 did neither of these extremes.  We said explicitly:

5.2.  Data Modeling

   Data modeling and content issues are outside the scope of the NETCONF
   protocol.  An assumption is made that the device's data model is
   well-known to the application and that both parties are aware of
   issues such as the layout, containment, keying, lookup, replacement,
   and management of the data, as well as any other constraints imposed
   by the data model.

   NETCONF carries configuration data inside the <config> element that
   is specific to device's data model.  The protocol treats the contents
   of that element as opaque data.  The device uses capabilities to
   announce the set of data models that the device implements.  The
   capability definition details the operation and constraints imposed
   by data model.

NETCONF gives all power to the data model.  It's an open spec that
allows expandability and evolution.  The goal of the IETF is to
deploy standards that people actually use, and past NM efforts that
have taken this fascist content model have failed due to lack of
flexibility and expressiveness.  NETCONF works hard not to repeat
those mistakes.

The operations in 4741 were not meant to be an exhaustive list that
limits what the DM can do, but to give a normal way to do the few
things that the WG could agree on.  There are many operations that
can only be defined once the data model is known.  YANG defines how
keys are encoded, making it possible to do use "insert" to reorder
lists.  Without lists, keys, and the semantics behind them, you
can't define that operation in any meaningful manner. (Yes, you can
to the "here's a blob to tell you what to move" and "here's a blob
to tell you where to move it", but even these need the data model
to tell you what you can move and where you can move it).

Thanks,
 Phil


_______________________________________________
YANG mailing list
YANG@ietf.org
https://www1.ietf.org/mailman/listinfo/yang