Re: [i2rs] Ephemeral State Requirements discussion

"Susan Hares" <shares@ndzh.com> Mon, 06 June 2016 18:16 UTC

Return-Path: <shares@ndzh.com>
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 3BC7D12D519 for <i2rs@ietfa.amsl.com>; Mon, 6 Jun 2016 11:16:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.748
X-Spam-Level: *
X-Spam-Status: No, score=1.748 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DOS_OUTLOOK_TO_MX=2.845, RDNS_NONE=0.793, T_FILL_THIS_FORM_SHORT=0.01] autolearn=no 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 I1-Fpxs1nTPH for <i2rs@ietfa.amsl.com>; Mon, 6 Jun 2016 11:16:49 -0700 (PDT)
Received: from hickoryhill-consulting.com (unknown [50.245.122.97]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D412B12D1A3 for <i2rs@ietf.org>; Mon, 6 Jun 2016 11:16:48 -0700 (PDT)
X-Default-Received-SPF: pass (skip=loggedin (res=PASS)) x-ip-name=174.124.192.86;
From: Susan Hares <shares@ndzh.com>
To: 'Juergen Schoenwaelder' <j.schoenwaelder@jacobs-university.de>, 'Jeffrey Haas' <jhaas@pfrc.org>
References: <000601d1bad5$70523090$50f691b0$@ndzh.com> <20160531063840.GA21289@elstar.local> <026df5be-4a60-f340-60aa-d713a0e75c48@joelhalpern.com> <20160531184844.GB22928@elstar.local> <413ef504-49a8-2ba2-7fd4-582a41bd0ad0@joelhalpern.com> <20160531192729.GA23116@elstar.local> <005801d1bb7a$e7b2e440$b718acc0$@ndzh.com> <20160601091953.GD24118@elstar.local> <20160602142733.GU17462@pfrc.org> <20160606174413.GA7492@elstar.local>
In-Reply-To: <20160606174413.GA7492@elstar.local>
Date: Mon, 06 Jun 2016 14:16:38 -0400
Message-ID: <01a701d1c01f$918dbf00$b4a93d00$@ndzh.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AQJdaenpM7ljbP1C/TwjkI20GPnldwI0uYM8ArQFymECLv3ehAG5Y7N3Ajn3nEgCZB5QggIpGxSUAaVvUZYB/7WHjJ4rfhbw
Content-Language: en-us
X-Authenticated-User: skh@ndzh.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/i2rs/OjVS3GQx25IcPKHkprKjebAdTcA>
Cc: i2rs@ietf.org, "'Joel M. Halpern'" <jmh@joelhalpern.com>
Subject: Re: [i2rs] Ephemeral State Requirements discussion
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: Mon, 06 Jun 2016 18:16:50 -0000

Juergen: 

I2RS Ephemeral Configuration - is configuration which needs validation, but
does not survive a reboot. 

I2RS data models which are "ephemeral at top node" and have operational
state.  In these models, the operational state is like all other operational
state.  

I suggest we focus on the I2RS ephemeral Configuration.  On this topic you
stated below: 
 
"Again, for configuration datastores, I can obtain the config and validate
it pretty much anywhere, on the device or offline at a controller. My
understanding is that this would not be true for I2RS'
ephemeral stat datastores; I would need some amount of additional data to do
something close to YANG's configuration datastore validation." 

Why is this not true for ephemeral datastore?  I am missing any reason why
you think this is true. 

Sue 

-----Original Message-----
From: Juergen Schoenwaelder [mailto:j.schoenwaelder@jacobs-university.de] 
Sent: Monday, June 06, 2016 1:44 PM
To: Jeffrey Haas
Cc: Susan Hares; 'Joel M. Halpern'; i2rs@ietf.org
Subject: Re: [i2rs] Ephemeral State Requirements discussion

On Thu, Jun 02, 2016 at 10:27:33AM -0400, Jeffrey Haas wrote:
> Juergen,
> 
> On Wed, Jun 01, 2016 at 11:19:53AM +0200, Juergen Schoenwaelder wrote:
> > On Tue, May 31, 2016 at 04:27:51PM -0400, Susan Hares wrote:
> > >>  How does ephemeral sitting next to the <applied> data store 
> > >>  provide the ability to augment configuration with ephemeral 
> > > > configuration or operational state with ephemeral operational state?
> > >
> > At the schema level, you will augment the schema tree. If the 
> > > current separation of /foo and /foo-state would go away, this will 
> > > likely get simpler (but this is orthogonal to the question how an 
> > > <ephemeral> datastore conceptually interacts with the other
datastores).
> > >
> > >At the data tree level, there is a magic merging (+) function 
> > >involved that takes configuration data from a configuration 
> > >datastore and data from an ephemeral data store and produces the 
> > >resulting operational state. The idea was to not further detail how 
> > >this is achieved and instead treat an ephemeral datastore pretty 
> >> much like any other control plane interface interacting with
<operational state>.
>>
>> While such a solution-space seems mostly right, I had been under the 
> >impression that the interactions necessary for validation meant that 
> >ephemeral needed to move up closer to the top of your diagram.
>>
> >Note that I'm not saying I2RS requires validation, however the lack of 
> >validation has been a contentious point in prior discussions.
>> 
> >To confirm my understanding, ephemeral configuration state in the 
> >model you're proposing above is treated as operational state (the 
> >output of the netconf <get> operation for config true elements)?

> For configuration datastores, we have a reasonably precise definition what
validation means. And this comes for a price, e.g., config true nodes are
not allowed to refer to config false nodes. The reason is that validate
should work on the configuration data and it should not depend on the
operational state a device is in.

My understanding is that I2RS wants to inject data that modifies state that
might be purely operational state, e.g., state in a routing table obtained
from a routing protocol. If this is correct, then the ephemeral state
datastore is closer to the ephemeral state and pretty detached from
configuration datastores and likely it needs its own validation rules (if
they are needed at all).
 

Again, for configuration datastores, I can obtain the config and validate it
pretty much anywhere, on the device or offline at a controller. My
understanding is that this would not be true for I2RS'
ephemeral stat datastores; I would need some amount of additional data to do
something close to YANG's configuration datastore validation.

/js

PS: I think 'ephemeral state datastore' is actually a misnomer. The
    fact that the datastore I2RS is looking for is ephemeral is a
    property of this datastore but there are likely more important
    characteristics that should determine its name. But I have no good
    suggestion and this is perhaps a discussion to have at some later
    point in time.

-- 
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/>