Re: [netmod] Differentiating the types of Mount

"Eric Voit (evoit)" <evoit@cisco.com> Wed, 16 March 2016 22:35 UTC

Return-Path: <evoit@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 74CE512D591 for <netmod@ietfa.amsl.com>; Wed, 16 Mar 2016 15:35:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.522
X-Spam-Level:
X-Spam-Status: No, score=-14.522 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001, 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 AGZVNjOdmb10 for <netmod@ietfa.amsl.com>; Wed, 16 Mar 2016 15:35:48 -0700 (PDT)
Received: from rcdn-iport-4.cisco.com (rcdn-iport-4.cisco.com [173.37.86.75]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C2CB812D568 for <netmod@ietf.org>; Wed, 16 Mar 2016 15:35:48 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=8281; q=dns/txt; s=iport; t=1458167748; x=1459377348; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=2YE0AfSiaiN6z5y9FYw/Nfd3MQcXfRF9zug1lQjvLbA=; b=l/4GnR3MzqgG6fU8I/oJHnncbt5zsC14uQ/V71QA6DTAyOwyR8c8ZDZV XBYQ3pLETLQTrRicm7kj4lN4WQN5Afo24zForHq2RyegB/s2TPkvPnnPz mGhGiNjA/LCGa/3q9L9/QQ8V96Q3ppSHIHQ/xvhroPWYaoJFKumniTyjq 4=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0ACAgB93ulW/4QNJK1bA4NGU24GugYBDYFvFwyFIEoCgUI4FAEBAQEBAQFkJ4RBAQEBAwEBAQEkEzQLBQcCAgIBCBABBAEBAR4JBxsMCxQJCAEBBA4FCBGIBggOwF0BAQEBAQEBAQEBAQEBAQEBAQEBAQEVBIYag0V/hEsSJoNzBYdgj3EBhW6IC4I3jFWOfgEeAQFCggMZgUlqiWV+AQEB
X-IronPort-AV: E=Sophos;i="5.24,346,1454976000"; d="scan'208";a="83584471"
Received: from alln-core-10.cisco.com ([173.36.13.132]) by rcdn-iport-4.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 16 Mar 2016 22:35:47 +0000
Received: from XCH-RTP-019.cisco.com (xch-rtp-019.cisco.com [64.101.220.159]) by alln-core-10.cisco.com (8.14.5/8.14.5) with ESMTP id u2GMZkba026788 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Wed, 16 Mar 2016 22:35:47 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-019.cisco.com (64.101.220.159) with Microsoft SMTP Server (TLS) id 15.0.1104.5; Wed, 16 Mar 2016 18:35:46 -0400
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1104.009; Wed, 16 Mar 2016 18:35:46 -0400
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: STUART VENTERS <stuart.venters@adtran.com>
Thread-Topic: [netmod] Differentiating the types of Mount
Thread-Index: AdF/OD2NJ3Cq4cCSQLyujReGzdHIoQAX41GAAAuwc4AACCa0AP//7ngAgAAh1pA=
Date: Wed, 16 Mar 2016 22:35:46 +0000
Message-ID: <878f650eb3d8414c970313e0403d8964@XCH-RTP-013.cisco.com>
References: <84d0c3c5331c4b5e9d0883f890a87a40@XCH-RTP-013.cisco.com> <20160316112329.GB39598@elstar.local> <1220E2C537595D439C5D026E83751866E7B4C101@ex-mb1.corp.adtran.com> <020f5d85b38d46d5a09940e8e89cc37e@XCH-RTP-013.cisco.com> <1220E2C537595D439C5D026E83751866E7B4C20C@ex-mb1.corp.adtran.com>
In-Reply-To: <1220E2C537595D439C5D026E83751866E7B4C20C@ex-mb1.corp.adtran.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.231]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/4TqIkItGJuhSTTbrXjHD9KZZv2Q>
Cc: "Martin Bjorklund (mbjorklu)" <mbjorklu@cisco.com>, "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Differentiating the types of Mount
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.17
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: Wed, 16 Mar 2016 22:35:51 -0000

Hi Stuart,

Thanks for the thoughts.   More in-line...

> From: STUART VENTERS. March 16, 2016 3:49 PM
> 
> Eric,
> 
> I did the suggested OpenDaylight  (ODL)search, and yes there is a lot of activity
> there.  There are a lot of trees in that forest.
> 
> The best overview I found seems to be here.
> https://wiki.opendaylight.org/view/OpenDaylight_Controller:_SAL_Architecture
> _Overview#Nested_Subsystems
> 
> Mapping my words to ODL,
> My Sibling is the ODL Nested system.
> My Parent might be ODL Top-level Subsystem?
> 
> Having had lunch to think about it, I don't think I should have picked NetConf as
> a place to choose what data to mount.
> I suspect it should be somewhere in the application, separate for both Yang and
> Netconf.
> ODL appears to use the Northbound Restconf interface to do this function
> <module xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
> 
> Stepping back, for this mounting stuff, there are at least 3 issues:
> 1) Specifying a where in the Parent schema to put the sibling schema.
> 2) Specifying the type of the sibling.
> 3) Specifying what sibling data instance to put at a specific parent node data
> instance.
> 
> I think Yang would be a great place to do 1 and 2, but  I think the application
> should handle 3.
> ODL appears to put 1) in Yang,  I'm not sure about 2), and 3) in the application.
> Your proposed definition's mention of data-tree appears to put 3 into Yang with
> appears to conflict with ODL.

ODL Mounts instance data.  One example showing how applications can get to that can be seen at:
http://sdntutorials.com/how-to-access-data-in-md-sal-from-mount-point/

> Since you clearly don't want however Yang turns out to collide with ODL, but
> appear to be proposing something that collides, I must not understand?

