Re: [netmod] Design-Time schema mount
Ladislav Lhotka <lhotka@nic.cz> Fri, 26 August 2016 12:28 UTC
Return-Path: <lhotka@nic.cz>
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 BE81312D5E7 for <netmod@ietfa.amsl.com>; Fri, 26 Aug 2016 05:28:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 KxspzTtxHTCC for <netmod@ietfa.amsl.com>; Fri, 26 Aug 2016 05:28:23 -0700 (PDT)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 9A23B12D694 for <netmod@ietf.org>; Fri, 26 Aug 2016 05:28:22 -0700 (PDT)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id DEF9D1CC00D3; Fri, 26 Aug 2016 14:28:21 +0200 (CEST)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Martin Bjorklund <mbj@tail-f.com>, balazs.lengyel@ericsson.com
In-Reply-To: <20160826.102122.372934259558220723.mbj@tail-f.com>
References: <6d87e060-3c52-38f6-e499-da3d7c20a783@ericsson.com> <20160826.102122.372934259558220723.mbj@tail-f.com>
User-Agent: Notmuch/0.22.1 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Fri, 26 Aug 2016 14:28:22 +0200
Message-ID: <m27fb3af4p.fsf@birdie.labs.nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/aJB84kDhwoCKb3tP-esLfRdKetk>
Cc: netmod@ietf.org
Subject: Re: [netmod] Design-Time schema 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: Fri, 26 Aug 2016 12:28:29 -0000
Martin Bjorklund <mbj@tail-f.com> writes: > Hi, > > [replying to the first post in this (old) thread; the thread got a bit > off-topic] > > Balazs Lengyel <balazs.lengyel@ericsson.com> wrote: >> Hello, >> >> As I understand it, Schema-mount today does not support an important >> use-case which we definitely need, but others also indicated they >> want. >> >> I want to specify off-line in design time which models will be mounted >> where. Many of my nodes know in design-time what their model structure >> will be, so I want a way to be able to document this in YANG. > > I'd like to understand this use case in more detail. You say that > that a "node knows in design-time" that YANG models it will use. Thus > it seems natural to be able to specify which other modules to mount in > the YANG module itself. Did you have a chance to look into my slides from Berlin? I sketched some solutions there. > > The problem I see with this is that it is very limited to the use case > where each implementation defines its own YANG modules. Suppose you > have such a model, for example: > > module A { > ... > mount ... { > mount-module B; > mount-module C; > } > } > > [pseudo-code for module A that specifies that it mounts B and C] > > Now, suppose you take this module A to another implementation, and it > needs to augment something into module C; essentially this means that > it would like to mount B, C and new module D. This will not be > possible unless it modifies module A. Not necessarily, D could contain an augment with a target specified by a schema node identifier that uses nodes from both A and C. Imagine that instead of "ietf-ip" augmenting "ietf-interfaces" it would be the other way around: "ietf-interfaces" mounts "ietf-ip". Then the augment in ietf-ipv6-router-advertisements augment "/if:interfaces-state/if:interface/ip:ipv6" { ... } needn't be changed. The major problem with this IMO is that it needs a new YANG statement. > >> In >> today's proposal the only way to find the Yang-Mounts is to read it >> from the live node. >> >> * OAM integrators or operators want to be able to write CLI scripts >> and Netconf messages without accessing (expensive) real nodes. For >> this they need to know the mounts >> * We want to generate some fancy documentation from YANG automatically >> in design-time. > > In a way this is no different from the situation today - in order to > learn what YANG modules a device supports you need to connect and > parse the <hello> message (or ietf-yang-library data in the near > future). This info could also be made available off-line in a file. Yup. So we just need some machine-readable description of the structure of mounted schemas. > > It should certainly be possible to define a file format that a device > somehow could "publish" off-line that contained all the info that is > available at run-time. This file format could be exactly the same as > you would get if you did a NETCONF <get/> operation with some filter > to only retreive the ietf-yang-library data at the mount points. Well, if you have multiple levels of mounts, it will get messy: you wouldn't know which yang-library data belongs to which mount point. I believe some variation on YSDL could work, and as I wrote in another thread, we could also incorporate datastores: after defining the (multilevel) schemas, each datastore will get one assigned - and they can also share them where needed. Lada > > > > /martin > > >> >> * Many use cases need the possibility to mount schemas, but do not >> need the added complexity of schema changes in run-time. >> Notwithstanding the case of "YANG Features", for me the model schema >> is a mostly static description of a nodes capabilities. Most of the >> time I do not want to worry about the node changing its schema on >> the fly. >> >> >> For this I propose 2 YANG extensions >> >> extension schema-mount { >> description "Indicates that a YANG Module is to be mounted into >> another module. >> The argument specifies the name of the module to be mounted."; >> argument mounted-module; >> } >> >> extension schema-mount-target { >> description "Specifies the target node under which a YANG module is to >> be mounted. >> The statement can only be used inside a schema-mount statement. >> The argument follows the same rules as an augment statement's target. >> argument target-node; >> } >> >> The two extension statements can be placed in a separate module or the >> mounted module. >> >> I don't insist on the solution, but I need the off-line/design-time >> specification of yang-mount to be possible. IMHO the design-time mount >> use-case is more important than the dynamic-mount. >> >> regards Balazs >> -- >> Balazs Lengyel Ericsson Hungary Ltd. >> Senior Specialist >> Mobile: +36-70-330-7909 email: Balazs.Lengyel@ericsson.com > > _______________________________________________ > netmod mailing list > netmod@ietf.org > https://www.ietf.org/mailman/listinfo/netmod -- Ladislav Lhotka, CZ.NIC Labs PGP Key ID: E74E8C0C
- Re: [netmod] Design-Time schema mount Ladislav Lhotka
- Re: [netmod] Design-Time schema mount Ladislav Lhotka
- Re: [netmod] Design-Time schema mount Ladislav Lhotka
- Re: [netmod] Design-Time schema mount Andy Bierman
- Re: [netmod] Design-Time schema mount Juergen Schoenwaelder
- Re: [netmod] Design-Time schema mount Ladislav Lhotka
- Re: [netmod] Design-Time schema mount Balazs Lengyel
- Re: [netmod] Design-Time schema mount Ladislav Lhotka
- Re: [netmod] Design-Time schema mount Balazs Lengyel
- Re: [netmod] Design-Time schema mount Andy Bierman
- Re: [netmod] Design-Time schema mount Balazs Lengyel
- Re: [netmod] Design-Time schema mount Balazs Lengyel
- Re: [netmod] Design-Time schema mount Andy Bierman
- Re: [netmod] Design-Time schema mount Robert Wilton
- Re: [netmod] Design-Time schema mount Juergen Schoenwaelder
- Re: [netmod] Design-Time schema mount Balazs Lengyel
- Re: [netmod] Design-Time schema mount Ladislav Lhotka
- Re: [netmod] Design-Time schema mount Balazs Lengyel
- Re: [netmod] Design-Time schema mount Ladislav Lhotka
- [netmod] Design-Time schema mount Balazs Lengyel
- Re: [netmod] Design-Time schema mount Martin Bjorklund
- Re: [netmod] Design-Time schema mount Martin Bjorklund
- Re: [netmod] Design-Time schema mount Ladislav Lhotka
- Re: [netmod] Design-Time schema mount Ladislav Lhotka
- Re: [netmod] Design-Time schema mount Balazs Lengyel
- Re: [netmod] Design-Time schema mount Andy Bierman
- Re: [netmod] Design-Time schema mount Balazs Lengyel