Re: [netmod] Y34 - root node

Andy Bierman <andy@yumaworks.com> Wed, 19 August 2015 16:55 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 D2DFF1A1B1E for <netmod@ietfa.amsl.com>; Wed, 19 Aug 2015 09:55:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.378
X-Spam-Level:
X-Spam-Status: No, score=-1.378 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, J_CHICKENPOX_15=0.6, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=no
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 Vh4qlFt5rDVq for <netmod@ietfa.amsl.com>; Wed, 19 Aug 2015 09:55:25 -0700 (PDT)
Received: from mail-lb0-f181.google.com (mail-lb0-f181.google.com [209.85.217.181]) (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 B3BE41A1B21 for <netmod@ietf.org>; Wed, 19 Aug 2015 09:55:23 -0700 (PDT)
Received: by lbbpu9 with SMTP id pu9so7326616lbb.3 for <netmod@ietf.org>; Wed, 19 Aug 2015 09:55:22 -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=9hDS9KYwh44XzEJAU/LfVq8Z8HYd8ItjiXqn0Wl48TQ=; b=OVzNvpP567B5q+u/T2F2rRGRJGWvB9IYWtq4N05ECunBhnxBPLwjsy75U2h7KUslsT g7MDluiu9Nb8ITvbmO5Ll2y0OVCgVq0iVLPi7Rg+fcmOMr+dSw9D69e4pLspDq281wnx rNiJBZxb2x/LxVD3iHklZz5bwkG+Ls7iZNwkSSSQHthIsXMSdG9qoyigKsv5T/cEi0oY 44j09zOmukgbl0EEluLknspt2BUVBBfU9oXZx6VtDkHPtZ7LoAFBUaRQM7/ED5dV6jVw PT1Tc/71DTswmowlUy7gQGyljc0Gtpc1PXu2Y4P4tlWWcKrZ5bglT4u4231R2lJYSWOH 3Img==
X-Gm-Message-State: ALoCoQnyk4/knEG4UZr9tuyVWDGXtpYWleJmpbR1ranS5pAZmKY59CcX3B9/1tZlVFU+IoqKGJb7
MIME-Version: 1.0
X-Received: by 10.112.154.106 with SMTP id vn10mr12031350lbb.38.1440003322204; Wed, 19 Aug 2015 09:55:22 -0700 (PDT)
Received: by 10.112.200.104 with HTTP; Wed, 19 Aug 2015 09:55:22 -0700 (PDT)
In-Reply-To: <013601d0da9b$907f6b00$4001a8c0@gateway.2wire.net>
References: <55D36473.90609@cisco.com> <CABCOCHRP3omx37XmEJfPwg6eELuSKF=YL8pgpnvLh9PQxgV62A@mail.gmail.com> <55D45CAF.2070605@cisco.com> <20150819.132555.871710491924929960.mbj@tail-f.com> <013601d0da9b$907f6b00$4001a8c0@gateway.2wire.net>
Date: Wed, 19 Aug 2015 09:55:22 -0700
Message-ID: <CABCOCHRL6OAcowKEeH_PUUQjFwiGF5MSzEnmoYOkQcWi7+OEDg@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: "t.petch" <ietfc@btconnect.com>
Content-Type: multipart/alternative; boundary="089e0122af2a7ef0cd051dace65a"
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/58IPXzEPynRyhKIpNaULIrnetLs>
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: Wed, 19 Aug 2015 16:55:28 -0000

On Wed, Aug 19, 2015 at 9:24 AM, t.petch <ietfc@btconnect.com> wrote:

> ----- Original Message -----
> From: "Martin Bjorklund" <mbj@tail-f.com>
> To: <rwilton@cisco.com>
> Cc: <netmod@ietf.org>
> Sent: Wednesday, August 19, 2015 12:25 PM
> > 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
>
> Martin
>
> If I were able to choose someone to ask for advice on this question,
> well, your name would be joint top of my list.  If you are not going to
> write it, then who is?
>
> The current model is a flat architecture of hundreds (or thousands) of
> modules each with their own top level nodes, namespace, namespace name,
> prefix etc.  (This is quite different to SMI with its hierarchy but that
> probably is only significant to those who have spent 20 years with SMI).
>
> So, is this flat architecture a problem?  Does it matter that we have
> hundreds (or thousands) of top level nodes?  I know that top level nodes
> are different w.r.t the rules of YANG but cannot foresee whether or not
> that is an issue for model writers or model users because I cannot get
> my mind around just what the rules are in this regard?
>
>

But this is not what we have.
Many times a YANG module augments another on (such as ietf-interfaces).

As for 100s maybe 1000s...;

Here is the datastore contents that the IETF has defined so far:
[not sure if I am leaving out other WGs]

    Yr        RFC      root                     comments

   2008    5277     /netconf               Notification streams (XSD, no
YANG at all)
   2010    6022     /netconf-state      NETCONF monitoring
   2012    6536     /nacm                  NETCONF access control
   2012    6728     /ipfix                    IPFIX and PSAMP configuration
   2014    7223     /interfaces            Interface management
                            /interfaces-state
   2014   7277    augment /interfaces/interface   IP management
   2014   7317     /system                   Host system management
   2014   7407     /snmp                     SNMP configuration



Maybe 1000s, maybe 8.

I would hardly say that this represents a problem that is out of control.
I also would not call 7 RFCs in 5 years with YANG data in them as much
progress.
At this rate it will take 150 years to fill in the tree of NP containers
will real modules.


Andy


Equally, is it a problem to have hundreds (or thousands) of prefixes? or
> namespaces? or ...
>
> And what else is there that having a lot of might be an issue?
>
> I see the YANG architecture as reflecting the IETF 'architecture' of
> hundreds of working groups loosely federated, sometimes collaborating,
> mostly not, and so is the right way to develop YANG modules.  But are
> there technical dangers lurking there that in a few years time we will
> wish we had taken more notice of.
>
> Tom Petch
>
> > > >     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.
> >
> >
> > /martin
> >
> > _______________________________________________
> > netmod mailing list
> > netmod@ietf.org
> > https://www.ietf.org/mailman/listinfo/netmod
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>