Re: [netmod] Text in import to indicate whether a module is needed as import-only or as implemented

Ladislav Lhotka <lhotka@nic.cz> Thu, 19 December 2019 07:23 UTC

Return-Path: <lhotka@nic.cz>
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 D511C12006B for <netmod@ietfa.amsl.com>; Wed, 18 Dec 2019 23:23:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level:
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_NONE=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 bNM2yejqm7Cu for <netmod@ietfa.amsl.com>; Wed, 18 Dec 2019 23:23:33 -0800 (PST)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 6BF6C120026 for <netmod@ietf.org>; Wed, 18 Dec 2019 23:23:32 -0800 (PST)
Received: by trail.lhotka.name (Postfix, from userid 109) id 666538601A9; Thu, 19 Dec 2019 08:26:56 +0100 (CET)
Received: from localhost (89-24-44-252.nat.epc.tmcz.cz [89.24.44.252]) by trail.lhotka.name (Postfix) with ESMTPSA id 9294B8601A0; Thu, 19 Dec 2019 08:26:54 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Andy Bierman <andy@yumaworks.com>, =?utf-8?Q?Bal=C3=A1zs?= Lengyel <balazs.lengyel=40ericsson.com@dmarc.ietf.org>
Cc: "netmod\@ietf.org" <netmod@ietf.org>
In-Reply-To: <CABCOCHR_jEGDjSA_BhUWyLFB=4JJSFKqyT_3AHi91pfGFik-LQ@mail.gmail.com>
References: <AM0PR0702MB36654D2907FBCC620AD179F7F0530@AM0PR0702MB3665.eurprd07.prod.outlook.com> <CABCOCHR_jEGDjSA_BhUWyLFB=4JJSFKqyT_3AHi91pfGFik-LQ@mail.gmail.com>
Mail-Followup-To: Andy Bierman <andy@yumaworks.com>, =?utf-8?Q?Bal=C3=A1zs?= Lengyel <balazs.lengyel=40ericsson.com@dmarc.ietf.org>, "netmod\@ietf.org" <netmod@ietf.org>
Date: Thu, 19 Dec 2019 08:23:27 +0100
Message-ID: <87fthgye1c.fsf@nic.cz>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/Imf9xyF_GwIYh_uSQ_OAdlQdLPc>
Subject: Re: [netmod] Text in import to indicate whether a module is needed as import-only or as implemented
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
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: Thu, 19 Dec 2019 07:23:36 -0000

Andy Bierman <andy@yumaworks.com> writes:

> On Wed, Dec 18, 2019 at 6:08 AM Balázs Lengyel <balazs.lengyel=
> 40ericsson.com@dmarc.ietf.org> wrote:
>
>> Hello Mahesh,
>>
>> I was asked by the group to include in each import statement whether the
>> imported module is needed as import-only or as implemented. IMHO
>> netmod/netconf group should agree on some standard text for model designers
>> to use. Maybe the text proposed below can be used everywhere. The sentence
>> starting with Revision yyyy-mm-dd  may not always be needed.
>>
>>
>>
>>
>>
>> I propose the text
>>
>>
>>
>>   import ietf-netconf-acm  {
>>
>>     prefix nacm;
>>
>>     description
>>
>> *       "The module ietf-netconf-acm is OPTIONAL to implement.";*
>>
>>   }
>>
>>
>>
>>   import ietf-yang-library {
>>
>>     prefix yanglib;
>>
>>     description *"The module ietf-yang-library is REQUIRED to*
>>
>> *      be implemented. Revision 2019-01-04 or a*
>>
>> *      revision derived from it is REQUIRED.";*
>>
>>   }
>>
>>
>>
>> Regards Balazs
>>
>>
>>
>> P.S. In Yang-Next this could be a candidate for a formal substatement
>> instead of a description text.
>>
>>
>>
>
>
> IMO this is a bad idea.
> The IETF keeps adding CLRs to YANG that make it harder to use over time.
> The YANG syntax defines what must be implemented from the imported module,

I don't see how YANG syntax defines this. If a module imports ietf-netconf-acm, it could be because

- it just uses a typedef, such as "node-instance-identifier", and then
  ietf-netconf-acm needn't be implemented (but can be),

or

- it augments ietf-netconf-acm, which makes sense only if the latter
  module is implemented.

It it the YANG library that specifies whether a module is implemented or not, but the "import" statement itself doesn't tell you anything.

> so extra description-stmts just add more busy work for writers and
> reviewers.
> The text specifying the revision overrides (and breaks) YANG rules.
> YANG 1.1 has specific import-by-revision that cannot be changed with a
> description-stmt.

This is one of the problems that the semver effort aims to solve. What happens quite oftem these days is that a module is written for NMDA and thus needs NMDA versions of modules to be imported. But specifying an exact revision is really a bad idea.

Lada

>
> Andy
>
>
>
>>
>>
>> *From:* Mahesh Jethanandani <mjethanandani@gmail.com>
>> *Sent:* 2019. december 18., szerda 3:20
>> *To:* Kent Watsen <kent+ietf@watsen.net>
>> *Cc:* Balázs Lengyel <balazs.lengyel@ericsson.com>
>> *Subject:* Re: [netconf] New Version Notification for
>> draft-ietf-netconf-notification-capabilities-08.txt
>>
>>
>>
>> Hi Balazs,
>>
>>
>>
>> Additionally, it would be important to address some of the normative text
>> in the module. Specifically, we were looking at the following description
>> statements:
>>
>>
>>
>>   import ietf-yang-push    {
>>
>>     prefix yp;
>>
>>     description
>>
>>       "This module requires ietf-yang-push to be implemented for the
>>
>>         two subscription-capabilities containers.";
>>
>>   }
>>
>>   import ietf-yang-library {
>>
>>     prefix yanglib;
>>
>>     description "This module requires ietf-yang-library to
>>
>>       be implemented. Revision 2019-01-04 or a
>>
>>       revision derived from it is required.";
>>
>>   }
>>
>>
>>
>> The requirement in the description statement feels and smells like words
>> one would use to signify requirements in a specification. However, you are
>> not using any of the words like REQUIRED etc. to describe it. Why is it?
>>
>>
>>
>> Mahesh Jethanandani
>>
>> mjethanandani@gmail.com
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod
>>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod

-- 
Ladislav Lhotka 
Head, CZ.NIC Labs
PGP Key ID: 0xB8F92B08A9F76C67