Re: [netmod] Comparison of structural-mount and ysdl drafts

"Eric Voit (evoit)" <evoit@cisco.com> Mon, 25 January 2016 22:53 UTC

Return-Path: <evoit@cisco.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 6A1401A1B87 for <netmod@ietfa.amsl.com>; Mon, 25 Jan 2016 14:53:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.502
X-Spam-Level:
X-Spam-Status: No, score=-14.502 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, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] 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 fkYE3Jks9ocb for <netmod@ietfa.amsl.com>; Mon, 25 Jan 2016 14:53:03 -0800 (PST)
Received: from rcdn-iport-2.cisco.com (rcdn-iport-2.cisco.com [173.37.86.73]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D0B061A1B83 for <netmod@ietf.org>; Mon, 25 Jan 2016 14:53:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=8869; q=dns/txt; s=iport; t=1453762382; x=1454971982; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=faV/6ICNyvxkPbjXNKMQP1wW2hufWQYsmu8g+vJ1ngc=; b=jI0qWGr7IRqQfxCn5bmqkOsRVCfOoA0QBo6UBosWmfvZ0kwXVQUt3/Zp 7LW3mhrX+DNdS3zwAsb2IommVEF2y3HV7cXK5oE13dIyq3hZM2ooIqSRE mmibobbBmPsXUeg/GNLwv16y6OrXzaRd3G+ShYESVJNQAOgKu6GFVljh2 E=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0A1AgBtpqZW/4cNJK1egzpSbQaEJYQsshQBDYFjGAqCPYJmSgKBRjgUAQEBAQEBAYEKhEEBAQEEAQEBCywrCQsMBAIBCBEEAQEBHgkHJwsUCQgCBA4FCBOIAA6+QwEBAQEBAQEBAQEBAQEBAQEBAQEBAREEhjKEbYQbCgcBhFkFlnYBiDaFGIFlhESIV44+AR4BAUKDaWqGAwkXHXwBAQE
X-IronPort-AV: E=Sophos;i="5.22,346,1449532800"; d="scan'208";a="69778987"
Received: from alln-core-2.cisco.com ([173.36.13.135]) by rcdn-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 25 Jan 2016 22:53:01 +0000
Received: from XCH-RTP-010.cisco.com (xch-rtp-010.cisco.com [64.101.220.150]) by alln-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id u0PMr1S8017859 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Mon, 25 Jan 2016 22:53:01 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-010.cisco.com (64.101.220.150) with Microsoft SMTP Server (TLS) id 15.0.1104.5; Mon, 25 Jan 2016 17:53:00 -0500
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1104.009; Mon, 25 Jan 2016 17:53:00 -0500
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Ladislav Lhotka <lhotka@nic.cz>, "Robert Wilton -X (rwilton - ENSOFT LIMITED at Cisco)" <rwilton@cisco.com>
Thread-Topic: [netmod] Comparison of structural-mount and ysdl drafts
Thread-Index: AQHRVSWLfmMu15gC6EudMeiiRL2Xh58My3Pg
Date: Mon, 25 Jan 2016 22:53:00 +0000
Message-ID: <78b237493c4447dca8cca676972a971e@XCH-RTP-013.cisco.com>
References: <56A0C64A.3090506@cisco.com> <m2oacdeqgb.fsf@birdie.labs.nic.cz> <56A22E6E.1040109@cisco.com> <097158EE-01CF-421E-AB35-E2FBFA6E3F3B@nic.cz>
In-Reply-To: <097158EE-01CF-421E-AB35-E2FBFA6E3F3B@nic.cz>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.230]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Jd1zHRZw1U9ENxJbnIXTdzWtG4g>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Comparison of structural-mount and ysdl drafts
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: Mon, 25 Jan 2016 22:53:05 -0000

Robert,

Per (1) below, if you are looking to mount yang from one device to another, the drafts to look at are:
   draft-clemm-netmod-mount-03
   draft-voit-netmod-peer-mount-requirements-03

At this point NETMOD as a whole has not attempted to address whether any common syntax or requirements should bind this aggregate set of four drafts.

Eric


