Re: [netmod] Y34 - root node

Andy Bierman <andy@yumaworks.com> Thu, 20 August 2015 04:39 UTC

Return-Path: <andy@yumaworks.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 A9E471AD359 for <netmod@ietfa.amsl.com>; Wed, 19 Aug 2015 21:39:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.978
X-Spam-Level:
X-Spam-Status: No, score=-1.978 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 VnyGlLqVuCFy for <netmod@ietfa.amsl.com>; Wed, 19 Aug 2015 21:39:07 -0700 (PDT)
Received: from mail-lb0-f179.google.com (mail-lb0-f179.google.com [209.85.217.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3FB811ACED1 for <netmod@ietf.org>; Wed, 19 Aug 2015 21:39:07 -0700 (PDT)
Received: by lbbtg9 with SMTP id tg9so16268703lbb.1 for <netmod@ietf.org>; Wed, 19 Aug 2015 21:39:05 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=p46MDN+dyc/Jxm2/eENuQdNgIRZQU1396vpq+c/Jmz4=; b=HH8NMlHcJM+NNSRReqj6wapP0F+G2N/+YlGKRinZGCGb+dnsJfYKQl944qEzJmJs9E dIEsRj1aFh8k0c1Gzg8Ptlf4R2CRzEFOVK5ExkQ9fQdQhrbPIgSJbya9Kb1+uN54YNcQ 6e47+6auegnTdhB5qi0YxtERvLVECvFAjTxpDbmnPWW6AuCBj0T4m7XHf+qPKp2RBW6i Dl8RWCJjdfSC32PQ1B/Gn8E4g8lJWX/haxjr2sXnUYwhSrytIwkhhX3GfeEIfcTrRk+u iXxhdjPWlRriG8jnHeq/Lbx+ohS019FB1L3x4RqiU4dr7cvquyfNhgNaNUzjG22fuS2l OPww==
X-Gm-Message-State: ALoCoQkCm6cflrpOn2/sGD2RLhyRV3dzjlfv8lEp4C/pp8tu5OeJLr0xqctXyjNu+BFSpRGQru0v
MIME-Version: 1.0
X-Received: by 10.152.120.74 with SMTP id la10mr1027295lab.37.1440045545683; Wed, 19 Aug 2015 21:39:05 -0700 (PDT)
Received: by 10.112.200.104 with HTTP; Wed, 19 Aug 2015 21:39:05 -0700 (PDT)
In-Reply-To: <20150819.132555.871710491924929960.mbj@tail-f.com>
References: <55D36473.90609@cisco.com> <CABCOCHRP3omx37XmEJfPwg6eELuSKF=YL8pgpnvLh9PQxgV62A@mail.gmail.com> <55D45CAF.2070605@cisco.com> <20150819.132555.871710491924929960.mbj@tail-f.com>
Date: Wed, 19 Aug 2015 21:39:05 -0700
Message-ID: <CABCOCHRgAHah6_f1qZkPs0_v8Cj6NA5TKokb_RtUv+XWNOocFA@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Martin Bjorklund <mbj@tail-f.com>
Content-Type: multipart/alternative; boundary="089e012290223615b4051db6bbd1"
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/ljrXStHYnWe7nJgiR8h2J1xh5-Y>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y34 - root node
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: Thu, 20 Aug 2015 04:39:09 -0000

On Wed, Aug 19, 2015 at 4:25 AM, Martin Bjorklund <mbj@tail-f.com> wrote:

> Robert Wilton <rwilton@cisco.com> wrote:
> >
> >
> > On 18/08/2015 18:22, Andy Bierman wrote:
> > > This is how languages like SMIv2 and YANG work.
> > > A conceptual object is given a permanent "home" within the tree of
> > > object identifiers.
> > > Moving data is very expensive, since any clients working with the old
> > > data
> > > will break as soon as the data is moved.
> > >
> > >  I am not convinced the IETF can or should come up with a set of
> > >  containers
> > > that covers every possible topic that can be modeled in YANG.
> >
> > I mostly agree, but having some more structure/advice as to where to
> > place YANG modules may be helpful.  I'm thinking more along the lines
> > of broad categories rather than precise locations.
>
> +1
>
> > >     If someone wants to builds a YANG controller node that is managing
> > >     the configuration for a network of devices then wouldn't they want
> > >     a particular device's interface configuration to be located
> > >     somewhere like /network/device/<device-name>/interfaces/interface?
> > >     Ideally, they would be able to use the same YANG definitions that
> > >     are defined for /interfaces/ but root them relative to
> > >     /network/device/<device-name>/.
> > >
> > >
> > >
> > > Yes -- some of us (like Martin) have pointed this out many times.
> > > The "device" container on an NE does not help at all wrt/
> > > aggregation on a controller. "/device" or "/" work the same for this
> > > purpose.
>
> Actually, I would argue that / works better.  On the controller, you
> probably have a list of devices you control (this is how our NCS
> works, and how ODL works (I have been told)):
>
>   container devices {
>     list device {
>       key name;
>       // meta-info about the device goes here, things like
>       // ip-address, port, auth info...
>       container data {
>         // all models supported by the devices are "mounted" here
>       }
>     }
>   }
>
> So on the controller, the path to interface "eth0" on device "foo"
> would be:
>
>   /devices/device[name='foo']/data/interfaces/interface[name='eth0']
>
> if we also have a top-level "/device" container we'd have:
>
>   /devices/device[name='foo']/data/device/interfaces/interface[name='eth0']
>
> > What would the real resource location for
> > "/network/device/<device-name>/interfaces/interface" be?
>
> I don't think there is such a thing as a "real" location.  The path is
> scoped in the system you work with; in the controller it might be as I
> illustrated above, in the device it starts with /interfaces, but in a
> controller-of-controllers it might be:
>
>   /domains/domain[name='bar']/devices/device[name='foo']/data
>     /interfaces/interface[name='eth0']
>
> Currently we have a proprietary way of "relocating" YANG modules, and
> ODL has its "mount", and I think Andy has some other mechanism.  Maybe
> the time has come to standardize how mount works, and maybe then also
> standardize the list of devices in a controller model.
>
>

+1

We just need to standardize a "docroot within a docroot".
This is not relocation of subtrees within the datastore, this is just
mounting
a datastore somewhere within a parent datastore.

In YANG validation terms, you simply adjust the docroot to the nested mount
point,
and the replicated datastore can be used as if it were stand-alone.
This would allow any sort of encapsulation of datastores and not add any
data model complexity to devices which do not have virtual servers
(most of them).


>
> /martin
>


Andy