Re: [i2rs] I2RS Interim Meeting - June 1, 2016 - 10:00am - 11:00am - Topic: Ephemeral State Requirements

Jeffrey Haas <jhaas@pfrc.org> Tue, 31 May 2016 19:31 UTC

Return-Path: <jhaas@slice.pfrc.org>
X-Original-To: i2rs@ietfa.amsl.com
Delivered-To: i2rs@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3874012D636 for <i2rs@ietfa.amsl.com>; Tue, 31 May 2016 12:31:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.328
X-Spam-Level:
X-Spam-Status: No, score=-3.328 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-1.426, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 HK7vJQfkdMn6 for <i2rs@ietfa.amsl.com>; Tue, 31 May 2016 12:31:08 -0700 (PDT)
Received: from slice.pfrc.org (slice.pfrc.org [67.207.130.108]) by ietfa.amsl.com (Postfix) with ESMTP id 5C47612D0CA for <i2rs@ietf.org>; Tue, 31 May 2016 12:31:08 -0700 (PDT)
Received: by slice.pfrc.org (Postfix, from userid 1001) id 185591E335; Tue, 31 May 2016 15:36:41 -0400 (EDT)
Date: Tue, 31 May 2016 15:36:40 -0400
From: Jeffrey Haas <jhaas@pfrc.org>
To: Susan Hares <shares@ndzh.com>, i2rs@ietf.org, 'Alia Atlas' <akatlas@gmail.com>
Message-ID: <20160531193640.GL17462@pfrc.org>
References: <000601d1bad5$70523090$50f691b0$@ndzh.com> <20160531063840.GA21289@elstar.local>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <20160531063840.GA21289@elstar.local>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <http://mailarchive.ietf.org/arch/msg/i2rs/jyo1WzzksAyRP60YM40Jko4fEzs>
Subject: Re: [i2rs] I2RS Interim Meeting - June 1, 2016 - 10:00am - 11:00am - Topic: Ephemeral State Requirements
X-BeenThere: i2rs@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Interface to The Internet Routing System \(IRS\)" <i2rs.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/i2rs>, <mailto:i2rs-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/i2rs/>
List-Post: <mailto:i2rs@ietf.org>
List-Help: <mailto:i2rs-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/i2rs>, <mailto:i2rs-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 31 May 2016 19:31:10 -0000

[Note that I'm answering messages in thread order to the originator of a
point rather than necessarily to responses.  This is intentional.]