> -----Original Message-----
> From: netmod [mailto:netmod-bounces@ietf.org] On Behalf Of Ladislav Lhotka
> Sent: Friday, January 22, 2016 10:00 AM
> To: Robert Wilton -X (rwilton - ENSOFT LIMITED at Cisco)
> Cc: netmod@ietf.org
> Subject: Re: [netmod] Comparison of structural-mount and ysdl drafts
> 
> 
> > On 22 Jan 2016, at 14:28, Robert Wilton <rwilton@cisco.com> wrote:
> >
> > Hi Lada,
> >
> > Please see inline ...
> >
> > On 22/01/2016 12:41, Ladislav Lhotka wrote:
> >> Robert Wilton <rwilton@cisco.com> writes:
> >>
> >>> Hi Lada, Martin,
> >>>
> >>> I've reviewed both draft-bjorklund-netmod-structural-mount-00 and
> >>> draft-lhotka-netmod-ysdl-00.
> >>>
> >>> In comparing these two drafts, the main differences that I perceive are:
> >>>
> >>> 1) structural-mount allows the mounted data model to publish its
> >>> supported schema at the mount point, but ysdl requires the mounting
> >>> device to know and publish the schema for all mounted data models.
> >> I am not sure what you mean by "publish" but I think really the only
> >> difference is that structural-mount provides schema information as
> >> regular state data and YSDL as meta-data.
> > I was really referring to the inline-yang-library option in structural mount that
> allows the actual YANG schema to be deferred to the mounted device
> implementing yang-library (and which is available at the mount point).  This is
> the option that I would anticipate would be used in the LNE model.
> 
> YSDL doesn't address any kind of remote mounts. It just adds a pull-style method
> for the schema construction but everything is local to the device. I think that
> mounting data from other devices is a different matter with specific problems
> (access) that don't exist in YSDL.
> 
> >
> >>
> >> In my view, the definition of a data model schema is really
> >> meta-data. The module "ietf-yang-structural-mount" and its data would
> >> require special treatment anyway - for example, it has to be found in
> >> a well-known location, so it cannot itself be mounted.
> > Yes, I can see how it is meta-data, but I'm not sure that it is significantly
> different from the information provided in yang-library which is represented a s
> regular YANG operational module.
> 
> It doesn't really matter how the schema info is retrieved, as long as it is state
> data available at a well-known location. As I wrote, YSDL could be just an
> augmentation of yang-library.
> 
> Lada
> 
> >
> > For structural-mount: A mounted model should be able to make the mount-
> points structure available at the mount point if required. I.e. the solution is able
> to naturally recurse (as Martin confirmed in reply to Robert Varga's email).
> >
> >>
> >>> 2) A corollary of (1) is that structural-mount also allows different
> >>> schema data models to be published at the mount point (e.g. under a
> >>> list), but ysdl does not.
> >> True, but it can be easily emulated by using either a choice (or a
> >> "dynamic choice" using "when") and defining different sub-schemas as
> >> different cases. I'd argue this is a more robust approach.
> > I don't think that emulating this with a choice is going to be particularly clean.
> In addition, the device that is doing the mounting doesn't necessarily know what
> models the mounted device actual implements.  For ysdl to work for this
> scenario, the mounting device would probably need to query the yang-library
> (and/or ysdl meta-information to allow the solution to recurse) for each
> mounted device to construct the meta-data for it. At this point I would argue
> that it is easier to just provide direct access to the yang-library for the mounted
> device (as structural-mount solution proposes).
> >
> >>
> >>> 3) structural-mount has a mount node embedded directly in the
> >>> schema, where as for ysdl, the equivalent mount points are only
> >>> specified in the ysdl meta-schema.
> >>> 4) ysdl is extensible to cover other non mount related use-cases
> >>> (such as anydata) where being able to dynamically make available the
> >>> schema is useful.
> >>> 5) structural-mount also covers RPCs and Notifications, whereas
> >>> these appear to be outside the scope of ysdl.
> >> This is just an omission on the part of YSDL. The approach proposed
> >> for structural-mount can be used as well.
> > OK.
> >
> >>
> >>> 6) The ysdl meta-data language appears to be more flexible, and
> >>> hence also more complex, than the equivalent "mount-points" schema
> >>> defined in structural-mount.
> >>> 7) For structural-mount the "mount-points" table is returned as a
> >>> normal oper data YANG module in the mounting device, whereas for
> >>> ysdl, protocol extensions would be required to NETCONF/RESTCONF to
> >>> access the schema meta-data.
> >> First, structural-mount uses an extension that has to be considered
> >> mandatory because otherwise no interoperability can take place. So I
> >> don't think that it seamlessly integrates into NETCONF/RESTCONF.
> > I think that only clients and devices that need to mount other models would
> need to support it.  Whether this means it becomes mandatory would
> presumable depend on how widely the mount node used in standard YANG
> models.
> >
> >>
> >> And second, I actually considered to simply extend yang-library with
> >> the YSDL data, but I decided to keep it separate in order to avoid
> >> additional delays for the yang-library spec.
> >>
> >>> Considering these differences:
> >>>
> >>> For points (1) and (2), I can think of scenarios where having a
> >>> mounted device being able to provide its schema via yang-library and
> >>> for that schema to differ for different mounted devices is probably
> >>> a requirement for some plausible mount scenarios.  E.g. one that I
> >>> can think of is the case that you have a YANG controller that is
> >>> exposing an aggregated YANG model for a set of devices, it seems
> >>> that you would need to be accommodate mounted devices that are made
> >>> by different vendors and running different software versions which
> >>> would imply that their schema may also be different.
> >> Right, you would use a (dynamic) choice in this case.
> > As per above, I'm not really convinced that this works as a solution.
> >
> >>
> >>> For point (3), this is a matter of preference, I like that fact that
> >>> the mount point is explicit in the schema in structural-mount.  The
> >>> ysdl
> >> But this means using a YANG extension with all the problems regarding
> >> conformance. And this extension is quite far-reaching.
> > I would think that depends on how many models end up needing to mount
> other models.
> >
> > Thanks,
> > Rob
> >
> >
> >>
> >> Lada
> >>
> >>> meta-schema appears to be more flexible because it can in effect put
> >>> mount points anywhere, but even with structural mount this same
> >>> flexibility could presumably still be achieved by augmenting with a
> >>> mount point.
> >>>
> >>> For point (4), I think that this is useful functionality, and
> >>> perhaps if structural-mount is to be used as the base draft going
> >>> forward it might be worth considering whether the solution could be
> >>> able to cover, or be cleanly extended, to this use case.
> >>>
> >>> For point (5), I definitely think that it is beneficial that
> >>> structural-mount has an intuitive solution for RPCs and Notifications.
> >>>
> >>> For points (6) and (7) my gut instinct is that the structural-mount
> >>> would be easier to standardize and also less work to implement.
> >>>
> >>>
> >>> Some of my points above may be incorrect, and that might swing the
> >>> balance between the two solutions, so please correct me if I have
> >>> got anything wrong.  Otherwise, just considering the written drafts
> >>> as they stand now, my personal preference is that I would favour
> >>> using structural-mount as a starting point for a solution.
> >>>
> >>> Martin, I also have some comments/questions on the structural-mount
> >>> draft, I'll put these into a separate email.
> >>>
> >>> Thanks,
> >>> Rob
> 
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C
> 
> 
> 
> 
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod