Re: [i2rs] modeling options for draft-ietf-i2rs-yang-network-topo

"Xufeng Liu" <xufeng.liu.ietf@gmail.com> Thu, 16 February 2017 15:32 UTC

Return-Path: <xufeng.liu.ietf@gmail.com>
X-Original-To: i2rs@ietfa.amsl.com
Delivered-To: i2rs@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 159C0129621 for <i2rs@ietfa.amsl.com>; Thu, 16 Feb 2017 07:32:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 L03LTeNkVdkz for <i2rs@ietfa.amsl.com>; Thu, 16 Feb 2017 07:32:42 -0800 (PST)
Received: from mail-lf0-x244.google.com (mail-lf0-x244.google.com [IPv6:2a00:1450:4010:c07::244]) (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 C9C9B12009C for <i2rs@ietf.org>; Thu, 16 Feb 2017 07:32:41 -0800 (PST)
Received: by mail-lf0-x244.google.com with SMTP id x1so1768644lff.0 for <i2rs@ietf.org>; Thu, 16 Feb 2017 07:32:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:references:in-reply-to:subject:date:message-id :mime-version:content-transfer-encoding:thread-index :content-language; bh=NBQc+3VbjB+L2HCz5p2ICc7F6ubLei4n6QPLsrUkY4I=; b=KHbMX9kdzGM755bqATZDoYFsV18OidWt4jSE7NdrvIki4k4Uq4581ITutCiWvThqqS t/LDnru58Pz0HKYoS2nJOVfeCYgzjoX0zlC/H3Pbd8eLs4FWddAJAiQTxo/EXVAfTfzK 9U6owGQ8fGZ5AieG5NfygoXblvkD+xws3QgN222Trn3rrzgr4Gc1R+ReOFmE0m4x6DW3 g9l/TdeArlt5FxrndbqdMqw9PQH6jlAqych8mPsKubi6CgObGTavYR3Th1AiTK9e5VxK dbCmv/IvzRrPFvcqUEFgSCA0zu23jJg/r5hMyF1+P6hVc7XTk+BhX/BwD2Dz5fE5BI9U IVpw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:references:in-reply-to:subject:date :message-id:mime-version:content-transfer-encoding:thread-index :content-language; bh=NBQc+3VbjB+L2HCz5p2ICc7F6ubLei4n6QPLsrUkY4I=; b=pcmpfiPr7I1UboHSqSv+PrUiC8NTqrWmhIBWsnVYBZ/d47s1oR8lyO40py+vFWU2ic 94dwaDKB4Vxxi5S11Hb7RvI8rraBXrdc65hPOPeZ4l14h5sYSlbNGd9ZrzXDt/out2Gp BNHw9YaCtsMOJGXL7/819Z/hBPQtt6I6j/p7JvyU38O+fl5UiJVal6z3NVEY49FEB/zk OIl66oaZtpGMCk45eC88ahoEPdaMDRip/tWrAeUfRmqTLTiXTr/SWweFGMPxZ2Rqn/t1 J9P9EqvBw9qs4loaHY4VwDslaqDd21oCvDC2EoOC6s3hW772fFdSw8Bhes3InW5falLD yPRQ==
X-Gm-Message-State: AMke39kPNljgq6ZpcZ9FuleBZ2j6qjZGkfVVDkK61GSLQMZgeww77hYVezWvW5COshOimw==
X-Received: by 10.25.216.93 with SMTP id p90mr852034lfg.59.1487259160091; Thu, 16 Feb 2017 07:32:40 -0800 (PST)
Received: from xliuus (wsip-98-191-72-170.dc.dc.cox.net. [98.191.72.170]) by smtp.gmail.com with ESMTPSA id r74sm1821523lfi.67.2017.02.16.07.32.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 16 Feb 2017 07:32:39 -0800 (PST)
From: Xufeng Liu <xufeng.liu.ietf@gmail.com>
To: 'Martin Bjorklund' <mbj@tail-f.com>, alexander.clemm@huawei.com
References: <644DA50AFA8C314EA9BDDAC83BD38A2E0DF80205@SJCEML703-CHM.china.huawei.com> <20170215.091219.721914825568257957.mbj@tail-f.com> <644DA50AFA8C314EA9BDDAC83BD38A2E0DF80493@SJCEML703-CHM.china.huawei.com> <20170215.194126.118198588680956999.mbj@tail-f.com>
In-Reply-To: <20170215.194126.118198588680956999.mbj@tail-f.com>
Date: Thu, 16 Feb 2017 10:32:37 -0500
Message-ID: <007501d28869$e81639c0$b842ad40$@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQJmRgmU/Xe+ods6juchSbrEmCYsFQFedek0AUU1L9gBd9nDtKAjaoZA
Content-Language: en-us
Archived-At: <https://mailarchive.ietf.org/arch/msg/i2rs/0QyvH5GYuvGiJKFTXWYQ3yi72gY>
Cc: i2rs@ietf.org, kwatsen@juniper.net
Subject: Re: [i2rs] modeling options for draft-ietf-i2rs-yang-network-topo
X-BeenThere: i2rs@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Interface to The Internet Routing System \(IRS\)" <i2rs.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/i2rs>, <mailto:i2rs-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/i2rs/>
List-Post: <mailto:i2rs@ietf.org>
List-Help: <mailto:i2rs-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/i2rs>, <mailto:i2rs-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Feb 2017 15:32:44 -0000


> -----Original Message-----
> From: i2rs [mailto:i2rs-bounces@ietf.org] On Behalf Of Martin Bjorklund
> Sent: Wednesday, February 15, 2017 1:41 PM
> To: alexander.clemm@huawei.com
> Cc: i2rs@ietf.org; kwatsen@juniper.net
> Subject: Re: [i2rs] modeling options for draft-ietf-i2rs-yang-network-topo
> 
> Alexander Clemm <alexander.clemm@huawei.com> wrote:
> > Hello Martin,
> > Thank you.  Your first explanation is clear.  Regarding the expression
> > of constraints, see inline, below (thread is pruned for clarity)
> > --- Alex
> >
> > -----Original Message-----
> > From: Martin Bjorklund [mailto:mbj@tail-f.com]
> > Sent: Wednesday, February 15, 2017 12:12 AM
> > To: Alexander Clemm <alexander.clemm@huawei.com>
> > Cc: kwatsen@juniper.net; i2rs@ietf.org
> > Subject: Re: [i2rs] modeling options for
> > draft-ietf-i2rs-yang-network-topo
> >
> >
> > <snip>
> > .................
> > I mean that the server will consider a configured item, and decide if
> > it can be used or not.  If the configured item has a reference to
> > something that doesn't (yet) exist (weak reference; require-instance
> > false), the server leaves the item in the config, and moves on.  At
> > some later time, suppose the weak reference is fulfilled; at this
> > point the server decides that the configured item can be used, and it
> > instantiates the item in the /-state list.  Once it is there, maybe
> > some other configured item has a reference to this one, and it can
> > also be instantiated etc.
> >
> > And it goes the other way as well; suppose a server provided item is
> > removed by the server; at this point the server would also remove
> > items in the state list that originated in the configuration - however
> > they are not removed from the config, just the state.
> > (Server provided items would only show up in the state in this
> > solution).
> >
> > The state subtree works exactly like the operational-state datastore
> > in draft-ietf-netmod-revised-datastores.
> >
> > <ALEX>
> > Thank you, this clarifies the earlier statement </ALEX>
> >
> > > One of the issues that we are facing is that a configured topology
> > > might refer to a configured topology or a server-provided topology,
> > > and we would like to avoid making a case distinction as to which
> > > category we are referring to.
> >
> > I believe my proposed solution handles this.
> >
> > > At the same time, we are making use of leafrefs to express a number
> > > of integrity constraints which are part of the model: as a node is
> > > part of a topology, and a topology has an underlay topology, we make
> > > sure that the underlay node is part of the underlay topology (and
> > > not just any arbitrary node).
> >
> > Can you point me to the place in the model where this is specified?
> >
> > Or did you mean that today you have to mention this in plain text, but
> > it would be nice if it could be captured formally in the model?
> >
> > <ALEX>  It is covered in the model today. E.g.:
> 
> Ok.  Here the model uses require-instance false, so if these ponts to the
state
> tree instead, you'd get the same effect.
> 

