Re: [netconf] Should a NETCONF server implement YANG Library 1.1 if it does not support NETCONF NMDA?

Jernej Tuljak <jernej.tuljak@mg-soft.si> Fri, 02 July 2021 09:22 UTC

Return-Path: <jernej.tuljak@mg-soft.si>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0A8E93A1047 for <netconf@ietfa.amsl.com>; Fri, 2 Jul 2021 02:22:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.435
X-Spam-Level:
X-Spam-Status: No, score=-2.435 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.338, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=mg-soft.si
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 jF00Mjk4nPWk for <netconf@ietfa.amsl.com>; Fri, 2 Jul 2021 02:22:53 -0700 (PDT)
Received: from galileo.mg-soft.si (gate.mg-soft.si [212.30.73.66]) by ietfa.amsl.com (Postfix) with ESMTP id 7F1433A1706 for <netconf@ietf.org>; Fri, 2 Jul 2021 02:22:52 -0700 (PDT)
Received: from [127.0.0.1] (teleport2.mg-soft.si [10.0.0.254]) by galileo.mg-soft.si (Postfix) with ESMTP id 2FA1BC4DC9C1; Fri, 2 Jul 2021 11:22:50 +0200 (CEST)
DKIM-Filter: OpenDKIM Filter v2.11.0 galileo.mg-soft.si 2FA1BC4DC9C1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mg-soft.si; s=default; t=1625217770; bh=FHx6cfNUyobS20BPCImxWTkCVRuaDEmEjz7rBEDo0SU=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=jsRkhtJVp98npleHHhH/9EuWRklR0t2pU4HSICLacARpPjmx3bbUuVEa+RcA7Hlnj Y1OrKHy4tebMvW+CzBw4i7QFTQxCIb49BMuRaaKIguosVFmJzikY28OAVgCE46l+GK UvKpipb7wHK4CMJU63OHdKQUFBKfsuPmpYBARtiz6+bTi8wSkKt4ERMWF+zZ4PQSuH 8ZX190H1/2wTuWMBkhqAyChC50gSARcg0cvTe6KdQg8XqJywnCDGSJq8BgN4e+G6zT L3/K2EiZt3nb3z5DyrMhAD5TlKVyl3Pdwz10hrSVAKP7piuAXgzfK/lSiQd2JGtkSZ KqJ8nRZ0AWigw==
To: Andy Bierman <andy@yumaworks.com>
Cc: Vladimir Vassilev <vladimir@lightside-instruments.com>, Netconf <netconf@ietf.org>
References: <d8bd1bec-834c-3247-8269-0f9d915dd36a@mg-soft.si> <ee2ced1d-2d74-093a-d377-73907e03c7fa@lightside-instruments.com> <CABCOCHQomyGQxbg-svjZTcKPjc+BWodPaugSE8LFC_fXj-Uw6Q@mail.gmail.com> <a5c08314-3687-59bc-a44c-1044b6c06b33@mg-soft.si> <CABCOCHQ8L4M8ZwNdUgcPX=Ba0uYs6mkX_cAthkZc74vpdqnunw@mail.gmail.com>
From: Jernej Tuljak <jernej.tuljak@mg-soft.si>
Message-ID: <12702921-2d78-84b2-8601-2ab225da0b52@mg-soft.si>
Date: Fri, 02 Jul 2021 11:22:48 +0200
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0
MIME-Version: 1.0
In-Reply-To: <CABCOCHQ8L4M8ZwNdUgcPX=Ba0uYs6mkX_cAthkZc74vpdqnunw@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------1787F22C0E2059D6D96BC9F8"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/FD2-TQjllnEp1363eQjCdHOeSAY>
Subject: Re: [netconf] Should a NETCONF server implement YANG Library 1.1 if it does not support NETCONF NMDA?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 02 Jul 2021 09:22:59 -0000