On Tue, May 31, 2016 at 08:38:42AM +0200, Juergen Schoenwaelder wrote:
> I read:
> 
>    Ephemeral-REQ-05: The ability to augment an object with appropriate
>    YANG structures that have the property of being ephemeral.  An object
>    defined as Yang module, schema tree, a schema node, submodule or
>    components of a submodule (derived types, groupings, data node, RPCs,
>    actions, and notifications".
> 
> I have trouble to parse this since the 1st sentence does not seem to
> make sense for each element that you consider an object. That said,
> the real issue here are lifetimes. The lifetime of a config true
> object is determined by config changes, the lifetime of config false
> objects is determined by operational state changes. What happens to
> an ephemeral augmentation of objects if their lifetime expires?

I agree that your observation covers the general intent.  The requirements
language above is attempting to be a bit too specific for a given
implementation detail, namely instantiation of ephemeral behaviors in a data
tree.

Could you please supply alternative text?

> The revised datastore model I have described in
> draft-schoenw-netmod-revised-datastores-00 links the ephemeral state
> only to operational state, not at all to configuration. Does this
> model not satisfy the I2RS requirements and make things much simpler?

I've been unable to follow netmod/netconf recently, so thanks for pointing
out this document.  It does seem to do a nice job in attempting to summarize
a number of discussions on the various datastore concepts we've been seeing
the last year.

There are a few things I find slightly problematic in your hierarchy with
respect to what I2RS likely needs for ephemeral configuration state, but I
think it might be solvable.  Here are some observations:

If ephemeral configuration state were to be treated as a datastore that
feeds into running, would you expect that the resulting running state should
be writable?  (I.e. running = candidate, startup + ephemeral?)

It would be helpful to see how an ephemeral datastore is intended to
interact in this diagram.  A detail that would need to be clarified is what
happens when there is overlaps in portions of the schemas.

>  2.  Does Ephemeral-REQ-06 provide the Yang requirements in 
> > a clear fashion?  Do you have any suggestions for alternative text? 
> 
> I think it is clear but broken. In particular the part about
> indicating secure/non-secure transport.

The text relating to transport is applied to generally and needs clarifying.
Let's provide a specific goal:

For Yang notifications, there may be some desire for the information to be
sent across alternative transports, potentially with specific encodings.
draft-ietf-netconf-yang-push covers I2RS use cases wherein the data may be
sent via alternative transports.  Should we have some sort of markup in the
Yang language to identify what transports might be utilized?  What about
security requirements?

Obviously we can spell out transport security considerations as part of the
description clause within a notification.  However, since a significant
amount of feedback has been given from individuals with a security
background that many objects we're likely to use in I2RS may be security
sensitive - but not all! - some way to indicate the sensitivity may be
required.

The motivation for this is that for insecure and high speed transports and
ecodings such as IPFIX (e.g.) it may be fine to expose some data (e.g.
interface statistics) but the same may not be true for other data and a
secured transport may be required.

>  
> > 3. Do you think any of the Ephemeral-REQ-07 NETCONF Changes 
> >    are not necessary?   If so, what changes would you leave out?
> >    Do the "policy-knobs" seem useful to you? 
> >
> > 4. Do you think any of the Ephemeral-REQ-08 RESTCONF changes 
> >    are not necessary?  If so, what changes would you leave out? 
> >    Do we need all the features (yang module library, call-home, 
> >    server)? 
> 
> I think this needs to be trimmed down. I think it should be avoided to
> create I2RS specific solutions for things that are already in place
> (e.g., NETCONF has a mechanism for protocol capability discovery and
> negotiation, NETCONF already supports multiple (secure) transports).
> 
> I think that having a clear architectural view is essential. I am not
> sure the 'single pane of glass' model is the way to go. I think the
> decision on the architectural model is key because it impacts many of
> the other requirements and solutions.
> 
> You want both NC and RC to support XML and JSON and SSH and TLS and
> (plaintext) TCP? Does this maximum of variability and flexibility
> really help interoperability? Perhaps things should be reorganized
> into things that are protocol agnostic (and should not be repeated)
> and things that are protocol specific - if there is indeed a need to
> work with multiple protocols.

I agree we're being overly specific here, although as noted above we need
some discussion about what to do about insecure transports for some
operations, such as subscriptions.  (I think that's covered by the 
yang-push doc in particular.)

Item 6 about precedence of local configuration vs. ephemeral configuration
requires discussion, including in the revised-datastore document if it
chooses to address ephemeral configuration.

> I also think that it is not needed to write down requirements to
> NETCONF for things that are already solved or being worked on.

I think we're happy to subtract these, or at the least call out the existing
work in progress.  As noted in some earlier drafts, the goal of the I2RS
drafts should be to not have drafts in I2RS, but solution space documents in
netconf and netmod.

> > 5. Do you think the pub/sub requirements are sufficient? 
> > 
> >     (PUB-SUB-REQ-01, PUB-SUB-REQ-02)
>  
> I would hope that draft-ietf-i2rs-pub-sub-requirements-09 covers
> everything that is needed. Again, this is linked to architectural
> question. The text, for example, assumes that there is an 'operational
> data stores'. As of today, this is not really the case. See
> draft-schoenw-netmod-revised-datastores-00 for more details.

I think converging on the concept of an conceptional operational datastore
would address many of these considerations.  (Note that I believe you'll
want either additional filtering capabilities to select whether the
configuration state in the operational store originates in local
configuration or ephemeral configuration.  This was in an earlier version of
the ephemeral state requirements draft.)

I believe the remainder of the configuration state considerations are
covered by the yang-push draft in the on-change behavior.

-- Jeff