Re: [netmod] schema mount and YANG library

Ladislav Lhotka <lhotka@nic.cz> Wed, 17 January 2018 16:34 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 58C1D12D7F1 for <netmod@ietfa.amsl.com>; Wed, 17 Jan 2018 08:34:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.009
X-Spam-Level:
X-Spam-Status: No, score=-7.009 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, T_RP_MATCHES_RCVD=-0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nic.cz
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 5ItF74rHucw5 for <netmod@ietfa.amsl.com>; Wed, 17 Jan 2018 08:34:36 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 47E6213149F for <netmod@ietf.org>; Wed, 17 Jan 2018 08:34:35 -0800 (PST)
Received: from birdie (unknown [IPv6:2001:1488:fffe:6:3095:1bff:fe2b:aa11]) by mail.nic.cz (Postfix) with ESMTPSA id EE99B64AF3; Wed, 17 Jan 2018 17:34:33 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1516206874; bh=/sFKiD+YiyTJO49QJFoKTCDO02FSaZaqZCO1NFDghvg=; h=From:To:Date; b=vHoHo+xzL+xGKTN5qBNVxDzhNYyiqDdQx1u37VUHkO+JtYjvCy+cT6s0MDp66M6bd iKgk1W5iVZLXSJuyqnnXEA+8moZ4d04VJlHKJuCk/Ojz4cvglQa3UthZ4whUm86C4a Md/04XbCpB52tvFx7yaIkwnoTxaaBSLBYzHmluaU=
Message-ID: <1516206873.1388.68.camel@nic.cz>
From: Ladislav Lhotka <lhotka@nic.cz>
To: Martin Bjorklund <mbj@tail-f.com>, lberger@labn.net
Cc: netmod@ietf.org
Date: Wed, 17 Jan 2018 17:34:33 +0100
In-Reply-To: <20180117.171817.479473055872371790.mbj@tail-f.com>
References: <e3d5c195-a737-057a-5911-daa50a06c4bd@labn.net> <20180117.154205.449528767667713089.mbj@tail-f.com> <16104ca0948.27d3.9b4188e636579690ba6c69f2c8a0f1fd@labn.net> <20180117.171817.479473055872371790.mbj@tail-f.com>
Organization: CZ.NIC
Content-Type: text/plain; charset="UTF-8"
X-Mailer: Evolution 3.26.4
Mime-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Virus-Scanned: clamav-milter 0.99.2 at mail
X-Virus-Status: Clean
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/0EihHEotliQ7ujyud6tmmD8tdRk>
Subject: Re: [netmod] schema mount and YANG library
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.22
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, 17 Jan 2018 16:34:38 -0000

