[netmod] <running> vs <intended> [was Re: WG Last Call: draft-ietf-netmod-revised-datastores-04 updates]

Robert Wilton <rwilton@cisco.com> Mon, 18 September 2017 09:28 UTC

Return-Path: <rwilton@cisco.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4FD6D1323B8; Mon, 18 Sep 2017 02:28:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.5
X-Spam-Level:
X-Spam-Status: No, score=-14.5 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 FjCSbcLv4-GY; Mon, 18 Sep 2017 02:28:48 -0700 (PDT)
Received: from aer-iport-3.cisco.com (aer-iport-3.cisco.com [173.38.203.53]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 62336126B6E; Mon, 18 Sep 2017 02:28:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=15640; q=dns/txt; s=iport; t=1505726927; x=1506936527; h=subject:to:cc:references:from:message-id:date: mime-version:in-reply-to; bh=8Lc5SYe085oFJDvREBOY9B4YxDE+slYOYgL5Gulcl2c=; b=NDi4ouWoamDC9/BQT+WsCWCExHnQb7n8xMfuq1o9gpz+KJKZL0+FJOUb BUjPkYwkLm73fZYOHY4x2Zy5iuncbvnnOP82d48t888s46RtQnJB6tw0M P8OeivdbsvTME3hVbQBDm1h2ZpUPVJZOgAwGyWfmTTVfF0W6EOyE+z7Bp Q=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0DqAQAfkb9Z/xbLJq1dGQEBAQEBAQEBAQEBBwEBAQEBhSwng3WLFJBIK5BnhT+CEgqEK4EQAoR/FgECAQEBAQEBAWsohRkBBSNPBxAJEgIGIwQDAgJGAw4GDQYCAQGKL40nnWaCJyeLAAEBAQEBAQEBAQEBAQEBAQEBAQEBAR2DK4NSgWMriCuCXYJgBaEIlFWCE4lEJIZ9igCDXodXgTkmBitBTDIhCBwVhheBTz82hVQrghQBAQE
X-IronPort-AV: E=Sophos;i="5.42,412,1500940800"; d="scan'208,217";a="655723101"
Received: from aer-iport-nat.cisco.com (HELO aer-core-2.cisco.com) ([173.38.203.22]) by aer-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Sep 2017 09:28:45 +0000
Received: from [10.63.23.66] (dhcp-ensft1-uk-vla370-10-63-23-66.cisco.com [10.63.23.66]) by aer-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id v8I9ShBZ006068; Mon, 18 Sep 2017 09:28:44 GMT
To: Andy Bierman <andy@yumaworks.com>
Cc: Martin Bjorklund <mbj@tail-f.com>, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, "t.petch" <ietfc@btconnect.com>, Berger Lou <lberger@labn.net>, "netmod@ietf.org" <netmod@ietf.org>, NetMod WG Chairs <netmod-chairs@ietf.org>, draft-ietf-netmod-revised-datastores@ietf.org
References: <CABCOCHQcSUSUZMvzVGyaXObHadZqksKge89_6YcH9PCbxMCG=g@mail.gmail.com> <20170916072403.xp37556z6g7b42gr@elstar.local> <CABCOCHT8CMCAnqf6Oe1bKMzQ-B_0GjrQiQ8YXgQJvCo-NBOBBA@mail.gmail.com> <20170917.154115.791964858062115650.mbj@tail-f.com> <CABCOCHQeQYU+zBpFvVRqCc02nrtyS6Jix1=43it1fn9i9xrD6Q@mail.gmail.com>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <c39dced6-9cd5-a7e6-db00-b121bc6de07c@cisco.com>
Date: Mon, 18 Sep 2017 10:28:43 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0
MIME-Version: 1.0
In-Reply-To: <CABCOCHQeQYU+zBpFvVRqCc02nrtyS6Jix1=43it1fn9i9xrD6Q@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------4157BCD5E2CEB8BC40F38AC3"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/bAyOORDEMnrIVYOQrZGcnXVNkII>
Subject: [netmod] <running> vs <intended> [was Re: WG Last Call: draft-ietf-netmod-revised-datastores-04 updates]
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Sep 2017 09:28:50 -0000

Hi Andy,

At the moment, NMDA does not change the definition of <running> for a 
standards compliant implementation of YANG/NETCONF/RESTCONF.  It is 
still the same as in 7950, and <running> must still be a "valid 
configuration data tree" for a standards complaint implementation.

However, the draft acknowledges that proprietary extensions exist that 
can modify the behaviour of <running> in ways that means that <running> 
is not always a valid configuration data tree.  The draft gives two 
examples of how <running> could be manipulated (inactive config, and 
templates).

If those extensions are standardized then I think it is likely that 
those RFCs would need to update 7950 to indicate that <running> isn't 
necessarily a "valid configuration data tree" when those extensions are 
used.  But I don't think that needs to be stated in the NMDA 
architecture at this time.

So, what is <intended>?
  - this is meant to represent the configuration that the system will 
actually attempt to apply after any and all manipulation (e.g. by 
templates, inactive removal, perhaps system scripts, etc) of the 
configuration has been performed.
  - it must always be a valid configuration data tree.
  - If <running> is updated then <intended> is always updated at the 
same time.  Hence, any successful change to <running> requires that 
<intended> has also been updated and validated.  E.g. in RESTCONF terms, 
I think that both <running> and  <intended> should get the same 
last-change timestamp whenever <running> is updated.
  - It provides a known fixed point so that any client can see the full 
validated config, i.e. even for devices that implement proprietary 
manipulations of the configuring in <running>.
  - If the device doesn't support any extra proprietary config 
manipulations, then <intended> is identical to <running>.

I think that we can possibly do a bit more to better define what 
<intended is>.  My previous suggestion as an improvement was below 
(perhaps you think it needs more clarification)?:

*OLD:*

4.4.  The Intended Configuration Datastore (<intended>)

    The intended configuration datastore (<intended>) is a read-only
    configuration datastore.  It is tightly coupled to <running>.  When
    data is written to <running>, the data that is to be validated is
    also conceptually written to <intended>. Validation is performed on
    the contents of <intended>.

    For simple implementations, <running> and <intended> are identical.

    <intended> does not persist across reboots; its relationship with
    <running> makes that unnecessary.

    ...

*NEW:*

4.4.  The Intended Configuration Datastore (<intended>)

    The intended configuration datastore (<intended>) is a read-only
    configuration datastore.  It represents the configuration after all
    configuration transformations to <running> are performed (e.g.
    template expansion, inactive configuration removal), and is the
    configuration that the system attempts to apply.

    It is tightly coupled to <running>.  When data is written to
    <running>, the data that is to be validated is also conceptually
    written to <intended>.  Validation is performed on the contents of
    <intended>.

    For simple implementations, <running> and <intended> are identical.

    The contents of <intended> is also related to the 'config true'
    subset of <operational>, and hence a client can determine to what
    extent the intended configuration is currently applied by checking
    whether the contents of <intended> also appears in <operational>.

    <intended> does not persist across reboots; its relationship with
    <running> makes that unnecessary.

    ...

Thanks,
Rob


On 17/09/2017 16:31, Andy Bierman wrote:
> Hi,
>
> My concern is that the definition of <running> is being changed to
> include undefined and undeclared proprietary extensions.
> This is counter-productive to the IETF's stated goal of interoperability.
>
>
> Andy
>
>
> On Sun, Sep 17, 2017 at 6:41 AM, Martin Bjorklund <mbj@tail-f.com 
> <mailto:mbj@tail-f.com>> wrote:
>
>     Andy Bierman <andy@yumaworks.com <mailto:andy@yumaworks.com>> wrote:
>     > On Sat, Sep 16, 2017 at 12:24 AM, Juergen Schoenwaelder <
>     > j.schoenwaelder@jacobs-university.de
>     <mailto:j.schoenwaelder@jacobs-university.de>> wrote:
>     >
>     > > On Fri, Sep 15, 2017 at 02:07:58PM -0700, Andy Bierman wrote:
>     > > > Hi,
>     > > >
>     > > > I strongly agree with Tom that the current draft is an
>     update to RFC
>     > > 7950.
>     > > > I also strongly disagree with the decision to omit RFC 2119 in a
>     > > standards
>     > > > track document. IMO RFC 2119 terms need to be used in
>     normative text,
>     > > > especially when dealing with XPath and YANG compiler behavior.
>     > > >
>     > >
>     > > RFC 8174:
>     > >
>     > >    o  These words can be used as defined here, but using them
>     is not
>     > >       required.  Specifically, normative text does not require
>     the use
>     > >       of these key words.  They are used for clarity and
>     consistency
>     > >       when that is what's wanted, but a lot of normative text
>     does not
>     > >       use them and is still normative.
>     > >
>     > >
>     > So what?
>     > Existing YANG specifications use RFC 2119 terms.
>     > This draft uses those terms, just with lower-case.
>
>     Actually, section 5.1 XPath Context in the revised datastore draft
>     uses the same language as section 6.4.1 XPath Context in RFC 7950.  In
>     fact, the text in the draft is copied (and adjusted) from RFC 7950.
>
>
>     /martin
>
>