Re: [netmod] features in import

Ladislav Lhotka <lhotka@nic.cz> Thu, 31 January 2019 10:41 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 0C49A130ED6 for <netmod@ietfa.amsl.com>; Thu, 31 Jan 2019 02:41:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7
X-Spam-Level:
X-Spam-Status: No, score=-7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nic.cz
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 15BM6z0xTGmO for <netmod@ietfa.amsl.com>; Thu, 31 Jan 2019 02:41:04 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DDB11130EBA for <netmod@ietf.org>; Thu, 31 Jan 2019 02:41:03 -0800 (PST)
Received: from birdie (unknown [IPv6:2001:1488:fffe:6:a744:2697:a0ec:a420]) by mail.nic.cz (Postfix) with ESMTPSA id 1E11F6251F for <netmod@ietf.org>; Thu, 31 Jan 2019 11:41:02 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1548931262; bh=fN/Qu3cKWz8e2h2TfAg3V2dTzbW6SPixM9Xqwfzx/yI=; h=From:To:Date; b=os6S+WJgV66zdhaxlRHmr950XLzV+GXx1y2uJReRYShd+N9V+DLMZsXovmGEChgnS 1ywauUFZiR7KzTQUmi8KNOhiFoOfcWc6KP7/IVRKeSQJFZftx5HVII+ARIgt1en5eT 8gzFFmACR3F+e0GRV1jkcEYKykVs1Gh6Ba+mcvgs=
Message-ID: <f2f2814d6ecb07c6ad77571735fcfb0cc8098a37.camel@nic.cz>
From: Ladislav Lhotka <lhotka@nic.cz>
To: netmod@ietf.org
Date: Thu, 31 Jan 2019 11:41:01 +0100
In-Reply-To: <a26ec31e-9c0c-ba58-9e9e-8f1cbf0aa451@cisco.com>
References: <874l9qjhto.fsf@nic.cz> <20190130.200250.2298112466859908310.mbj@tail-f.com> <CABCOCHRTOY_W6Z3Sc7ejm0j=vEdAE221wLveH8w04ekHQnc4Zw@mail.gmail.com> <20190131.094407.267764793396247491.mbj@tail-f.com> <a26ec31e-9c0c-ba58-9e9e-8f1cbf0aa451@cisco.com>
Organization: CZ.NIC
Content-Type: text/plain; charset="UTF-8"
User-Agent: Evolution 3.30.4
Mime-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Virus-Scanned: clamav-milter 0.99.2 at mail
X-Virus-Status: Clean
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/FVvFb9yVZt9We0YY3WZL8CMURYs>
Subject: Re: [netmod] features in import
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, 31 Jan 2019 10:41:07 -0000

On Thu, 2019-01-31 at 10:23 +0000, Robert Wilton wrote:
> Hi Martin, Andy,
> 
> Despite what YANG the language allows, I think that it is much cleaner 
> use of the language to split types/groupings that are expected to be 
> shared by other modules into separate "*_types.yang" modules.

But it is not always the case. For example, ietf-routing has a couple of
groupings and typedefs that may be useful for other purposes.

Another potential issue is that multiple revisions of import-only modules may be
used while only one revision is permitted for implemented modules.

Such problems may not be very common but, on the other hand, it may be worth
fixing before 7895bis becomes an RFC.

Lada 

> 
> I agree with Andy that it is strange to support a feature in a module 
> that is not itself implemented.
> 
> My hope with YANG library-bis is that most implementations can get by 
> with an empty "import-only-modules" list, and that they can define all 
> modules (including types only modules) in the "module" list of 
> implemented modules.
> 
> So, I actually think that the workaround using deviations below is OK, 
> because this scenario should be avoidable by having a clean separation 
> between external reusable types and implementable nodes.
> 
> Thanks,
> Rob
> 
> 
> On 31/01/2019 08:44, Martin Bjorklund wrote:
> > Andy Bierman <andy@yumaworks.com> wrote:
> > > Hi,
> > > 
> > > I do not agree these changes should be made at this late date.
> > > It seems to me that in order to support a feature you have to implement
> > > it,
> > > and therefore if any features are set then the module is implemented, not
> > > imported.
> > But this is not what RFC 7950 says about implement:
> > 
> >     A server implements a module if it implements the module's data
> >     nodes, RPCs, actions, notifications, and deviations.
> > 
> > > All features should be set to false in an import-only module.
> > > 
> > > IMO this interpretation holds for typedef modules like iana-crypt-hash.
> > > We list that as implemented (because it is) and the features that are
> > > supported are set.
> > If a module consists only of typedefs, there is no problem.
> > Conformance "import" or "import-only" modules exist in YL b/c modules
> > may have a mix of typedefs and data nodes etc.
> > 
> > So in the case that Lada brought up, a server would have to list the
> > module as implemented with a certain set of features; and then also
> > deviate all nodes/rpc/notifc etc as 'not-implemented'.
> > 
> > 
> > /martin
> > 
> > > Andy
> > > 
> > > On Wed, Jan 30, 2019 at 11:03 AM Martin Bjorklund <mbj@tail-f.com> wrote:
> > > 
> > > > Hi,
> > > > 
> > > > Ladislav Lhotka <lhotka@nic.cz> wrote:
> > > > > Hi,
> > > > > 
> > > > > unlike RFC 7895, 7895bis doesn't provide the "feature" leaf list for
> > > > > import-only modules. But is it really so that features have no use in
> > > > > such modules?
> > > > > 
> > > > > For example, an enum can depend on a feature, and if it is inside a
> > > > > typedef, it can also be in an import-only module. What if that feature
> > > > > is defined in the same module?
> > > > I think you're right, and that this is an unfortunate omission.
> > > > 
> > > > The fix is simple though; we would have to add the leaf-list features
> > > > to import-only.  Probably refactor the "feature" leaf-list into a
> > > > grouping so it works like the grouping location-leaf-list:
> > > > 
> > > >    grouping feature-leaf-list {
> > > >      leaf-list feature {
> > > >        type yang:yang-identifier;
> > > >        description
> > > >          "List of all YANG feature names from this module that are
> > > >           supported by the server, regardless whether they are defined
> > > >           in the module or any included submodule.";
> > > >      }
> > > >    }
> > > > 
> > > > And then "uses feature-leaf-list":
> > > > 
> > > > OLD:
> > > > 
> > > >    grouping module-implementation-parameters {
> > > >      description
> > > >        "Parameters for describing the implementation of a module.";
> > > > 
> > > >      leaf-list feature {
> > > >        type yang:yang-identifier;
> > > >        description
> > > >          "List of all YANG feature names from this module that are
> > > >           supported by the server, regardless whether they are defined
> > > >           in the module or any included submodule.";
> > > >      }
> > > > 
> > > > NEW:
> > > > 
> > > >    grouping module-implementation-parameters {
> > > >      description
> > > >        "Parameters for describing the implementation of a module.";
> > > > 
> > > >      uses feature-leaf-list;
> > > > 
> > > > 
> > > > And in the list "import-only":
> > > > 
> > > > OLD:
> > > > 
> > > >        uses location-leaf-list;
> > > > 
> > > >        uses feature-leaf-list;
> > > > 
> > > > 
> > > > 
> > > > /martin
> > > > 
> > > > _______________________________________________
> > > > 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
> > .
> > 
> 
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
-- 
Ladislav Lhotka
Head, CZ.NIC Labs
PGP Key ID: 0xB8F92B08A9F76C67