Re: [netmod] explicit mount
Martin Bjorklund <mbj@tail-f.com> Thu, 25 February 2016 08:00 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 4E0DF1A00A5 for <netmod@ietfa.amsl.com>; Thu, 25 Feb 2016 00:00:55 -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 A2oXiaf1e0QH for <netmod@ietfa.amsl.com>; Thu, 25 Feb 2016 00:00:51 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 91CD71A1BE9 for <netmod@ietf.org>; Thu, 25 Feb 2016 00:00:51 -0800 (PST)
Received: from localhost (unknown [173.38.220.38]) by mail.tail-f.com (Postfix) with ESMTPSA id A8B001AE0335; Thu, 25 Feb 2016 09:00:49 +0100 (CET)
Date: Thu, 25 Feb 2016 09:00:54 +0100
Message-Id: <20160225.090054.381856038663521339.mbj@tail-f.com>
To: lhotka@nic.cz
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <96C185F2-2A98-4167-93E8-F090B0DA31FD@nic.cz>
References: <20160224.223040.105115912610069020.mbj@tail-f.com> <20160224223913.GA18519@elstar.local> <96C185F2-2A98-4167-93E8-F090B0DA31FD@nic.cz>
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/k1199mNPqlGDpLlJ-wR8XeQqC1s>
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:00:55 -0000
Ladislav Lhotka <lhotka@nic.cz> wrote: > > > On 24 Feb 2016, at 23:39, 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). 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. > > > > 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? > > > > BTW, in your example on page 10, should > > > > <name>device-root</name> > > be > > <name>logical-device</name> > > > > ? > > > > 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.) > > > > 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. > > Three reasons: > > 1. I wanted a mechanism that requires no change in YANG (and, as I > said, using an extension for this is taboo for me). But *not* using an extension is as bad for the poor client as having an extension it just ignores! In both cases the old client sees a normal data model, and in both cases the data model is in fact extended via mount. > 2. It is more flexible: modules can be combined in different ways, Agreed. > and using the same "mounting" module with different sets of mounted > modules would require different versions of the mounting module. I don't understand what you try to say here. > I > guess the motivation is similar as for NVDL: > > http://petrnalevka.blogspot.cz/2010/05/nvdl-breath-of-fresh-air-for-compound.html > > 3. This mechanism seems incompatible with groupings, or at least I > cannot imagine how such a mount could be handled inside a grouping. > > BTW, the last item also applies to Martin's mount-point extension: > if it appears inside a grouping, then the same mount point may end > up in different places and the whole concept breaks down. If a mount-point is defined in a grouping, that grouping can only be used once in a module. The mount-point name gets bound to the module that uses the grouping. I will clarify this in my draft. /martin > > Lada > > > > > /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 mailing list > > netmod@ietf.org > > https://www.ietf.org/mailman/listinfo/netmod > > -- > Ladislav Lhotka, CZ.NIC Labs > PGP Key ID: E74E8C0C > > > >
- [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