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 <[email protected] <mailto:[email protected]>> wrote:

    Andy Bierman <[email protected] <mailto:[email protected]>> wrote:
    > On Sat, Sep 16, 2017 at 12:24 AM, Juergen Schoenwaelder <
    > [email protected]
    <mailto:[email protected]>> 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



_______________________________________________
netmod mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to