Re: [i2rs] Kathleen Moriarty's No Objection on draft-ietf-i2rs-yang-l3-topology-08: (with COMMENT)

Alexander Clemm <alexander.clemm@huawei.com> Fri, 10 February 2017 21:05 UTC

Return-Path: <alexander.clemm@huawei.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 A141B129453; Fri, 10 Feb 2017 13:05:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.222
X-Spam-Level:
X-Spam-Status: No, score=-4.222 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=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 YOWzzhWfhwRA; Fri, 10 Feb 2017 13:05:12 -0800 (PST)
Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 877C6129593; Fri, 10 Feb 2017 13:05:11 -0800 (PST)
Received: from 172.18.7.190 (EHLO lhreml706-cah.china.huawei.com) ([172.18.7.190]) by lhrrg01-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id DGF16147; Fri, 10 Feb 2017 21:05:08 +0000 (GMT)
Received: from SJCEML702-CHM.china.huawei.com (10.208.112.38) by lhreml706-cah.china.huawei.com (10.201.5.182) with Microsoft SMTP Server (TLS) id 14.3.301.0; Fri, 10 Feb 2017 21:05:07 +0000
Received: from SJCEML703-CHM.china.huawei.com ([169.254.5.69]) by SJCEML702-CHM.china.huawei.com ([169.254.4.133]) with mapi id 14.03.0235.001; Fri, 10 Feb 2017 13:05:03 -0800
From: Alexander Clemm <alexander.clemm@huawei.com>
To: Kent Watsen <kwatsen@juniper.net>, Xufeng Liu <Xufeng_Liu@jabil.com>, Martin Bjorklund <mbj@tail-f.com>
Thread-Topic: [i2rs] Kathleen Moriarty's No Objection on draft-ietf-i2rs-yang-l3-topology-08: (with COMMENT)
Thread-Index: AQHSdw/ybSgJ5VGI5EaXm4CY9Zw+S6FJzTqAgAAEUoCAAALgAIALPDiAgAALPACAABeFgIAABLgA//+CeZCAASqxgIAAbOUAgAAlhgCAAA+rAIAAjRSAgADXHQCAABHTAIAABTmAgAAEwwCAAAJwgIAAIBIAgAqPbyA=
Date: Fri, 10 Feb 2017 21:05:02 +0000
Message-ID: <644DA50AFA8C314EA9BDDAC83BD38A2E0DF7F97C@SJCEML703-CHM.china.huawei.com>
References: <BN3PR02MB1141BE8B907D10AAFAA6BDA7F14F0@BN3PR02MB1141.namprd02.prod.outlook.com> <20170203.163216.1400419881696462638.mbj@tail-f.com> <BN3PR02MB11416DD67AB92C6620CEF7E4F14F0@BN3PR02MB1141.namprd02.prod.outlook.com> <20170203.170800.1259525494650193374.mbj@tail-f.com> <BN3PR02MB114192FEEF7116B20D314658F14F0@BN3PR02MB1141.namprd02.prod.outlook.com> <030B0A7E-5238-4D78-BC97-2140B269D82A@juniper.net>
In-Reply-To: <030B0A7E-5238-4D78-BC97-2140B269D82A@juniper.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.213.48.95]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-CFilter-Loop: Reflected
X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A090206.589E2B05.0098, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0, ip=169.254.5.69, so=2013-06-18 04:22:30, dmn=2013-03-21 17:37:32
X-Mirapoint-Loop-Id: 6ff3d7af1302c2899e961bf42b5ae590
Archived-At: <https://mailarchive.ietf.org/arch/msg/i2rs/sfasuOyAqGah5BU_qgQWBW75pk0>
Cc: "draft-ietf-i2rs-yang-l3-topology@ietf.org" <draft-ietf-i2rs-yang-l3-topology@ietf.org>, "i2rs@ietf.org" <i2rs@ietf.org>
Subject: Re: [i2rs] Kathleen Moriarty's No Objection on draft-ietf-i2rs-yang-l3-topology-08: (with COMMENT)
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: Fri, 10 Feb 2017 21:05:14 -0000

Hi, just one comment, I think the example is a bit oversimplified.  

