Re: [netmod] explicit mount
Martin Bjorklund <mbj@tail-f.com> Thu, 25 February 2016 08:23 UTC
Return-Path: <mbj@tail-f.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0B7901A6EE6 for <netmod@ietfa.amsl.com>; Thu, 25 Feb 2016 00:23:57 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.907
X-Spam-Level:
X-Spam-Status: No, score=-1.907 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.006, SPF_PASS=-0.001] autolearn=ham
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 XBD-aTJjGiSS for <netmod@ietfa.amsl.com>; Thu, 25 Feb 2016 00:23:54 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id E56131A01A2 for <netmod@ietf.org>; Thu, 25 Feb 2016 00:23:53 -0800 (PST)
Received: from localhost (unknown [173.38.220.38]) by mail.tail-f.com (Postfix) with ESMTPSA id 1A6FA1AE0335; Thu, 25 Feb 2016 09:23:52 +0100 (CET)
Date: Thu, 25 Feb 2016 09:23:57 +0100
Message-Id: <20160225.092357.799424283049856775.mbj@tail-f.com>
To: j.schoenwaelder@jacobs-university.de
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20160224223913.GA18519@elstar.local>
References: <20160224160933.GA17873@elstar.local> <20160224.223040.105115912610069020.mbj@tail-f.com> <20160224223913.GA18519@elstar.local>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/B9B7i-QGs_PKMLg4s26s2XXHY0Q>
Cc: netmod@ietf.org
Subject: Re: [netmod] explicit mount
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
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: Thu, 25 Feb 2016 08:23:57 -0000
Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote: > On Wed, Feb 24, 2016 at 10:30:40PM +0100, Martin Bjorklund wrote: > > Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote: > > > On Tue, Feb 23, 2016 at 04:08:06PM +0100, Martin Bjorklund wrote: > > > > Hi, > > > > > > > > In yesterday's meeting, Lou (I think?) mentioned a use case for mount > > > > that is not documented in draft-rtgyangdt-rtgwg-device-model; the need > > > > for being able to specify modules to mount directly in the schema. > > > > Something like this: > > > > > > > > container root { > > > > ymnt:mount-point "lne" { > > > > ymnt:mount-module "ietf-interfaces"; > > > > } > > > > } > > > > > > > > It would be useful if the use case for this could be described in more > > > > details. Is it a requirement to be able to specify this in the > > > > schema, or could it be done (as Chris mentioned) in the RFC text? > > > > > > > > The reason I ask is that it is probably not as simple as the example > > > > above. First, you probably need to specify a revision of the module > > > > to be mounted. Or a min-revision. Then probably a set of features > > > > that must be enabled. And so on. It turns out that there is already > > > > a proposal for specifying such a "conformance profile" - YANG Packages > > > > (see draft-bierman-netmod-yang-package). Maybe it would be better to > > > > re-use packages? > > > > > > We are talking schema mount, right? > > > > Yes. > > > > > So why would features matter? > > > > If you want to mount a certain module, and that module has > > feature-conditional subtrees, you may want to make sure that those > > features are supported. If these features are not specified in the > > schema, we need to invent some mechanism for the server to advertise > > them for the mounted subtree. This is the job for the inline > > ietf-yang-library, or /mount-points state data in the structural-mount > > draft. > > > > My point is that while this idea (list the module you want to be > > mounted) seems simple, there are some issues to solve. Hence I would > > like to understand the use case before suggesting a solution. > > A schema in general does not explain which features an implementation > of that schema supports. A static schema mount is fully consistent > with that. > > Yes, the current YANG library may not expose features that apply to a > certain mounted schema but this I do not see this as something that > makes things more complicated from the schema point of view. > > I think the use cases are rather obvious. I build a device and I like > to rearrange existing models into a beautiful hierarchy (for some > definition of beauty). This would be pretty complicated. Suppose I define my own beautiful structure like this: container my-interfaces { x:mount-point "if" { x:mount-module "ietf-interfaces"; } } container my-routing { x:mount-point "rtr" { x:mount-module "ietf-routing"; } } Note that with the mount-point defined in my draft, each mount-point becomes itw own "jailed" or "chrooted" tree. So references cannot cross mount points. In this case, we have references between ietf-routing and ietf-interfaces. How would they work? What happens with the references if I do: container my-interfaces1 { x:mount-point "if1" { x:mount-module "ietf-interfaces"; } } container my-interfaces2 { x:mount-point "if2" { x:mount-module "ietf-interfaces"; } } container my-routing { x:mount-point "rtr" { x:mount-module "ietf-routing"; } } > Or I deal with some form of virtualization and > I write a bunch of nested containers and lists that express this and > then I mount existing YANG models into this hierarchy. In cases like > this, I know exactly which model I want to mount where at design > time. This is the logical device use case - Chris replied to this. > In your I-D (if I got this right), you only declare mount-points in > the schema and then an implementation can mount whatever it likes on a > mount-point. What is the use case for this? Why is it a feature to not > express in the schema at design time what can be expected behind a > mount point? See above. Another use case is what we are using in our NCS software, and ODL is using - a manager/controller/orchestrator that mounts the data models of the devices it manages/controls/orchestrates. These models are not known at design time. > BTW, in your example on page 10, should > > <name>device-root</name> > be > <name>logical-device</name> > > ? Yes. > There are likely many other questions that are largely independent of > the question whether the schema is fixed in a schema at schema design > time or only discoverable at runtime. (How do protocols interpret > instance-identifiers crossing mount points, how do you mix chrooted > and non-chrooted behaviour, what about edit-configs crossing mount > points, how does this all play with NACM, etc. Nobody expected this to > be easy.) Well, I think that the current mount-point w/ a chrooted behaviour simplifies this a lot. > Since you and Lada thought way more about this than I ever did, there > may be a reason why you both propose to make this runtime data driven > instead of having a piece of YANG defining how schemas are mounted > together. Hopefully this is clear now from the use cases we have presented. /martin > > /js > > > > Yes, > > > there might be interesting versioning issues but how are they > > > different from an augmentation putting data under root? I naively > > > considered such a 'static schema defined mount' the simplest case, > > > then the 'augmented schema defined mount' naturally following from the > > > way augmentations work: > > > > > > augment /some:root { > > > ymnt:mount-point "lne" { > > > ymnt:mount-module "ietf-interfaces"; > > > } > > > } > > > > > > The 'dynamic runtime defined mounts' may be most flexible but then > > > they require me to read runtime data in order to adapt to the schema > > > structure, which has its own set of complexities. > > > > I agree. > > > > > > /martin > > > > > > > Yes, the versioning > > > issues go away since I have to adapt to each implementation > > > dynamically but there is surely a cost involved with that as well. > > > > > > Am I missing something? > > > > > > /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/> > > > > > -- > 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] explicit mount Martin Bjorklund
- Re: [netmod] explicit mount Nadeau Thomas
- Re: [netmod] explicit mount Ladislav Lhotka
- Re: [netmod] explicit mount Kent Watsen
- Re: [netmod] explicit mount Ladislav Lhotka
- Re: [netmod] explicit mount Martin Bjorklund
- Re: [netmod] explicit mount Juergen Schoenwaelder
- Re: [netmod] explicit mount Robert Varga
- Re: [netmod] explicit mount Alexander Clemm (alex)
- Re: [netmod] explicit mount Martin Bjorklund
- Re: [netmod] explicit mount Juergen Schoenwaelder
- Re: [netmod] explicit mount Juergen Schoenwaelder
- Re: [netmod] explicit mount chopps
- Re: [netmod] explicit mount Martin Bjorklund
- Re: [netmod] explicit mount Alexander Clemm (alex)
- Re: [netmod] explicit mount Robert Varga
- Re: [netmod] explicit mount Ladislav Lhotka
- Re: [netmod] explicit mount Martin Bjorklund
- Re: [netmod] explicit mount Juergen Schoenwaelder
- Re: [netmod] explicit mount Juergen Schoenwaelder
- Re: [netmod] explicit mount Ladislav Lhotka
- Re: [netmod] explicit mount Martin Bjorklund
- Re: [netmod] explicit mount Juergen Schoenwaelder
- Re: [netmod] explicit mount Ladislav Lhotka
- Re: [netmod] explicit mount Martin Bjorklund
- Re: [netmod] explicit mount Juergen Schoenwaelder
- Re: [netmod] explicit mount Martin Bjorklund
- Re: [netmod] explicit mount Robert Wilton
- Re: [netmod] explicit mount Martin Bjorklund
- Re: [netmod] explicit mount Robert Wilton
- Re: [netmod] explicit mount Robert Wilton
- Re: [netmod] explicit mount Martin Bjorklund
- Re: [netmod] explicit mount Robert Wilton
- Re: [netmod] explicit mount Lou Berger
- Re: [netmod] explicit mount Robert Wilton
- Re: [netmod] explicit mount Lou Berger