Re: [netmod] kw comments on draft-voit-netmod-yang-mount-requirements

Ladislav Lhotka <lhotka@nic.cz> Tue, 05 April 2016 11:57 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 B1A6C12D505 for <netmod@ietfa.amsl.com>; Tue, 5 Apr 2016 04:57:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.01
X-Spam-Level:
X-Spam-Status: No, score=-7.01 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] 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 Tfongul8IaV9 for <netmod@ietfa.amsl.com>; Tue, 5 Apr 2016 04:57:01 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1229312D1D6 for <netmod@ietf.org>; Tue, 5 Apr 2016 04:57:00 -0700 (PDT)
Received: from [10.10.0.186] (unknown [190.111.246.211]) by mail.nic.cz (Postfix) with ESMTPSA id 182331800CC; Tue, 5 Apr 2016 13:56:56 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1459857418; bh=NJgf9ryvgf8DhYf2b2FcETODp0akLIrVZag1r0+AbPY=; h=From:Date:To; b=msFDaFYLrGZhZ+D3tTs2fZvnopRINkm3MoX2gWygTMgxNQFg21fB7kiE09zZsKE3u SikZifzhKAv38VTDp7kg7IrdEsedu+PbdvMxggC28o4vy+Ta1T9cEPKVIAqoLxlEGQ Qe7Wc+4IcOIZx5yk9orHbKLaTiIhIBEsJclS1KqI=
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20160405.113822.1614298419822308565.mbj@tail-f.com>
Date: Tue, 05 Apr 2016 08:56:53 -0300
Content-Transfer-Encoding: quoted-printable
Message-Id: <16B50CA8-0076-413D-87D1-FFBE6A54175C@nic.cz>
References: <51F6361D-5F32-449F-80D6-26A4B3569DC1@juniper.net> <20160405.113822.1614298419822308565.mbj@tail-f.com>
To: Martin Björklund <mbj@tail-f.com>
X-Mailer: Apple Mail (2.3124)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/zOBxe5uXgR0aS3HTYc4AX4WzU0w>
Cc: netmod@ietf.org
Subject: Re: [netmod] kw comments on draft-voit-netmod-yang-mount-requirements
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: Tue, 05 Apr 2016 11:57:04 -0000

> On 05 Apr 2016, at 06:38, Martin Bjorklund <mbj@tail-f.com> wrote:
> 
> Hi,
> 
> Kent Watsen <kwatsen@juniper.net> wrote:
>> [As a contributor]
>> 
>> Note: this is a -00 document, but only because the draft's name
>> changed.  In reality this is like a
>> draft-voit-netmod-peer-mount-requirements-04.  Looking at the diffs,
>> there aren't many changes, mostly cleanup and adding the "schema
>> mount" concept.  That is, the new "yang mount" term is use to cover
>> all of "schema mount", "alias mount", and "peer mount".
>> 
>> My comment is mostly high-level.  I'm wondering about the need for
>> this draft to include schema mount at all.  That is, a schema mount
>> solution draft is now an adopted WG item, and I'm unsure if the
>> authors of that draft are looking to this one to define requirements.
>> Perhaps the goal is to define the umbrella term "yang mount", but to
>> be honest, I don't really see a need to have a term that spans both
>> schema and data mounts.  I'm not sure how others feel about this, but
>> my thoughts are that we should define terms like:
>> 
>> - scheme-mount
>> - data-mount
>> - remote data mount   (a.k.a. peer mount)
>> - local data mount        (a.k.a. alias mount)
>> 
>> More so than:
>> 
>> yang-mount
>> - scheme-mount
>> - alias-mount
>> - peer-mount
> 
> Listening to Eric's presentation yesterday, I realized that I have a
> slightly different view on these terms.
> 
> I prefer to separate the *schema* (data model) from how things are
> implemented.  The various proposals for specific implementations (peer

Yes, I expressed this opinion already in Yokohama. Moreover, Eliot's presentation indicated that there are use cases in which YANG is used for modelling data outside the context of a management protocol. So IMO it is legitimate to require that even with schema mount it is possible to write a compact specification of the complete schema. Such a schema is static as before, the only change is that we have more flexibility in composing the modules, whereas currently they can be only put side by side. Also, there needn't be any mechanism like peer mount, all data may be local.

Perhaps this use case is really different from the more dynamic situation where the server needs to fetch the subschemas at runtime and the data are contributed by an external entity.

Lada

> mount and alias mount etc) all need a "schema mount" to take of
> defining a proper data model.   (This was the whole point of defining
> structural-mount...)
> 
> For example, suppose we have:
> 
>  container logical-devices {
>    list logical-device {
>      key name;
>      ...
>      yangmnt:mount-point logical-device;
>    }
>  }
> 
> With the associated yang-library, a client might learn that
> ietf-interfaces is mounted under the "logical-device" mount mount.
> 
> Now, the client knows that there are paths:
> 
>  /logical-devices/logical-device/if:interfaces/if:interface
> 
> but the client doesn't necessarily have to know if the the interfaces
> data is implemented w/ "peer mount" or some other mechanism.
> 
> 
> So, in my view, we have:
> 
>  schema mount
>      |
>      +---- peer mount
>      +---- alias mount
>      +---- other cool mount
> 
> 
> 
> As a concrete example, peer mount might be used like this (example
> taken from draft-clemm-netmod-mount-03):
> 
>   import ietf-schema-mount {
>     prefix yangmnt;
>   }
>   import ietf-peer-mount {
>     prefix pmnt;
>   }
> 
>   ...
> 
>   list network-element {
>     key "element-id";
>     leaf element-id {
>       type element-ID;
>     }
>     container element-address {
>       ... // choice definition that allows to specify
>           // host name,
>           // IP addresses, URIs, etc
>     }
>     yangmnt:mount-point "interfaces" {
>       pmnt:target "./element-address";
>       pmnt:subtree "/if:interfaces";
>     }
>     ...
>   }
> 
> 
> A client that knows about the generic, abstract schema mount can work
> with this, without knowing anything of the specific implementation of
> peer mount.
> 
> [Actually, since peer mount is just one implementation technique, I'd
> prefer to decouple the definition of this implementation detail from
> the data model, but that's a different topic.]
> 
> 
> /martin
> 
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C