Specifically, the leafref just indicates that you should point to another node.  In the full model, there is a requirement that you cannot point just to any other node, but a node that is part of the actual underlay.  Likewise, in the case of a TP, the supporting TP cannot just be any other TP, but a TP in the underlay, itself contained in a supporting node.  

In the case of the opstate solution, you would need to distinguish different paths based on whether the supporting is opstate or not, and you would likewise have to reflect the same in the constraints to make sure that the supporting is part of the underlay and not a "random" resource, but one that makes sense (e.g. supporting TP part of a supporting node, etc).  There are 3 cases:  opstate on opstate, configured on configured, and configured on opstate.  

The resulting conditions make the model considerable more complex.  More complex means harder to use and extend.  The alternative is to not model those constraints but put them into the description, thus punting the problem from the framework to the user.  This would strike me as SMIv2-ish, which is a route that I think with a YANG model is better to avoid.  

--- Alex

-----Original Message-----
From: i2rs [mailto:i2rs-bounces@ietf.org] On Behalf Of Kent Watsen
Sent: Friday, February 03, 2017 10:12 AM
To: Xufeng Liu <Xufeng_Liu@jabil.com>; Martin Bjorklund <mbj@tail-f.com>
Cc: draft-ietf-i2rs-yang-l3-topology@ietf.org; i2rs@ietf.org
Subject: Re: [i2rs] Kathleen Moriarty's No Objection on draft-ietf-i2rs-yang-l3-topology-08: (with COMMENT)


[Xufeng] Right. If we do so, the approach will be different from RFC7223, and requires the capability that a "config true" leafref references a "config false" leaf.


I think my proposal was misunderstood, so here's a more complete example:

Assume the following schema is used by client/servers that implement the long-term opstate solution presented in the revised-datastores draft:

   module foo {
      container nodes {
         config true;
         list node {
            key "name";
            leaf name { type string; }
            leaf dependency {
               type leafref {
                 path "../node/name"
                 require-instance false;
                 description
                   "In the case when a configured node (i.e. in the running DS)
                    has a dependency on a node that is not configured, the system
                    may try to resolve the dependency as operational state data
                    (i.e. in the operational-state DS).  As operational state 
                    data may have a lifecycle independent of configuration, there
                    is no guarantee that the opstate data will exist.  Therefore,
                    application of the configuration node is conditional, resulting
                    in an effect much like pre-provisioning interfaces in RFC 7223.";
               }
            }
         }
     }
   }


Specifically, note that the leafref is from one config true node to another config true node.  I understand that the semantics are almost as if it were like a config true node were pointing to a config false node, but I believe that this should be okay, that is, that we should specifically define this convention as okay.


Assuming that we're okay with the above, we proposal for a near-term solution, that does NOT utilize the opstate solution, follows:

   module foo {
      container nodes {
         config true;
         list node {
            key "name";
            leaf name { type string; }
            leaf dependency {
               type leafref {
                 path "../node/name"
                 require-instance false;
                 description
                   "In the case when a configured node (i.e. in the running DS)
                    has a dependency on a node that is not configured, the system
                    may try to resolve the dependency as operational state data
                    (i.e. under the /nodes-state tree).  As operational state 
                    data may have a lifecycle independent of configuration, there
                    is no guarantee that the opstate data will exist.  Therefore,
                    application of the configuration node is conditional, resulting
                    in an effect much like pre-provisioning interfaces in RFC 7223.";
               }
            }
         }
      }
      container nodes-state {
         config false;
         list node {
            key "name";
            leaf name { type string; }
            leaf dependency {
               type leafref {
                 path "../node/name"
                 require-instance false;
               }
            }
         }
      }
   }


This module is semantically identical to the first, but now, in additional to the leafref potentially hopping datastores, it also needs to hop paths (i.e. s/nodes/nodes-state/). Note the minute change in the first sentence of the description statement.  Yes, it's a hack, but since the hopping is implemented internally anyway, maybe it's okay as a stop-gap short-term solution?


Kent



_______________________________________________
i2rs mailing list
i2rs@ietf.org
https://www.ietf.org/mailman/listinfo/i2rs