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

Benoit Claise <bclaise@cisco.com> Mon, 02 March 2020 16:57 UTC

Return-Path: <bclaise@cisco.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 4C9AE3A0BC8 for <netmod@ietfa.amsl.com>; Mon, 2 Mar 2020 08:57:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.6
X-Spam-Level:
X-Spam-Status: No, score=-9.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 gVt72_aSXmaK for <netmod@ietfa.amsl.com>; Mon, 2 Mar 2020 08:57:42 -0800 (PST)
Received: from aer-iport-1.cisco.com (aer-iport-1.cisco.com [173.38.203.51]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5D8503A0BB2 for <netmod@ietf.org>; Mon, 2 Mar 2020 08:57:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=32510; q=dns/txt; s=iport; t=1583168261; x=1584377861; h=subject:to:cc:references:from:message-id:date: mime-version:in-reply-to; bh=kWUO2ucL2J4yBswzYW0yHI3JZXz1KfXUj4B1bNVAH1w=; b=GSEAgvsunRQnfbS9BP9ZmCLRBkRs6fuyF5PnEcxm2qDfuqDzUanUjqP6 nf02IbdhRx9S59MAjw85wMwNfHI6fPdTMCD0rzkpFDDFgKjt4xGTyBkcX aHACLUmNruhwK5RGDxmf02PS68uwK3ktKRwKGo8yMImbtyRasRGfRGl/L I=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0BiAADPOV1e/xbLJq1lGQEBAQEBAQEBAQEBAQEBAQEBEQEBAQEBAQEBAQEBgXuDFVUgEiqDVECJA4gLmVeBZwkBAQEMAQEYAQoMBAEBg3tFAoIvOBMCAw0BAQUBAQECAQUEbYVWDIVjAQEBAQIBAQEKF0sLBQcECQIRBAEBASADBAMCAicfCQgGAQwGAgEBF4MLAYJbIA+PNJsEdYEyhUqDQoE4BoE4jD+BQT+BESeBb1AuPoJkAQECgRsSAQESAQmDKYJeBK8ldoJGjFWKCwYcjw6MI4pRhCGRWIlyAgQLAhWBaSJncTMaCBsVO4JsUBgNjlWIT4VCQAMwAgGOe4IzAQE
X-IronPort-AV: E=Sophos; i="5.70,507,1574121600"; d="scan'208,217"; a="23948645"
Received: from aer-iport-nat.cisco.com (HELO aer-core-2.cisco.com) ([173.38.203.22]) by aer-iport-1.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 02 Mar 2020 16:57:39 +0000
Received: from [10.55.221.38] (ams-bclaise-nitro5.cisco.com [10.55.221.38]) (authenticated bits=0) by aer-core-2.cisco.com (8.15.2/8.15.2) with ESMTPSA id 022GvbF2005835 (version=TLSv1.2 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 2 Mar 2020 16:57:38 GMT
To: Andy Bierman <andy@yumaworks.com>, Ladislav Lhotka <lhotka@nic.cz>
Cc: NETMOD WG <netmod@ietf.org>
References: <d3520549f06107de8939af24268f56f56683fbb0.camel@nic.cz> <CABCOCHRFQrXgGKB10B9MXbKa2vMfaY3eWaj5Sp4W0DPQ0F-pGQ@mail.gmail.com> <VI1PR07MB40472B4BEFB581AEE4F7C158F0230@VI1PR07MB4047.eurprd07.prod.outlook.com><20200107.143818.1928135118621633911.mbj@tail-f.com> <VI1PR07MB404773908BCA102EFBB6EE46F03F0@VI1PR07MB4047.eurprd07.prod.outlook.com> <e28ccc2b5b632d861dcdcc8b59184d1b81eb4406.camel@nic.cz> <CABCOCHQ5ps3SMfBiFatqN1R2MFbvY1WRyO9548nOZr1-GKuQ=g@mail.gmail.com> <bbc48da835fc0829dc179e89a8553095b1244677.camel@nic.cz> <CABCOCHR=qBJ=uKK29RP4ynumabeZiaWY-MM30VuG9fsQ6Rq95Q@mail.gmail.com>
From: Benoit Claise <bclaise@cisco.com>
Message-ID: <940da771-440b-6e42-eaf7-12bc5626441a@cisco.com>
Date: Mon, 02 Mar 2020 17:57:37 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <CABCOCHR=qBJ=uKK29RP4ynumabeZiaWY-MM30VuG9fsQ6Rq95Q@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------FB394B32B01BA2473E0F2824"
Content-Language: en-US
X-Authenticated-User: bclaise
X-Outbound-SMTP-Client: 10.55.221.38, ams-bclaise-nitro5.cisco.com
X-Outbound-Node: aer-core-2.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/7TprET3CK2g_7TclIatx3_-MKcs>
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: Mon, 02 Mar 2020 16:57:45 -0000

Sorry to resurrect this old email thread.
To me, it's an important piece of information to know that 
ietf-netconf-acm is optional to implement.

It seems that we have 3 potential places where to insert this information
1. The associated document. We could and should insert it into the RFC text.
     Drawback: Somehow the YANG module is looked at independently of the 
associated document
2. import-stmt: people on the list apparently don't like this
3. module description? What harm would it do if the description could 
contain this info?

Regards, Benoit
>
>
> On Wed, Jan 8, 2020 at 5:44 AM Ladislav Lhotka <lhotka@nic.cz 
> <mailto:lhotka@nic.cz>> wrote:
>
>     On Wed, 2020-01-08 at 04:49 -0800, Andy Bierman wrote:
>     >
>     > On Wed, Jan 8, 2020 at 1:11 AM Ladislav Lhotka <lhotka@nic.cz
>     <mailto:lhotka@nic.cz>> wrote:
>     > > On Tue, 2020-01-07 at 14:29 +0000, Balázs Lengyel wrote:
>     > > > If that is the consensus, I can remove the description
>     statements, no big
>     > > > deal. (I actually like the statements, but they are not
>     important for this
>     > > > draft)
>     > >
>     > > Of course, it is not that important, but I don't see how this
>     information
>     > > could
>     > > be harmful, if it is included with the import. In my view, it
>     is not meant
>     > > as a
>     > > conformance requirement but just an info from the module
>     author about the
>     > > meaning of the import statement.
>     > >
>     >
>     > It adds a lot of extra work but more importantly the import-stmt
>     is the wrong
>     > place
>
>     What work do you mean? I thought that it would be just info for
>     potential
>     developers (or their managers) that implementing the module requires
>     implementing other modules and functionality - or not.
>
>
>
> It is duplication because the individual data-def statements should 
> have any notes
> about implementation requirements. The duplication may even be wrong.
> E.g., in the module it says NACM is not required, but what if some objects
> have NACM requirements listed in the Security Considerations section?
> That is the RFC section to discuss NACM requirements.
>
>
>     For example, if a module imports ietf-netconf-nacm only for using
>     "node-
>     instance-identifier" type, it is relatively uninteresting. Otherwise,
>     implementation of the module may just be out of question.
>
>
>     > to document such a complex and unrelated issue as server conformance
>     > requirements.
>     >
>     >
>     > > The root of this problem (and design flaw of YANG, IMO) is
>     that import is
>     > > "overloaded" with two different purposes, one of which
>     effectively requires
>     > > that
>     > > the imported module be also implemented, while the other doesn't.
>     > >
>     >
>     > The import-stmt is only used to map a local prefix to an
>     external module.
>
>     But one thing is using a prefix for accessing top-level types and
>     groupings
>     (i.e. stuff in YANG modules), and another thing is accessing
>     schema nodes, which
>     have to be present in the schema tree. In complicated data models,
>     it is not
>     exactly easy to figure out all these dependencies.
>
>
> I do not agree these are different things.
> In both cases the prefix is used to determine the imported module that 
> contains the identifier.
>
>
>     So maybe what is really overloaded are the namespace prefixes:
>     they are used for
>     addressing YANG modules, schema nodes and instances (in XPath).
>
>     Lada
>
>
>
> Andy
>
>
>     > This proposal to add conformance info the the import-stmt would
>     overload it
>     > with
>     > another purpose.
>     >
>     > Not even a typedef is easy to classify  (e.g., leafref requires
>     implementation
>     > of a data node).
>     > I certainly agree that YANG conformance is poorly specified, poorly
>     > understood, and
>     > in real need of improvement. Likewise, the import-stmt is also
>     in need of some
>     > improvement
>     > since import-by-exact-revision is (and has always been) poorly
>     designed.
>     >
>     >
>     > > Lada
>     > >
>     > > > Balazs
>     >
>     > Andy
>     >
>     >
>     > > > -----Original Message-----
>     > > > From: Martin Bjorklund <mbj@tail-f.com <mailto:mbj@tail-f.com>>
>     > > > Sent: Tuesday, January 7, 2020 2:38 PM
>     > > > To: Balázs Lengyel <balazs.lengyel@ericsson.com
>     <mailto:balazs.lengyel@ericsson.com>>
>     > > > Cc: andy@yumaworks.com <mailto:andy@yumaworks.com>;
>     lhotka@nic.cz <mailto:lhotka@nic.cz>; netmod@ietf.org
>     <mailto:netmod@ietf.org>
>     > > > Subject: Re: [netmod] Text in import to indicate whether a
>     module is
>     > > needed as
>     > > > import-only or as implemented
>     > > >
>     > > > Hi
>     > > >
>     > > > I agree w/ Andy and others that we should not add this to
>     the import's
>     > > > description.  I don't think this kind of conformance text
>     belongs to the
>     > > > import's description.  If you think it is important to state
>     this, the
>     > > best
>     > > > place is probably as plain text in the document itself.
>     > > >
>     > > >
>     > > >
>     > > > /martin
>     > > >
>     > > >
>     > > > Balázs Lengyel <balazs.lengyel=40ericsson.com@dmarc.ietf.org
>     <mailto:40ericsson.com@dmarc.ietf.org>> wrote:
>     > > > > As a draft author who was asked to add text about the
>     imports IMHO
>     > > > >
>     > > > > *   it would be easy for me to remove the description from
>     the import.
>     > > > > Actually I really just want to know what is acceptable to
>     the group, so
>     > > I
>     > > > > can proceed
>     > > > > *   I also think that adding this text is in most cases
>     easy and it does
>     > > not
>     > > > > need updates later.
>     > > > > *   The rules in some cases might not be trivial.
>     > > > >
>     > > > > *   Imported YAMs need to be implemented if
>     > > > >
>     > > > > *   Imported parts are included in Xpath (augment, when,
>     must, require-
>     > > > > instance)
>     > > > >
>     > > > > *   Imported YAMs do not need to be implemented if only
>     the following
>     > > are
>     > > > > used
>     > > > >
>     > > > > *   Types
>     > > > > *   Features
>     > > > > *   extensions
>     > > > >
>     > > > > *   Ambiguous if
>     > > > >
>     > > > > *   groupings are used
>     > > > > *   if the dependency is not formally defined by YANG, but
>     functionally
>     > > > > needed. (E.g. notification-capabilities does not formally
>     need YANG-
>     > > > > Push
>     > > to
>     > > > > be implemented, however there is no sense in defining
>     capabilities if
>     > > YANG-
>     > > > > Push is itself not implemented.)
>     > > > > *   deviation ?
>     > > > > *   other cases ?
>     > > > >
>     > > > > Regards Balazs
>     > > > >
>     > > > >
>     > > > >
>     > > > > From: netmod <netmod-bounces@ietf.org
>     <mailto:netmod-bounces@ietf.org>> On Behalf Of Andy Bierman
>     > > > > Sent: 2019. december 19., csütörtök 17:23
>     > > > > To: Ladislav Lhotka <lhotka@nic.cz <mailto:lhotka@nic.cz>>
>     > > > > Cc: NetMod WG <netmod@ietf.org <mailto:netmod@ietf.org>>
>     > > > > Subject: Re: [netmod] Text in import to indicate whether a
>     module is
>     > > > > needed as import-only or as implemented
>     > > > >
>     > > > >
>     > > > >
>     > > > >
>     > > > >
>     > > > >
>     > > > >
>     > > > > On Thu, Dec 19, 2019 at 8:00 AM Ladislav Lhotka
>     <lhotka@nic.cz <mailto:lhotka@nic.cz> <mailto:
>     > > > > lhotka@nic.cz <mailto:lhotka@nic.cz>> > wrote:
>     > > > >
>     > > > > On Thu, 2019-12-19 at 07:52 +0000, Schönwälder, Jürgen wrote:
>     > > > > > On Thu, Dec 19, 2019 at 08:23:27AM +0100, Ladislav
>     Lhotka wrote:
>     > > > > > > 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.
>     > > > > > >
>     > > > > >
>     > > > > > Can we not assume that an implementor will figure out
>     the difference?
>     > > > >
>     > > > > An implementor should be able to figure it out, but other
>     potential
>     > > > > module users may not. For example, if somebody is
>     evaluating whether
>     > > > > to use a module for their device or not, it is important
>     to know that
>     > > > > NACM has to be implemented (or not).
>     > > > >
>     > > > >
>     > > > >
>     > > > > You seem to be talking about a new conformance
>     documentation procedure
>     > > > >
>     > > > > that attempts to solve the problem "to use modules A, B,
>     and C
>     > > > > together
>     > > > >
>     > > > > to achieve some functionality X, all these conditions need
>     to be met"..
>     > > > >
>     > > > > (Sounds more like a problem for YANG Packages to solve)
>     > > > >
>     > > > >
>     > > > >
>     > > > > IMO this is a much harder problem than something that can
>     be solved
>     > > > >
>     > > > > with extra description-stmt text. The writer is likely to
>     get it wrong
>     > > > > or not
>     > > > >
>     > > > > keep it up to date, so a tool to analyze the file seems
>     like a better
>     > > > > solution.
>     > > > >
>     > > > >
>     > > > >
>     > > > > Lada
>     > > > >
>     > > > >
>     > > > >
>     > > > >
>     > > > >
>     > > > > Andy
>     > > > >
>     > > > >
>     > > > >
>     > > > >
>     > > > > > Or someone writes a pyang plugin to determine from the
>     schema tree
>     > > > > > the kind of imports there are (for a given set of features).
>     > > > > >
>     > > > > > /js
>     > > > > >
>     > > > > --
>     > > > > Ladislav Lhotka
>     > > > > Head, CZ.NIC Labs
>     > > > > PGP Key ID: 0xB8F92B08A9F76C67
>     > > > >
>     > > > > _______________________________________________
>     > > > > netmod mailing list
>     > > > > netmod@ietf.org <mailto:netmod@ietf.org>
>     <mailto:netmod@ietf.org <mailto:netmod@ietf.org>>
>     > > > > https://www.ietf.org/mailman/listinfo/netmod
>     > > > >
>     -- 
>     Ladislav Lhotka
>     Head, CZ.NIC Labs
>     PGP Key ID: 0xB8F92B08A9F76C67
>
>     _______________________________________________
>     netmod mailing list
>     netmod@ietf.org <mailto:netmod@ietf.org>
>     https://www.ietf.org/mailman/listinfo/netmod
>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod