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

"Eric Voit (evoit)" <evoit@cisco.com> Fri, 08 April 2016 02:20 UTC

Return-Path: <evoit@cisco.com>
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 727D112D1DA for <netmod@ietfa.amsl.com>; Thu, 7 Apr 2016 19:20:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.531
X-Spam-Level:
X-Spam-Status: No, score=-14.531 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, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
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 T84_l2CODY4n for <netmod@ietfa.amsl.com>; Thu, 7 Apr 2016 19:20:22 -0700 (PDT)
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 460D612D50D for <netmod@ietf.org>; Thu, 7 Apr 2016 19:20:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=4727; q=dns/txt; s=iport; t=1460082021; x=1461291621; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=DiAgmQxbFl2LvpRSes4wmM2woViGqluDPFI0CL63iTo=; b=EISZdeJ8p+5xbS9WkMCLjko9uNlYNQLOKT3ClA8cJqznJOcHxRZBbckq XOcLT1R0oyLm9vemh4MMgVAmp+0gWzbbyFMnouzx1bsYxcGronNG+9jbh KzUY/h35W8IQw3fL9NqRtdgywzaIb3Xy7IW77+h8gIdQA76+9RGg9cSaK I=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0ABAgCnFAdX/5BdJa1dgzdTfQa6QAENgXMXCoUiSgKBPjgUAQEBAQEBAWUnhEEBAQEDAQEBATc0CwULAgEIDgoeECcLJQIEAQ0FCBOIBAgOwh4BAQEBAQEBAQEBAQEBAQEBAQEBAQERBIYhhEuKFQWNToo2AY4EgW6HdYUxjyMBHgEBQoNnbIg7fgEBAQ
X-IronPort-AV: E=Sophos;i="5.24,449,1454976000"; d="scan'208";a="94156977"
Received: from rcdn-core-8.cisco.com ([173.37.93.144]) by rcdn-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Apr 2016 02:20:20 +0000
Received: from XCH-RTP-002.cisco.com (xch-rtp-002.cisco.com [64.101.220.142]) by rcdn-core-8.cisco.com (8.14.5/8.14.5) with ESMTP id u382KJbg008502 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Fri, 8 Apr 2016 02:20:20 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-002.cisco.com (64.101.220.142) with Microsoft SMTP Server (TLS) id 15.0.1104.5; Thu, 7 Apr 2016 22:20:19 -0400
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; Thu, 7 Apr 2016 22:20:19 -0400
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Martin Bjorklund <mbj@tail-f.com>, "kwatsen@juniper.net" <kwatsen@juniper.net>, "Alexander Clemm (alex)" <alex@cisco.com>
Thread-Topic: [netmod] kw comments on draft-voit-netmod-yang-mount-requirements
Thread-Index: AQHRjx7t1dIqVaLFu0y/L6aVF65SwZ9/Ukig
Date: Fri, 08 Apr 2016 02:20:19 +0000
Message-ID: <a56bf1df63ef47e7a7d96ba78146703e@XCH-RTP-013.cisco.com>
References: <51F6361D-5F32-449F-80D6-26A4B3569DC1@juniper.net> <20160405.113822.1614298419822308565.mbj@tail-f.com>
In-Reply-To: <20160405.113822.1614298419822308565.mbj@tail-f.com>
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.24.227.207]
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/cDdeMhlQRzXBcjek973WPSDonLQ>
Cc: "netmod@ietf.org" <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: Fri, 08 Apr 2016 02:20:24 -0000

> Martin Bjorklund, April 05, 2016 5:38 AM
> 
> 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 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...)

Applications will have to know the full path to an object, but might not have to know the full schema of mounted objects.   (i.e., with a path, a data mount access a specific node without mounting the full schema.)  This shouldn't pose any issues as Peer Mount implementation so far have been read-only, and internal constraints within a namespace need not be checked.

> 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

My thinking matches more closely to what Kent lays out above:

schema-mount
data-mount
remote data mount   (a.k.a. peer mount)
local data mount        (a.k.a. alias mount)

The value in the term "yang mount" is that it provides a conceptual umbrella to ensure a cohesive syntax across the four valid permutations of the above.  The term itself was never intended to be implementable.

Adding Alex for his thoughts as he has thought through configuration examples more deeply than I have.

Eric

> 
> 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