Re: [netmod] Comments on schema mount draft

Rohit Ranade <rohitrranade@outlook.com> Tue, 03 April 2018 15:06 UTC

Return-Path: <rohitrranade@outlook.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 A5BB7127863 for <netmod@ietfa.amsl.com>; Tue, 3 Apr 2018 08:06:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.028
X-Spam-Level:
X-Spam-Status: No, score=-2.028 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=outlook.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 v3hpJHaqC9mb for <netmod@ietfa.amsl.com>; Tue, 3 Apr 2018 08:05:56 -0700 (PDT)
Received: from APC01-PU1-obe.outbound.protection.outlook.com (mail-oln040092254091.outbound.protection.outlook.com [40.92.254.91]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 85BAA120724 for <netmod@ietf.org>; Tue, 3 Apr 2018 08:05:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Ny6xxqmnsr1JrrHHRw+PQFkiRMwDE5YMbV0TC0qcuWQ=; b=Eldi7m2jA3NW+9EgfBwjKQ1KSKhYUwgX1q+bvW+34JxABl3wMII2MBPve56JkSX4k6UVX/CB9VU+EvXvz57op7PD2Uf5NEkJ+zAx+7k7o4/+WrNcyPIxGz3XJmj2Cs0+lZ9Q/qSxUyoj4L9ubYqf3J9ly8fwkbOQ18IW+NRdqE67WMnXfy5RF5N+2DFtwcm0Awo2Nln8cCLhmG28gTZl8hkQ/gq08XaG2Qptz5D4ru9LlQ2sEAm987Lb9vXK8XzV8BXq2pkVvZpMabySQus+5CCtWCaO4vxdHUtYM7xFs+yuJ208TKaiIbgi+0chy35PkT4+6fjYe6hsI2/5dPw5XQ==
Received: from HK2APC01FT005.eop-APC01.prod.protection.outlook.com (10.152.248.51) by HK2APC01HT131.eop-APC01.prod.protection.outlook.com (10.152.249.57) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.653.8; Tue, 3 Apr 2018 15:05:53 +0000
Received: from HK2PR0401MB1265.apcprd04.prod.outlook.com (10.152.248.53) by HK2APC01FT005.mail.protection.outlook.com (10.152.248.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.631.7 via Frontend Transport; Tue, 3 Apr 2018 15:05:53 +0000
Received: from HK2PR0401MB1265.apcprd04.prod.outlook.com ([fe80::2db2:49db:7b47:d80]) by HK2PR0401MB1265.apcprd04.prod.outlook.com ([fe80::2db2:49db:7b47:d80%4]) with mapi id 15.20.0653.012; Tue, 3 Apr 2018 15:05:53 +0000
From: Rohit Ranade <rohitrranade@outlook.com>
To: Martin Bjorklund <mbj@tail-f.com>
CC: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [netmod] Comments on schema mount draft
Thread-Index: AQHTxDbT1I3AIjMZP0GUUq533JigqqPiK6iAgAIEP92AAqcggIAIV7nq
Date: Tue, 03 Apr 2018 15:05:53 +0000
Message-ID: <KL1PR0401MB12720644E171A6A8AC738545DBA50@KL1PR0401MB1272.apcprd04.prod.outlook.com>
References: <HK2PR0401MB12659DDADA1E5DAE6EE5AFA3DBAE0@HK2PR0401MB1265.apcprd04.prod.outlook.com> <20180326.101129.936165036878075905.mbj@tail-f.com> <KL1PR0401MB1272858515A76DF861B73D21DBAC0@KL1PR0401MB1272.apcprd04.prod.outlook.com>, <20180329.092953.1063547768163198657.mbj@tail-f.com>
In-Reply-To: <20180329.092953.1063547768163198657.mbj@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-incomingtopheadermarker: OriginalChecksum:2BEFC24E9939EE2E7B095A4AFF07FA838904F4A931A54E4F271D64BC85D897E8; UpperCasedChecksum:FE5396F318A04A5CA8DA40C89A099BBA032F888335E02B0B5DBF429C8A49F577; SizeAsReceived:7292; Count:47
x-ms-exchange-messagesentrepresentingtype: 1
x-tmn: [TyBBOQLnnzBuvQZSOOXQ5deAlxWPt7Zbf/+YpjnWC+o=]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; HK2APC01HT131; 7:0DW9yiV/4OfsfZ0/eLO6YIz2XdthCT8egav6YfzSKZHzDwi4MkGn5pi+2k3wakznn02DLKhQBY8Rps7QUOavq3saN3a8itY8oKYMaVTMbnHEsx+0XFALGxif1UiFcalSu4ctZmoUNJm9sKD62ygInUrp6H27LZzxf3pKQcut5eJiZWAvnYeviiHIkXYBiM2/QXdI1cyz0dXTyAyUXrvu7A8mh+Kc1sUUXrKIjdIwqDYMv8jtlZ4NmrkLbRN12yL0
x-incomingheadercount: 47
x-eopattributedmessage: 0
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(201702061078)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1601125374)(1603101448)(1701031045); SRVR:HK2APC01HT131;
x-ms-traffictypediagnostic: HK2APC01HT131:
x-ms-office365-filtering-correlation-id: dfef127d-bab7-4018-4e68-08d5997464f9
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(444000031); SRVR:HK2APC01HT131; BCL:0; PCL:0; RULEID:; SRVR:HK2APC01HT131;
x-forefront-prvs: 0631F0BC3D
x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(98901004); DIR:OUT; SFP:1901; SCL:1; SRVR:HK2APC01HT131; H:HK2PR0401MB1265.apcprd04.prod.outlook.com; FPR:; SPF:None; LANG:;
x-microsoft-antispam-message-info: QgjyA1ei+NuBcIYJ4FKXVylnpTenecmjIopYpTrmBuUT8GNwbwKMcBHTHAEvwVK3RUoyYKTuD5m+4SvdAi6bXcvofYw/KcG8G+w+O5zyEBiqtiI/Y+7tsz9GmNNRc3lk38tG/DGtwmPl4IVnUyuDtncJgDpzSyrg/A4k6bHKga4qWnw46zmSy4hoUKkGH8rl
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_KL1PR0401MB12720644E171A6A8AC738545DBA50KL1PR0401MB1272_"
MIME-Version: 1.0
X-OriginatorOrg: outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dfef127d-bab7-4018-4e68-08d5997464f9
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Apr 2018 15:05:53.1699 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Internet
X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-Transport-CrossTenantHeadersStamped: HK2APC01HT131
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/u5_C58cZOg09w3SimUurcUwMwrc>
Subject: Re: [netmod] Comments on schema mount draft
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.22
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: Tue, 03 Apr 2018 15:06:01 -0000

Hi Martin,



Thank you for your responses.

I have gone through the LNE draft and YANG 1.1 and found some more suggestions.



1. Section 5

   "If a mounted YANG module defines an RPC operation, clients can invoke

   this operation as if it were defined as an action for the

   corresponding mount point"

   ==> Below is the example from Yang 1.1 Section 7.15



    <rpc message-id="101"

          xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

       <action xmlns="urn:ietf:params:xml:ns:yang:1">

         <server xmlns="urn:example:server-farm">

           <name>apache-1</name>

           <reset>

             <reset-at>2014-07-29T13:42:00Z</reset-at>

           </reset>

         </server>

       </action>

     </rpc>



     <rpc-reply message-id="101"

                xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

       <reset-finished-at xmlns="urn:example:server-farm">

         2014-07-29T13:42:12Z

       </reset-finished-at>

     </rpc-reply>

              ==> Here rpc-reply only has the namespace and action name defined in the mount-instance's module.

              The client needs to store information of the mount-instance for which the RPC request was sent and only then it can validate the rpc-reply against the data-model.

              To avoid this work of client, whether we can think of adding meta-data to rpc-reply to provide this information to client.



2. Section 5

   I would prefer the approach taken by Yang 1.1 where statements followed by XML examples   to help in clarity.

   Especially for the RPC and notification section, it is better to add clear examples

   in a "Usage Example" sub-section for this section.



3. Yang RPC and ACTION statements:

  If we need to view the RPC defined in a module as an ACTION after schema mount, then

  Whenever there is update to RPC in say YANG 1.2, then the corresponding changes must be present in ACTION also, introducing a coupling between RPC and ACTION statements.



4. NETCONF has some "rpc" which work on multiple mount-instances.

   ==> For example <edit-config> , <get-config> or <lock>. Whether we need to give a

   guideline for how to handle such "rpc", so that other protocols which implement schema mount   also adapt accordingly ?

   Eg: Something like, for transaction management, better to operate on one mount-instance.







With Regards,

Rohit R



________________________________
From: Martin Bjorklund <mbj@tail-f.com>
Sent: Thursday, March 29, 2018 12:59:53 PM
To: rohitrranade@outlook.com
Cc: netmod@ietf.org
Subject: Re: [netmod] Comments on schema mount draft

Hi,

Rohit Ranade <rohitrranade@outlook.com> wrote:
> Hi Martin,
>
> W.r.t <get-schema> on the main device, it will mean that for
> successful <get-schema> for all the schema of mounted devices, the
> main device must be upgraded to higher version first and must contain
> ALL the schema of all the devices behind the main device.

This is not the intention, and as you note, in many cases this is just
not possible.

The client can look at the "location" leaf in the mounted YANG library
(in YLbis; in old YL it was called "schema") and get the module from
there.

If the mounted schema also mounts "ietf-netconf-monitoring", the
client can invoke the mounted <get-schema> as an action, and retrieve
the specific version of the module that is mounted there.

> This point may prove to be tricky as the whole topology upgrade has to
> be considered always. I feel we can add some text regarding this.
>
> Also how to “mount” an instance of a mount-point ? Because once this
> draft is out, each implementer may define private RPCs for mount and
> un-mount if this module does not define it. Whether any plan about it
> ?

Note that schema mount is not about mounting devices; that would be a
future specialization of this mechanism.

In the LNE and NI drafts, entities are "mounted" by creating entries
in the corresponding lists.  There is no need for a "mount" rpc in
these cases.


/martin




>
>
>
>
> With Regards,
> Rohit R
>
> Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for
> Windows 10
>
> From: Martin Bjorklund<mailto:mbj@tail-f.com>
> Sent: 26 मार्च 2018 13:41
> To: rohitrranade@outlook.com<mailto:rohitrranade@outlook.com>
> Cc: netmod@ietf.org<mailto:netmod@ietf.org>
> Subject: Re: [netmod] Comments on schema mount draft
>
> Hi,
>
> Thank you for these comments, replies inline.
>
> Rohit Ranade <rohitrranade@outlook.com> wrote:
> > Hi All,
> >
> > Please find some comments for the schema mount draft. If I find any
> > other will send in another mail.
> >
> > Editorial:
> > ============
> > 1. Section 3.1
> >    "The "mount-point" statement MUST NOT be used in a YANG version 1
> >    module."
> >    ==> It is unclear why such a restriction is placed.
>
> The reason is that YANG 1 doesn't support inline actions and
> notification, which means that top-level rpcs and notifs in the
> mounted module cannot be invoked using the mechanism described in
> section 5.  I will try to clarify this.
>
> > 2. Section 3.2
> >    "state data in the "yangmnt:schema-mounts""
> >    ==> Here the yang tree diagram is not yet introduced. I feel better to
> >    introduce
> >    this diagram as it makes it easier to understand the data-nodes
>
> Ok.  I moved section 8 to a new section 3.2.
>
> > 3. Section 3.2
> >    "Data in this container is intended to be as stable as data in the
> >    top-level YANG library"
> >    ==> What is the meaning of "as stable" as ? As a developer , I am
> >    unclear what needs
> >    to be done here. Please clarify.
>
> Kent also had a comment around this, and the text about stable is now
> removed.
>
> > 4. Section 3.2
> >    "i.e., instances of that mount point MUST NOT contain any data above
> >    those that are defined in the parent schema."
> >    ==> Here "any data above", means "above" in the hieararchy ?
>
> No, this was just wrong; it should be "except".
>
> >    Not
> >    clear, this is similar
> >    to having a USB slot, but no device mounted on it as yet in UNIX
> >    terms. Right ?
> >    The query output on parent-schema should give empty data.
> >
> > 5. Section 3.2
> >    "If multiple mount points with the same name are defined in the same
> >    module - either directly or because the mount point is defined in a
> >    grouping and the grouping is used multiple times - then the
> >    corresponding "mount-point" entry applies equally to all such mount
> >    points."
> >   ==> As per tree diagram, "mount-point" has two keys. So each module
> >   can have multiple
> >   mount points. So how to apply it "equally" ? Not clear.
>
> Note that the sentence starts with "If multiple mount points with the
> same name are defined in the same module" -- so this clearly doesn't
> apply to mount points with different names, right?
>
> For example, you can have:
>
>   container foo {
>     yangmnt:mount-point my-mnt-point;
>   }
>   container bar {
>     yangmnt:mount-point my-mnt-point;
>   }
>
> There is just one entry in the "mount-point" list, so that entry
> applies to both these mount points.  Both are either "inline" or
> "shared-schema".
>
>
> > 6. Section 3.2
> >    Instead of "inline" and "shared-schema", I suggest to use
> >    "variable-schema" and
> >    "same-schema"
> >    Reason: The key difference between the two is that in one case, the
> >    schema MAY be different
> >    while in the other the schema is same. The name can be similar to the
> >    reason.
>
> At this point, we have to live with these terms.  This was part of the
> compromise leading to this solution; there are other documents in the
> RFC editor's queue that depend on these terms.
>
> > Logical Point:
> > 1. Consider the topology where 1 main device is present with N logical
> > devices behind it.
> >    When the mounting is done, it is quite possible that some of N devices
> >    are having different
> >    versions of modules.
> >    This can lead to each instance of mount point, having different
> >    schema.
> >    How can the client understand the schema of each mount-point instance
> >    ? Preferably get-schema of these devices and then know the model ?
>
> This draft says that each instance will have its own YANG library
> instance.  So there the client can detect which versions of the
> different modules each instance supports.  Then <get-schema> can be
> invoked to get the modules, if it is supported.
>
>
> /martin
>