I don't see the collision of (3) with the originally proposed definition for "Peer Mount".   It might be worth looking at:
https://tools.ietf.org/html/draft-clemm-netmod-mount-03 
which was used an initial seed for ODL's implementation of Peer Mount.


> Another use case:
> ODL Yang device mounting is about grafting and removing whole, existing
> devices as branches in a single tree on a running system.

Grafting, yes.  Not sure about removing as the Mount is a reference, not an actual relocation.

> For this, there may be some benefit in treating the grafted branch as a special
> sort of node in the tree.
> Having a special keyword like 'mount' might help this, or the application function
> that does 3) above could handle it.

There certainly are trade-offs between application-centric data representation and infrastructure-centric representation.  Open Daylight is a good test-case here as it provides network-wide abstractions to a diverse application set.   (I.e., the end-goal of Peer Mount always has been simplifying life for the application developer, and these network-wide abstractions are intended for this purpose.)
 
> Another use case is simply making a big device model by grafting together
> smaller, whole, existing models.
> In this case, the benefit may be to make the grafted branch look like a non-
> special vanilla node in the tree.
> In this case, I don't see the benefit over a special keyword like 'mount' over an
> existing one like 'uses'.

Peer Mount and Alias Mount are intended to enable the referencing of existing, populated data trees.   

Eric
 
> Regards,
> 
> Stuart
> 
> 
> -----Original Message-----
> From: Eric Voit (evoit) [mailto:evoit@cisco.com]
> Sent: Wednesday, March 16, 2016 12:20 PM
> To: STUART VENTERS
> Cc: netmod@ietf.org; Martin Bjorklund (mbjorklu); 'Juergen Schoenwaelder'
> Subject: RE: [netmod] Differentiating the types of Mount
> 
> > From: STUART VENTERS, March 16, 2016 12:58 PM
> >
> > Defining a schema-tree seems Yang's strong suite.
> > I'm not sure if the suite extends to defining what goes into a
> > data-tree governed by the schema-tree.
> 
> Hi Stuart,
> 
> Open Daylight has found Mounting YANG data from one device to another has
> proven central to their effort.  Doing a quick Google search for "mount
> site:opendaylight.org" gives 800+ results.
> 
> Based on that, I was hoping that being defining the variants of Mount across
> different constituencies would help us not collide as the technologies evolve.
> This includes a shared definition of "YANG Mount" which shows what is common
> across all efforts.
> 
> Thanks,
> Eric
> 
> > Perhaps:
> >
> > YANG Mount
> >  ----------------
> >  Definition: An abstracted term for a YANG mechanism that grafts a
> > sibling schema-tree as a subtree of a parent schema-tree.
> >  Purpose: Provides flexibility by enabling the growth of YANG models
> > via an explicit reference to other YANG models defined elsewhere.
> >
> > Given the ability to specify a combined schema-tree, maybe something
> > at the protocol level could specify what data to use to populate the grafted
> tree.
> > This could provide a place to specify details like who has ownership
> > of the data, if it is RW, etc.
> >
> > NETCONF Mount
> > ------------------
> > Definition: An abstracted term for a NETCONF mechanism to construct a
> > combined data-tree according to a schema defined with YANG mount.
> > Purpose: ...
> >
> >
> >
> > -----Original Message-----
> > From: netmod [mailto:netmod-bounces@ietf.org] On Behalf Of Juergen
> > Schoenwaelder
> > Sent: Wednesday, March 16, 2016 6:23 AM
> > To: Eric Voit (evoit)
> > Cc: netmod@ietf.org; Martin Bjorklund (mbjorklu)
> > Subject: Re: [netmod] Differentiating the types of Mount
> >
> > On Wed, Mar 16, 2016 at 03:59:50AM +0000, Eric Voit (evoit) wrote:
> > > To help differentiate between concepts and drafts, below are
> > > strawman
> > definitions for the various types of Mount which we have been discussing over
> > the last year in Netmod.   Thoughts/suggestions?
> > >
> > > YANG Mount
> > > ----------------
> > > Definition: An abstracted term for a mechanism that a parent YANG
> > > model can
> > use to link in YANG information defined or located elsewhere.
> > > Purpose: Provides model flexibility by enabling the growth of YANG
> > > trees via
> > an explicit reference to other YANG information and structures.
> >
> > Trying to rewrite the definition to be more consistent with existing
> > terminology:
> >
> >   The abstract concept of incorporating a YANG-defined data tree (the
> >   mounted data tree) into a existing YANG-defined data tree (the
> >   parent data tree).
> >
> > Well, this is not really correct, perhaps we have to just say 'tree'
> > instead of 'data tree' since a schema mount (as I understand it) seems
> > to incorporate a schema tree into another schema tree while the other
> > two mounts incorporate a data tree into a data tree. So perhaps the
> > general definition is something like this:
> >
> >   The abstract concept of incorporating a YANG-defined data tree or
> >   schema tree (the mounted data or schema tree) into a existing
> >   YANG-defined data tree or schema tree (the parent data tree).
> >
> > The schema mount then essentially removes data tree and the other two
> > mounts remove the schema tree from this definition.
> >
> > Is your alias mount simply a special case of a peer mount where the
> > peer is local? Or is there more to it? In other words, would it be
> > reasonable to think of the terms in this way:
> >
> >          +-> schema (tree) mount
> > 	 |
> > mount -> |                        +-> local data tree (alias) mount
> >          +-> data (tree) mount -> |
> >                                   +-> remote data tree (peer) mount
> >
> > /js
> >
> > --
> > 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/>
> >
> > _______________________________________________
> > netmod mailing list
> > netmod@ietf.org
> > https://www.ietf.org/mailman/listinfo/netmod