[Xufeng] Does the leafref point to the "state tree" only? If we do so, we
will miss the other half - the possible dependency to the config tree. If we
let the leafref point to both, we will get the unmanageable complications.

> 
> /martin
> 
> 
> >
> > In networks/network/node/supporting-node
> >              leaf network-ref {
> >                type leafref {
> >                  path "../../../supporting-network/network-ref";
> >                require-instance false;
> >                }
> > (supporting node is contained in supporting network)
> >
> > Supporting link:
> >       +--rw supporting-link* [network-ref link-ref]
> >          +--rw network-ref    ->
../../../nd:supporting-network/network-ref
> >          +--rw link-ref ->
> >
> > /nd:networks/network[nd:network-id=current()/../network-ref]/link/link
> > -id
> >
> > (supporting link is a link contained in the supporting network)
> >
> > Supporting termination point:
> >       +--rw supporting-termination-point* [network-ref node-ref tp-ref]
> >          +--rw network-ref    -> ../../../nd:supporting-node/network-ref
> >          +--rw node-ref       -> ../../../nd:supporting-node/node-ref
> >          +--rw tp-ref ->
> >
> > /nd:networks/network[nd:network-id=current()/../network-ref]/node[nd:n
> > ode-id=current()/../node-ref]/termination-point/tp-id
> >
> > (supporting termination point is contained in supporting network and
> > supporting node)
> >
> > It is those leafrefs whose transposition in the split subtree model
> > (where we encounter alternative paths) I am concerned will be
> > problematic.
> >
> > </ALEX>
> >
> >
> 
> _______________________________________________
> i2rs mailing list
> i2rs@ietf.org
> https://www.ietf.org/mailman/listinfo/i2rs