On Wed, 2018-01-17 at 17:18 +0100, Martin Bjorklund wrote:
> Lou Berger <lberger@labn.net> wrote:
> > 
> > 
> > On January 17, 2018 9:42:43 AM Martin Bjorklund <mbj@tail-f.com>
> > wrote:
> > 
> > > Lou Berger <lberger@labn.net> wrote:
> > > > 
> > > > 
> > > > On 1/17/2018 3:20 AM, Martin Bjorklund wrote:
> > > > > Lou Berger <lberger@labn.net> wrote:
> > > > > > 
> > > > > > On 1/16/2018 11:15 AM, Robert Wilton wrote:
> > > > > > > On 16/01/2018 15:50, Martin Bjorklund wrote:
> > > > > > > > Lou Berger <lberger@labn.net> wrote:
> > > > > > > > > On 1/16/2018 10:13 AM, Martin Bjorklund wrote:
> > > > > > > > > ... (trimming to topic)
> > > > > > > > > > > > > > > > > rejectected by the WG multiple times.  FWIW
> > > > > > > > > > > > > > > > > there are drafts
> > > > > > > > > > > > > > > > > already
> > > > > > > > > > > > > > > > > with
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > No at all. The first and last time I proposed
> > > > > > > > > > > > > > > > this was on 15
> > > > > > > > > > > > > > > > December
> > > > > > > > > > > > > > > > 2017:
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > > https://www.ietf.org/mail-archive/web/netmod/cur
> > > > > > > > > > > > > > > > rent/msg19753.html
> > > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > Oh, I certainly would call you proposing that the
> > > > > > > > > > > > > > > schema for
> > > > > > > > > > > > > > > inline
> > > > > > > > > > > > > > > be
> > > > > > > > > > > > > > > part of the rest of the schema Mount module well
> > > > > > > > > > > > > > > before
> > > > > > > > > > > > > > > that. I'm
> > > > > > > > > > > > > > > sure
> > > > > > > > > > > > > > > I can dig up mail / slides it really necessary...
> > > > > > > > > > > > > > 
> > > > > > > > > > > > > > I don't think this has been proposed before.  All
> > > > > > > > > > > > > > previous
> > > > > > > > > > > > > > proposals
> > > > > > > > > > > > > > were basically variants on what is now "use-schema", 
> > > > > > > > > > > > > > which works
> > > > > > > > > > > > > > fine
> > > > > > > > > > > > > > when all instances have the same schema.  This new
> > > > > > > > > > > > > > proposal
> > > > > > > > > > > > > > solves
> > > > > > > > > > > > > > the
> > > > > > > > > > > > > > issue with different schemas in different instances.
> > > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > I thought the previous proposals that as well, so
> > > > > > > > > > > > > don't see
> > > > > > > > > > > > > material
> > > > > > > > > > > > > difference - at least from the usage standpoint. I
> > > > > > > > > > > > > also don't see
> > > > > > > > > > > > > why
> > > > > > > > > > > > > the previous arguments that resulted in consensus for
> > > > > > > > > > > > > using Yang
> > > > > > > > > > > > > Library underneath the an in line Mount Point don't
> > > > > > > > > > > > > apply.
> > > > > > > > > > > > 
> > > > > > > > > > > > B/c it doesn't work well with the NMDA.  You can't mount
> > > > > > > > > > > > yang
> > > > > > > > > > > > library
> > > > > > > > > > > > in the configuration datastores; it has to be mounted in
> > > > > > > > > > > > operational.
> > > > > > > > > > > > With meta-data, you can actually report the correct
> > > > > > > > > > > > schema even in
> > > > > > > > > > > > running.  (This is actually true also for pre-NMDA
> > > > > > > > > > > > systems).
> > > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > Understood and agree there is nothing new here and the
> > > > > > > > > > > current
> > > > > > > > > > > version
> > > > > > > > > > > of SM (including inline) has the same limitation as
> > > > > > > > > > > rfc7895, and I'd
> > > > > > > > > > > expect it to behave the same once we have rfc7985bis -- in
> > > > > > > > > > > fact the
> > > > > > > > > > > inline case "just works" with YL-bis as defined today.
> > > > > > > > > 
> > > > > > > > > Martin,
> > > > > > > > > 
> > > > > > > > > you didn't respond to this point.
> > > > > > > > 
> > > > > > > > I agree, it works for non-NMDA servers. But see below.
> > > > > > > > 
> > > > > > > > > > > The argument I recall being the key point on inline was
> > > > > > > > > > > handling the
> > > > > > > > > > > large variety of possible different implementation
> > > > > > > > > > > approaches for
> > > > > > > > > > > modules using inline.
> > > > > > > > > > 
> > > > > > > > > > I think these still are covered.
> > > > > > > > > > 
> > > > > > > > > > > For example an LNE that is implemented using
> > > > > > > > > > > VMs which can be managed by the host at different times of
> > > > > > > > > > > the VMs
> > > > > > > > > > > operational life cycle based on customer/provider
> > > > > > > > > > > requirements.  I
> > > > > > > > > > > really don't see how YL-bis has any bearing on this point
> > > > > > > > > > > and
> > > > > > > > > > 
> > > > > > > > > > Using the new proposed meta data annotation together with
> > > > > > > > > > the new YL
> > > > > > > > > > means that SM can support the use case above also in an NMDA
> > > > > > > > > > server.
> > > > > > > > > > I think the new proposed solution covers more use cases than
> > > > > > > > > > the
> > > > > > > > > > previous solution.
> > > > > > > > > 
> > > > > > > > > how so?  The inline mount point would contain YL-bis and have
> > > > > > > > > the same
> > > > > > > > > information there, just scoped for the mount point.  It's true
> > > > > > > > > a
> > > > > > > > > client would need to understand the mount point's schema only
> > > > > > > > > upon
> > > > > > > > > parsing the YL under the mount point and this schema could not
> > > > > > > > > be
> > > > > > > > > shared across inline mount points.  But this is as was
> > > > > > > > > discussed in
> > > > > > > > > the past and unchanged from YL.
> > > > > > > > > 
> > > > > > > > > > Do you think that there is any use case that the proposed
> > > > > > > > > > solution
> > > > > > > > > > cannot handle, but the previous solution did?
> > > > > > > > > 
> > > > > > > > > yes.  with VM/container technologies the YL / schema can
> > > > > > > > > change under
> > > > > > > > > the mount point from time to time during normal operation
> > > > > > > > > (i.e.,
> > > > > > > > > during runtime, no reboot) and, in some implementations, may
> > > > > > > > > require
> > > > > > > > > some level of rpc operation to access even the schema.  The
> > > > > > > > > new (and
> > > > > > > > > previously proposed approach) of having inline schema
> > > > > > > > > available from
> > > > > > > > > the top level greatly complicates these cases.  Also keep in
> > > > > > > > > mind that
> > > > > > > > > there will be cases where the ability to access information
> > > > > > > > > under an
> > > > > > > > > inline mount point will dynamically change in operation (and
> > > > > > > > > top level
> > > > > > > > > YL would need to remove schema information for the inline
> > > > > > > > > mount
> > > > > > > > > point.)  As before, from the usage standpoint, these changes
> > > > > > > > > don't
> > > > > > > > > provide a whole lot of value and seem to optimizing for
> > > > > > > > > something not
> > > > > > > > > needed in the inline case.
> > > > > > > > 
> > > > > > > > I think this is an implementation issue, rather than a problem
> > > > > > > > with
> > > > > > > > the proposed mechanism, and it is present in the current
> > > > > > > > solution as
> > > > > > > > well.  An implementation that can handle dynamically changing
> > > > > > > > mounted
> > > > > > > > YLs in the current solution can do that in the new solution as
> > > > > > > > well.
> > > > > > > > 
> > > > > > > > > > > I think
> > > > > > > > > > > it is incumbent upon those revisiting past/closed WG
> > > > > > > > > > > decisions (in
> > > > > > > > > > > this case, inline schema being represented by YL) to argue
> > > > > > > > > > > why the
> > > > > > > > > > > decision needs to be revisited.
> > > > > > > > > > 
> > > > > > > > > > I'm repeating my self: b/c the current solution doesn't work
> > > > > > > > > > well
> > > > > > > > > > with
> > > > > > > > > > the NMDA.
> > > > > > > > > 
> > > > > > > > > I simply don't understand how YL-bis works at the root node
> > > > > > > > > but
> > > > > > > > > doesn't work equally at an inline mount point.  Can you
> > > > > > > > > elaborate?
> > > > > > > > 
> > > > > > > > With NMDA, a server may have one schema for the config datastore
> > > > > > > > and
> > > > > > > > another one for operational (one is a superset of the other).  A
> > > > > > > > mounted YL can only be present in operational.  Thus, there's no
> > > > > > > > way a
> > > > > > > > client can learn the schema for config.
> > > > > > > 
> > > > > > > If the LNE mounted the full YL-bis at the mount point then you
> > > > > > > would
> > > > > > > have the list of datastores, and the schema associated with each
> > > > > > > datastore.  Of course, this would only be available in
> > > > > > > operational,
> > > > > > > but
> > > > > > > that is the same as a regular server support YL-bis.
> > > > > > 
> > > > > > exactly my point.
> > > > > 
> > > > > Yes, you're right.  But it requires the usage of YL-bis.
> > > > > 
> > > > > > > I thought that the problem with the current solution and NMDA, was
> > > > > > > that
> > > > > > > there is no way to find out what the LNE schema is if the LNE
> > > > > > > isn't
> > > > > > > booted, and hence isn't providing <operational>.
> > > > > > 
> > > > > > I've never heard anyone mention this issue/limitation.
> > > > > 
> > > > > This has been dicussed, but this does not change with the introduction
> > > > > of the meta annotation; if the server has off-line knowledge of the
> > > > > instance's schema then it can populate an inline YL as well as the
> > > > > meta annotation and corresponding SM data.
> > > > > 
> > > > > > My
> > > > > > understanding of the previously raised objections were (a) that the
> > > > > > full schema can't be obtained by just reading the top level YL and
> > > > > > (b)
> > > > > > that when multiple inline mount points have the same schema the
> > > > > > information can't be combined using a shared schema approach as is
> > > > > > taken in base SM.
> > > > > 
> > > > > Right.  Both these issues are addressed by using a meta annotation.
> > > > 
> > > > But when we discussed this the last time having inline schema
> > > > available at the top level (in the SM module), the general consensus
> > > > was that having YL under inline was the preferred approach.
> > > 
> > > What is new now is that we have an indirection; each instance has its
> > > own pointer to the schema at the top level.  In the previous
> > > discussion, having the schema at the top level implied that all
> > > instances shared the same schema, and *that* was rejected.
> > > 
> > 
> > Indirection was possible at the previous time and is part of the
> > current scheme Mount definition. Yes, you need to use different mount
> > points to reference different schema, but take a look at the ni
> > document that's exactly what we are doing there. So I don't believe
> > this is the point that caused the previous proposal to be rejected.
> > 
> > > > Lada
> > > > stated that he didn't like the approach, but would go with the WG
> > > > decision.  Why are we reopening this closed discussion -- many months
> > > > after we closed the issue?  Most who contributed, notably users, have
> > > > moved from SM assuming it's a solved problem.
> > > > 
> > > > At this point, I think the case needs to be made why the existing
> > > > mechanisms in the draft are broken vs how they might be improved. My
> > > > understanding is that there was one issue that could be clarified by
> > > > the proposed text I included when restarting this discussion.
> > > > 
> > > > What else is *broken* in the current draft?
> > > 
> > > My main concern is actually the YL version.  I strongly think SM need
> > > to use YL-bis rather that the old YL, so that it can support NMDA.
> > > 
> > 
> > Right now to SM is independent of Yang Library version and can run
> > with either.
> 
> No this is not correct.  SM uses a grouping from the old YANG
> library (for the "use-schema" case), and talks about mounting
> "modules-state" ("inline" case).
> 
> > I certainly would expect use of Yang Library bis and nmda
> > to have advantages.
> > 
> > > The implementation effort for supporting the new YL in clients and
> > > servers is minimal, esp. when compared to the efforts involved in
> > > supporting SM.
> > > 
> > > Adding an indirection is (for me) less important, but it has the
> > > benefit of solving the two issues (a) and (b) above, and I haven't
> > > seen any technical problem with it.
> > > 
> > 
> > (A) has implementation implications and those participating in the
> > discussion at the time expressed as not being worth the cost.
> > I don't believe b was seen as a significant issue either.
> > 
> > > Do you have any technical concerns with using an annotation as an
> > > indirection?
> > > 
> > 
> > The technicsl issue I have with the approaches the same one that was
> > raised when debated previously, ie the implementation overhead of
> > requiring inline schemas to be available at the top level.

Could you specify where this overhead comes from? Does it matter whether you
place some data inside the data tree or somewhere at the top level and point to
it from inside the tree?

> 
> Ok.  I'm ok with keeping the inline case as it is.  However, I think

I don't agree. The metadata annotation solves real issues.

Lada

> we need to use the new YL-bis, so that we can support the NMDA.
> 
> 
> /martin
> 
> 
> 
> 
> 
> > 
> > From a process perspective, I don't think it's fair to those who
> > provided input or contributed in the past in order to get scheme mount
> > to satisfy their requirements to reopen something that is not
> > broken. Particularly because a number of those contributors are
> > implementers and users who are now focused on other topics.
> > 
> > Lou
> > 
> > > 
> > > /martin
> > > 
> > 
> > 
> 
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
-- 
Ladislav Lhotka
Head, CZ.NIC Labs
PGP Key ID: 0xB8F92B08A9F76C67