On 01/07/2021 16:58, Andy Bierman wrote:
>
>
> On Thu, Jul 1, 2021 at 7:32 AM Jernej Tuljak <jernej.tuljak@mg-soft.si 
> <mailto:jernej.tuljak@mg-soft.si>> wrote:
>
>     On 01/07/2021 14:25, Andy Bierman wrote:
>>
>>
>>     On Thu, Jul 1, 2021 at 1:36 AM Vladimir Vassilev
>>     <vladimir@lightside-instruments.com
>>     <mailto:vladimir@lightside-instruments.com>> wrote:
>>
>>
>>         On 30/06/2021 10.33, Jernej Tuljak wrote:
>>         > Hi,
>>         >
>>         > I have a relatively simple question, stated in the subject.
>>         >
>>         > I cannot find any concrete text that would advise against,
>>         prohibit or
>>         > encourage such a thing, but is ietf-yang-library@2019-01-04
>>         intended
>>         > to be used in such a way; to be implemented in a non-NMDA
>>         NETCONF server?
>>         >
>>         > How should a NMDA enabled NETCONF client handle a situation
>>         where
>>         > :yang-library:1.1 capability is advertised by the NETCONF
>>         server, but
>>         > ietf-netconf-nmda module is not (assuming that the client
>>         is also
>>         > capable of acting as a legacy client)?
>>
>>         IMO all NETCONF servers that implement :yang-library:1.0
>>         implement NMDA
>>         where "all datastores have exactly the same schema". Those
>>         servers can
>>         trivially implement :yang-library:1.1. I am not aware of any
>>         formal
>>         requirement for such implementation to also implement
>>         ietf-netconf-nmda
>>         - e.g. <get-data>.
>>
>>
>>     Correct.
>>     If module A does not import or even mention module B,
>>     then it safe to assume that there is no requirement to implement B
>>     if A is supported.
>>
>>     It is trivial for the server to support the new YANG library, and
>>     at least 2 implementations
>>     use the same approach even if NMDA is enabled.
>
>     I'm more interested in the case where the server does not support
>     NMDA but implements YANG Library 1.1. I'd like to see a concrete
>     example of the server's <hello> message and content of a response
>     to a client's <get> request on /ietf-yang-library:yang-library
>     data tree branch for this case.
>
>
>
> I don't understand why there would be any confusion about <get> processing
> of config=false data nodes, or why such data nodes under the 
> /yang-library subtree would be special.

I'd like to see what you consider to be a sane response to a query on 
that branch, if the server does not support NMDA. I would also like to 
see how the server properly announces its support for YANG Library 1.1, 
if it does not support NMDA.

>
>
>     We have seen different approaches used in the wild and none of
>     them make much sense to us. The intention of YANG Library 1.1
>     seems to be pretty clear - to announce NMDA datastore schema
>     compliance. I do not see how it can be used in a different context
>     so an example would be appreciated greatly.
>
>
> I do not see any text requiring more than one module-set list entry to 
> be populated,
> except for rules on how <operational> can be different from a 
> conventional datastore.

Are you saying that a non-NMDA server implementing YANG Library 1.1 is 
only expected/required to populate one <module-set> entry and not 
instantiate <schema> and <datastore> at all, since those are not 
supported? That is exactly why I asked for an example.

>
> Our server does not use the 2019 version unless NMDA is actually enabled.

To me, that is the only decision that makes sense.

> There are already enough copies of the module info in the server 
> without the /yang-library copy.

What is the latter copy supposed to contain and what meaning does it 
convey to the client if the server does not support NMDA?

> I agree there is no value in providing the 2019 version in a non-NMDA 
> server.

That is my view as well.

> A non-NMDA client will be looking for the 2016 version anyway.

You seem to be implying that the client side cannot support both (NMDA 
and legacy) and decide which to use during <hello> exchange and some 
additional queries immediately after?

>
> Even if NMDA is enabled on our server, it only supports 1 module-set,
> because our clients do not support multiple schema trees per session.

All server implementations we have encountered are like that. So far. 
But like I said before, I'm more interested in non-NMDA servers that 
implement YANG Library 1.1.

Jernej

>
>
>
>
>     Jernej
>
>
>
> Andy
>
>
>>
>>     It has never been trivial for a client to support NMDA, and that
>>     is why NMDA
>>     is not being adopted (but the server-centric WG still thinks the
>>     jury is out on NMDA).
>>
>>
>>         IMO client software using <get> and <get-config> should not
>>         need changes
>>         to support device servers upgraded to support
>>         :yang-library:1.1 with or
>>         without implementation of ietf-netconf-nmda (<get-data> etc.).
>>
>>
>>     This is not just an opinion.
>>     No words in RFC 6241 are altered because NMDA is implemented.
>>     The <get> and <get-config> operations work exactly the same as
>>     before NMDA existed.
>>
>>         /Vladimir
>>
>>
>>
>>
>>     Andy
>>
>>         >
>>         > Jernej
>>         >
>>         > _______________________________________________
>>         > netconf mailing list
>>         > netconf@ietf.org <mailto:netconf@ietf.org>
>>         > https://www.ietf.org/mailman/listinfo/netconf
>>         <https://www.ietf.org/mailman/listinfo/netconf>
>>
>>         _______________________________________________
>>         netconf mailing list
>>         netconf@ietf.org <mailto:netconf@ietf.org>
>>         https://www.ietf.org/mailman/listinfo/netconf
>>         <https://www.ietf.org/mailman/listinfo/netconf>
>>
>>
>>     _______________________________________________
>>     netconf mailing list
>>     netconf@ietf.org  <mailto:netconf@ietf.org>
>>     https://www.ietf.org/mailman/listinfo/netconf  <https://www.ietf.org/mailman/listinfo/netconf>
>