Re: [i2rs] Ephemeral State Requirements discussion

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> Mon, 06 June 2016 17:44 UTC

Return-Path: <j.schoenwaelder@jacobs-university.de>
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 DB15412D891 for <i2rs@ietfa.amsl.com>; Mon, 6 Jun 2016 10:44:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.626
X-Spam-Level:
X-Spam-Status: No, score=-5.626 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-1.426] 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 C53fK86Qmgu2 for <i2rs@ietfa.amsl.com>; Mon, 6 Jun 2016 10:44:20 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 731EA12D88B for <i2rs@ietf.org>; Mon, 6 Jun 2016 10:44:19 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 47137FEC; Mon, 6 Jun 2016 19:44:18 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id 9EXVNLh2xd7B; Mon, 6 Jun 2016 19:44:15 +0200 (CEST)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Mon, 6 Jun 2016 19:44:16 +0200 (CEST)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id 785692004E; Mon, 6 Jun 2016 19:44:16 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius4.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id gxxkn-StKweK; Mon, 6 Jun 2016 19:44:15 +0200 (CEST)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 0C6A320047; Mon, 6 Jun 2016 19:44:14 +0200 (CEST)
Received: by elstar.local (Postfix, from userid 501) id EFC733B08EA6; Mon, 6 Jun 2016 19:44:13 +0200 (CEST)
Date: Mon, 6 Jun 2016 19:44:13 +0200
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Jeffrey Haas <jhaas@pfrc.org>
Message-ID: <20160606174413.GA7492@elstar.local>
Mail-Followup-To: Jeffrey Haas <jhaas@pfrc.org>, Susan Hares <shares@ndzh.com>, "'Joel M. Halpern'" <jmh@joelhalpern.com>, i2rs@ietf.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>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20160602142733.GU17462@pfrc.org>
User-Agent: Mutt/1.6.0 (2016-04-01)
Archived-At: <https://mailarchive.ietf.org/arch/msg/i2rs/gwb6pS_GJ_O51x1wAx5YfJSUmNY>
Cc: i2rs@ietf.org, "'Joel M. Halpern'" <jmh@joelhalpern.com>, Susan Hares <shares@ndzh.com>
Subject: Re: [i2rs] Ephemeral State Requirements discussion
X-BeenThere: i2rs@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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 17:44:22 -0000

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