Re: [netmod] [Netconf] Alternative YANG library structure for 7895bis

Vladimir Vassilev <vladimir@transpacket.com> Wed, 15 November 2017 09:42 UTC

Return-Path: <vladimir@transpacket.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 95A28128DF3 for <netmod@ietfa.amsl.com>; Wed, 15 Nov 2017 01:42:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, URIBL_BLOCKED=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 lsZswzdk7rQ7 for <netmod@ietfa.amsl.com>; Wed, 15 Nov 2017 01:42:00 -0800 (PST)
Received: from mail.transpacket.com (s91205186171.blix.com [91.205.186.171]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4B3AC127337 for <netmod@ietf.org>; Wed, 15 Nov 2017 01:42:00 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by mail.transpacket.com (Postfix) with ESMTP id 327261406929; Wed, 15 Nov 2017 10:41:58 +0100 (CET)
Received: from mail.transpacket.com ([127.0.0.1]) by localhost (mail.transpacket.com [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id KUdxhkhVAWqU; Wed, 15 Nov 2017 10:41:58 +0100 (CET)
Received: from localhost (localhost [127.0.0.1]) by mail.transpacket.com (Postfix) with ESMTP id 04232140692B; Wed, 15 Nov 2017 10:41:58 +0100 (CET)
Received: from mail.transpacket.com ([127.0.0.1]) by localhost (mail.transpacket.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id i3lC_un7Q6M5; Wed, 15 Nov 2017 10:41:57 +0100 (CET)
Received: from [192.168.209.122] (s1853520235.blix.com [185.35.202.35]) by mail.transpacket.com (Postfix) with ESMTPSA id D14A41406928; Wed, 15 Nov 2017 10:41:57 +0100 (CET)
To: Robert Wilton <rwilton@cisco.com>, "netmod@ietf.org" <netmod@ietf.org>
References: <e35fe233-af5b-58f2-35e4-901eb7eea454@cisco.com> <CABCOCHSkZGv6Bak-hw4AoGtpZSEAgRa+8v957o9zMijYqC4NNw@mail.gmail.com> <9096e95e-8621-f578-2c84-e502109e0a64@cisco.com> <CABCOCHQseRLRF-msy50FK=wYYwyw+A_HdLREc72bf9V2MvxPTQ@mail.gmail.com> <ceb678ce-63f0-69a4-7565-273d695c1516@transpacket.com> <8584c894-473a-f268-29f0-20de225fa7c4@cisco.com> <bf69be8a-cab3-98ce-8b6d-860751921030@transpacket.com> <f497e7fc-cf47-cbee-265d-b26180cce20a@cisco.com>
From: Vladimir Vassilev <vladimir@transpacket.com>
Message-ID: <cdc778b5-76f3-f0b2-71e3-1df5da49a2e3@transpacket.com>
Date: Wed, 15 Nov 2017 10:41:57 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0
MIME-Version: 1.0
In-Reply-To: <f497e7fc-cf47-cbee-265d-b26180cce20a@cisco.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: nb
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/D9FSkrv-x3bZoePkmpJmDRiFisc>
Subject: Re: [netmod] [Netconf] Alternative YANG library structure for 7895bis
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: Wed, 15 Nov 2017 09:42:05 -0000


On 11/15/2017 01:06 AM, Robert Wilton wrote:
>
>
> On 14/11/2017 23:41, Vladimir Vassilev wrote:
>>
>>
>> On 11/13/2017 04:27 PM, Robert Wilton wrote:
>>>
>>> Hi Vladimir,
>>>
>>>
>>> On 12/11/2017 10:39, Vladimir Vassilev wrote:
>>>>
>>>>
>>>>
>>>> On 11/11/2017 08:07 PM, Andy Bierman wrote:
>>>>>
>>>>>
>>>>> On Fri, Nov 10, 2017 at 3:06 AM, Robert Wilton <rwilton@cisco.com 
>>>>> <mailto:rwilton@cisco.com>> wrote:
>>>>>
>>>>>     Hi Andy,
>>>>>
>>>>>     The NMDA datastore draft
>>>>>     (draft-ietf-netmod-revised-datastores-06) mandates two
>>>>>     constraints that must apply:
>>>>>
>>>>>     (1) All conventional datastores must have exactly the same
>>>>>     schema.  Hence differences in deviations or features are allowed
>>>>>     between these datastores. (sec 5.1, first paragraph)
>>>>>
>>>>>     (2) The schema for operational must be a superset of all
>>>>>     configuration datatstores, but that data nodes may be omitted
>>>>>     (sec 5.3, third paragraph).
>>>>>
>>>>>
>>>>>     This implies that only the following differences between
>>>>>     datastores are allowed:
>>>>>      (i) a feature can be disabled in conventional (and/or dynamic
>>>>>     configuration datastores), but enabled in operational (e.g. for
>>>>>     configurable router-id).
>>>>>
>>>>>      (ii) deviations apply in all datastores, except that
>>>>>       a) a deviation can remove nodes in the conventional datastores
>>>>>     (if they were not configurable, like the feature example)
>>>>>       b) a deviation can remove nodes in a dynamic datastore (e.g.
>>>>>     like I2RS)
>>>>>       c) a deviation can remove nodes from operational only if a
>>>>>     server is unable to accurately report them.
>>>>>
>>>>>     (iii) modules exist in all datastores, except:
>>>>>       a) a module can be omitted from conventional datastores (e.g.
>>>>>     if the module is not configurable)
>>>>>       b) a module can be omitted from a dynamic datastore (e.g. like
>>>>>     I2RS)
>>>>>       c) a module can be omitted from operational only if a server
>>>>>     is unable to accurately report the data nodes within the module.
>>>>>
>>>>>
>>>>>
>>>>> I am not convinced that moving to a datastore-centric conformance 
>>>>> model instead of server-centric
>>>>> is a good idea.
>>>> +1
>>>> IMO yang-library:1.1 can and should be optional. As a first step 
>>>> NMDA modules and the minimal protocol support <get-data> etc. can 
>>>> be implemented without yang-library 1.0 to 1.1 transition (read 
>>>> server-centric to datastore-centric conformance model transition). 
>>>> draft-ietf-netconf-nmda-netconf-01.txt requires migration to 
>>>> yang-library:1.1. I do not see good argument to support this 
>>>> limitation and there are usecases that can benefit from NMDA with 
>>>> uniform datastore model design.
>>>
>>> YANG library bis is the mechanism to indicate which datastores are 
>>> available to the client.  E.g. a NMDA compatible client would 
>>> attempt to read YANG library bis on the new path using the 
>>> <get-data> RPC to determine whether NMDA is supported, and what 
>>> datastores are supported.
>>>
>>> The existing module-state path in YANG library is preserved, but 
>>> marked as deprecated, so the intention is that it can be made 
>>> backwards compatible to clients.
>> I agree draft-ietf-netconf-nmda-netconf-01 sec. 2.4. 'YANG Library 
>> Capability'  states exactly that. IMO this text can be changed and 
>> allow the case described above (<get-data> implementation with NMDA 
>> modules implemented as indicated by yang-library:1.0 uniform model 
>> applying to all datastores. For cases where the datastores do not 
>> have common model yang-library:1.1 should still be mandatory). In 
>> other words if yang-library:1.0 shows implemented 
>> ietf-netconf-datastores <get-data> and NMDA modules listed as 
>> implemented will not need yang-library:1.1 implementation which takes 
>> one obstacle out of the way to rolling NMDA module implementations.
>>
>> Is there an argument making the proposed change unreasonable?
> Yes, I think so.
>
> In an NMDA implementation, the YANG library information reported in 
> the new structure can be entirely accurate.  I.e. it can report which 
> modules are available in which datastores.
>
> Of course, it is not possible to represent this in the old YANG 
> library, so the information that a NMDA server provides via the old 
> YANG library could be inaccurate.  I.e. I think that it has to report 
> all modules and deviations as being reported in all datastores.
>
> Hence the only way that a client would be able to know that it is 
> talking to an NMDA server with modules not implemented in some 
> datastores, or with deviations in some datastores would be for it to 
> query the new YANG library path.  The new YANG library structures that 
> we are proposing below are intended to be easier for a client to 
> determine this, e.g. by checking whether any of the 
> "not-implemented-in" leaf-lists are populated.
>
> So the aim for keeping the old YANG library path is to inter-operate 
> with old clients that don't know about NMDA, and hence would not be 
> expected to use the <edit-data> or <get-data> RPCs.
>
> Thanks,
> Rob
I still do not see an argument against supporting  NMDA modules with 
yang-library:1.0 in the case when and only when there are no deviations 
and the implemented module sets are exactly identical for all datastores.
>
>
>>
>> Vladimir
>>
>>>
>>> Thanks,
>>> Rob
>>>
>>>>>  I get it that it is supposed to allow the server to accurately 
>>>>> reflect its implementation,
>>>>> but it actually says that servers MAY implement whatever partial 
>>>>> subset of a module they want,
>>>>> and a client MUST deal with the mess.
>>>>>
>>>>> IMO, YANG says that features and deviations are server-wide, not 
>>>>> per-datastore.
>>>>> This new complexity is non-trivial to implement, so it may not be 
>>>>> widely supported.
>>>>>
>>>>> The WG seems confused about the difference between a conformance 
>>>>> model and capabilities reporting.
>>>>> (ii)(c) and (iii)(c) is about reporting, not conformance. There is 
>>>>> still no way to express
>>>>> trivial use-cases in the conformance model such as "this module is 
>>>>> intended for the I2RS ephemeral datastore only"
>>>>>
>>>>>
>>>>>     Changing the type of a node between datastores, or changing its
>>>>>     properties is not allowed.  The only difference allowed between
>>>>>     data nodes in different datastores is the nodes existence.
>>>>>
>>>>>     These rules seem more restrictive that what a server using split
>>>>>     config state trees (IETF style, or OpenConfig style) can achieve
>>>>>     using deviations today.
>>>>>
>>>>>
>>>>>
>>>>> Lots of rules to enforce actually makes the code harder, not easier.
>>>>>
>>>>>     Thanks,
>>>>>     Rob
>>>>>
>>>>>
>>>>>
>>>>> Andy
>>>>>
>>>>>
>>>>>
>>>>>     On 09/11/2017 19:33, Andy Bierman wrote:
>>>>>>     Hi,
>>>>>>
>>>>>>     The new structure still has the same problems for the client as
>>>>>>     before.
>>>>>>     It is a major change in the architecture to have different
>>>>>>     schema trees per datastore instead of per-server.
>>>>>>     The server is allowed to have different features and deviations
>>>>>>     for the same objects.
>>>>>>     The client is completely on its own trying to compare
>>>>>>     <operational> to anything
>>>>>>     if the schema trees are different
>>>>>>
>>>>>>       container foo {
>>>>>>         leaf bar {
>>>>>>            if-feature X;
>>>>>>            type string;
>>>>>>         }
>>>>>>         leaf baz {
>>>>>>            if-feature "not X";
>>>>>>            type string;
>>>>>>         }
>>>>>>      }
>>>>>>
>>>>>>     How does the client compare <running> to <operational> if the
>>>>>>     features do not match?
>>>>>>     If the server deviates the leaf (e.g. change type string to
>>>>>>     int32) how does the client
>>>>>>     compare the values?
>>>>>>
>>>>>>     This new complexity would be mandatory for the client to
>>>>>>     support in some proprietary
>>>>>>     manner since the NMDA standard ignores these problems.
>>>>>>
>>>>>>     NMDA was supposed to be simpler because the client could
>>>>>>     compare intended
>>>>>>     and applied values using the same object path. openconfig
>>>>>>     required a data
>>>>>>     model change and a trivial name-mapping. In reality, NMDA
>>>>>>     is far more disruptive to existing implementations.
>>>>>>
>>>>>>
>>>>>>     Andy
>>>>>>
>>>>>>
>>>>>>
>>>>>>     On Thu, Nov 9, 2017 at 8:51 AM, Robert Wilton
>>>>>>     <rwilton@cisco.com <mailto:rwilton@cisco.com>> wrote:
>>>>>>
>>>>>>         Hi,
>>>>>>
>>>>>>         Given some of the feedback related to the complexity of the
>>>>>>         YANG library bis structure, we have come up with two other
>>>>>>         possible structures for the YANG library data:
>>>>>>
>>>>>>         (1) A simplified structure to make YANG library meet the
>>>>>>         NMDA requirements, but that is closer to the existing YANG
>>>>>>         library structure, and arguably simpler.
>>>>>>         (2) An enhanced version of the structure (1) above, that is
>>>>>>         also extended to allow the structure to be reused for
>>>>>>         schema-mount via an augmentation.
>>>>>>
>>>>>>         For reference, at the end of this email, I have also
>>>>>>         included the tree diagram of the existing YANG library, and
>>>>>>         the current YANG library bis draft
>>>>>>         (draft-ietf-netconf-rfc7895bis-02) version.
>>>>>>
>>>>>>         Considering the two new YANG library structures:
>>>>>>
>>>>>>         ------------------------
>>>>>>
>>>>>>         *(1) A simplified structure to make YANG library meet the
>>>>>>         NMDA requirements, but that is closer to the existing YANG
>>>>>>         library structure.*
>>>>>>
>>>>>>         The main changes are:
>>>>>>         (i) Split "implemented modules" and "import-only-modules"
>>>>>>         into two separate lists, making the most important list
>>>>>>         (i.e. implemented modules) keyed by module name only and
>>>>>>         hence easier to reference.
>>>>>>         (ii) Assume modules are implemented in all datastores by
>>>>>>         default (with a "not-implemented-in" leaflist of datastores
>>>>>>         that a module is not implemented in).
>>>>>>         (iii) Assume that features are implemented in all
>>>>>>         datastores by default (with a "not-implemented-in" leaflist
>>>>>>         of datastores that a feature is not implemented in).
>>>>>>         (iv) Deleted module-sets.
>>>>>>         (v) Datastores are now just a list of supported datastores
>>>>>>         (that could potentially be extended with further per
>>>>>>         datastore properties in future).
>>>>>>
>>>>>>         Manually generated tree output for proposed YANG library:
>>>>>>
>>>>>>         module: ietf-yang-library
>>>>>>          +--ro yang-library
>>>>>>             +--ro modules
>>>>>>             |  +--ro module* [name]
>>>>>>             |  |  +--ro name yang:yang-identifier
>>>>>>             |  |  +--ro revision? revision-identifier
>>>>>>             |  |  +--ro schema?        inet:uri
>>>>>>             |  |  +--ro namespace      inet:uri
>>>>>>             |  |  +--ro submodule* [name]
>>>>>>             |  |  |  +--ro name yang:yang-identifier
>>>>>>             |  |  |  +--ro revision? yang:yang-identifier
>>>>>>             |  |  |  +--ro schema?     inet:uri
>>>>>>             |  |  +--ro not-implemented-in*
>>>>>>             |  |  | -> /yang-library/datastore/name
>>>>>>             |  |  +--ro feature* [name]
>>>>>>             |  |  |  +--ro name yang:yang-identifier
>>>>>>             |  |  |  +--ro not-implemented-in*
>>>>>>             |  |  | -> /yang-library/datastore/name
>>>>>>             |  |  +--ro deviation*
>>>>>>             |  | -> ../name
>>>>>>             |  |
>>>>>>             |  +--ro import-only-module* [name revision]
>>>>>>             |     +--ro name yang:yang-identifier
>>>>>>             |     +--ro revision            union
>>>>>>             |     +--ro schema?             inet:uri
>>>>>>             |     +--ro namespace           inet:uri
>>>>>>             |     +--ro submodule* [name]
>>>>>>             |        +--ro name yang:yang-identifier
>>>>>>             |        +--ro revision yang:revision-identifier
>>>>>>             |        +--ro schema?     inet:uri
>>>>>>             +--ro datastore* [name] // Allows future per datastore
>>>>>>         properties.
>>>>>>             |  +--ro name identityref
>>>>>>             +--ro checksum string
>>>>>>
>>>>>>         ------------------------------
>>>>>>
>>>>>>         *(2) An enhanced version of the structure (1) above, that
>>>>>>         is extended to allow the structure to be reused for
>>>>>>         schema-mount via an augmentation.*
>>>>>>
>>>>>>         This is similar to the structure above, except that the
>>>>>>         "the set of modules" is contained in a list of named schema
>>>>>>         (e.g. similar to the schema mount draft), allowing this
>>>>>>         structure to be re-used for schema mount.
>>>>>>
>>>>>>         Schema mount would be expected to augment yang-library to
>>>>>>         add in the additional schema mount information. In the
>>>>>>         tree diagram, I have shown the schema-mount mount-point
>>>>>>         augmentation, but not including namespaces yet.
>>>>>>
>>>>>>         Every server would be required to provide at least one
>>>>>>         schema in the schema list, and the primary schema for the
>>>>>>         device would always be given the name "primary".
>>>>>>
>>>>>>         module: ietf-yang-library
>>>>>>          +--ro yang-library
>>>>>>             +--ro schema* [name]
>>>>>>             |  +--ro name string
>>>>>>             |  +--ro checksum string
>>>>>>             |  +--ro module* [name]
>>>>>>             |  |  +--ro name yang:yang-identifier
>>>>>>             |  |  +--ro revision? yang:revision-identifier
>>>>>>             |  |  +--ro schema?        inet:uri
>>>>>>             |  |  +--ro namespace      inet:uri
>>>>>>             |  |  +--ro submodule* [name]
>>>>>>             |  |  |  +--ro name yang:yang-identifier
>>>>>>             |  |  |  +--ro revision? yang:yang-identifier
>>>>>>             |  |  |  +--ro schema?     inet:uri
>>>>>>             |  |  +--ro not-implemented-in*
>>>>>>             |  |  | -> /yang-library/datastore/name
>>>>>>             |  |  +--ro feature* [name]
>>>>>>             |  |  |  +--ro name yang:yang-identifier
>>>>>>             |  |  |  +--ro not-implemented-in*
>>>>>>             |  |  | -> /yang-library/datastore/name
>>>>>>             |  |  +--ro deviation*
>>>>>>             |  |  | -> ../name
>>>>>>             |  |  +- schema-mount:mount-point* [label]
>>>>>>             |  |     +--ro label yang:yang-identifier
>>>>>>             |  |     +--ro config?       boolean
>>>>>>             |  |     +--ro (schema-ref)
>>>>>>             |  | +--:(inline)
>>>>>>             |  |        |  +--ro inline?       empty
>>>>>>             |  | +--:(use-schema)
>>>>>>             |  |           +--ro use-schema* [name]
>>>>>>             |  |              +--ro name
>>>>>>             |  | |       -> /yang-library/schema/name
>>>>>>             |  |              +--ro parent-reference* yang:xpath1.0
>>>>>>             |  |
>>>>>>             |  +--ro import-only-module* [name revision]
>>>>>>             |     +--ro name yang:yang-identifier
>>>>>>             |     +--ro revision            union
>>>>>>             |     +--ro schema?             inet:uri
>>>>>>             |     +--ro namespace           inet:uri
>>>>>>             |     +--ro submodule* [name]
>>>>>>             |        +--ro name yang:yang-identifier
>>>>>>             |        +--ro revision yang:revision-identifier
>>>>>>             |        +--ro schema?     inet:uri
>>>>>>             +--ro datastore* [name] // Allows future per datastore
>>>>>>         properties.
>>>>>>             |  +--ro name identityref
>>>>>>             +--ro checksum string
>>>>>>
>>>>>>         Please can you provide comments on these structures, in
>>>>>>         particular:
>>>>>>
>>>>>>         Is this version better (i.e. simpler) that the version
>>>>>>         currently in draft-ietf-netconf-rfc7895bis-02 (below)?
>>>>>>
>>>>>>         Should we try and make the structure extensible for
>>>>>>         schema-mount via augmentation (i.e. version (2)), or is it
>>>>>>         better that schema-mount has its own separate subtree?
>>>>>>
>>>>>>         For reference only I have included the existing YANG
>>>>>>         library and YANG library bis draft tree diagrams.
>>>>>>
>>>>>>         Thanks,
>>>>>>         Rob
>>>>>>
>>>>>>
>>>>>>         -----------------------------
>>>>>>
>>>>>>         *** FOR REFERENCE ONLY ***
>>>>>>
>>>>>>         (3)  The current YANG library structure in YANG library bis
>>>>>>         (draft-ietf-netconf-rfc7895bis-02)
>>>>>>
>>>>>>             module: ietf-yang-library
>>>>>>                 +--ro yang-library
>>>>>>                    +--ro modules
>>>>>>                    |  +--ro module* [id]
>>>>>>                    |     +--ro id string
>>>>>>                    |     +--ro name yang:yang-identifier
>>>>>>                    |     +--ro revision? revision-identifier
>>>>>>                    |     +--ro schema? inet:uri
>>>>>>                    |     +--ro namespace inet:uri
>>>>>>                    |     +--ro feature* yang:yang-identifier
>>>>>>                    |     +--ro deviation* [module]
>>>>>>                    |     |  +--ro module    -> ../../id
>>>>>>                    |     +--ro conformance-type enumeration
>>>>>>                    |     +--ro submodule* [name]
>>>>>>                    |        +--ro name yang:yang-identifier
>>>>>>                    |        +--ro revision? revision-identifier
>>>>>>                    |        +--ro schema?     inet:uri
>>>>>>                    +--ro module-sets
>>>>>>                    |  +--ro module-set* [id]
>>>>>>                    |     +--ro id        string
>>>>>>                    |     +--ro module*   -> 
>>>>>> ../../../modules/module/id
>>>>>>                    +--ro datastores
>>>>>>                    |  +--ro datastore* [name]
>>>>>>                    |     +--ro name          identityref
>>>>>>                    |     +--ro module-set
>>>>>>                    |             -> 
>>>>>> ../../../module-sets/module-set/id
>>>>>>                    +--ro checksum       string
>>>>>>
>>>>>>         -----------------------------
>>>>>>
>>>>>>         *** FOR REFERENCE ONLY ***
>>>>>>
>>>>>>         (4)  The current YANG library structure (RFC 7895)
>>>>>>
>>>>>>                +--ro modules-state
>>>>>>                   +--ro module-set-id    string
>>>>>>                   +--ro module* [name revision]
>>>>>>                      +--ro name yang:yang-identifier
>>>>>>                      +--ro revision            union
>>>>>>                      +--ro schema?             inet:uri
>>>>>>                      +--ro namespace           inet:uri
>>>>>>                      +--ro feature* yang:yang-identifier
>>>>>>                      +--ro deviation* [name revision]
>>>>>>                      |  +--ro name yang:yang-identifier
>>>>>>                      |  +--ro revision    union
>>>>>>                      +--ro conformance-type enumeration
>>>>>>                      +--ro submodule* [name revision]
>>>>>>                         +--ro name yang:yang-identifier
>>>>>>                         +--ro revision    union
>>>>>>                         +--ro schema?     inet:uri
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Netconf mailing list
>>>>> Netconf@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/netconf
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Netconf mailing list
>>>> Netconf@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/netconf
>>>
>>
>> .
>>
>