Re: [yang-doctors] question regarding conditional/optional statements

Andy Bierman <andy@yumaworks.com> Thu, 17 August 2017 17:21 UTC

Return-Path: <andy@yumaworks.com>
X-Original-To: yang-doctors@ietfa.amsl.com
Delivered-To: yang-doctors@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6A2F91323AE for <yang-doctors@ietfa.amsl.com>; Thu, 17 Aug 2017 10:21:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=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=yumaworks-com.20150623.gappssmtp.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 3d6m35aMNmrS for <yang-doctors@ietfa.amsl.com>; Thu, 17 Aug 2017 10:21:16 -0700 (PDT)
Received: from mail-wr0-x229.google.com (mail-wr0-x229.google.com [IPv6:2a00:1450:400c:c0c::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 13517120727 for <yang-doctors@ietf.org>; Thu, 17 Aug 2017 10:21:16 -0700 (PDT)
Received: by mail-wr0-x229.google.com with SMTP id f8so5218473wrf.3 for <yang-doctors@ietf.org>; Thu, 17 Aug 2017 10:21:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=rwhMNg06HiyQv0LyFAICInomAnVc3fIuugWrN4c48/c=; b=UV2tzB1Zb1e+YrNiLfTfAsT1vtAzlrvsimS9AvtZLx5JqAXKkFbWYDfDGKg1LvMLUC t0rHbUvsG1eWKAnlPfuQazqLYCwcDie+LVIEVxbq2aaKF+rjBawIZbrhaj7rMwTOfgZd FpdRMWbilKDV1IVBQM1GE8I251sbV/hMAbE1zAsM0Kr3d1lqNzIiphc7QCPGonkbtS8C 2vCSYg6RC36Iw0jDfG7Wnn5eum4TNEZhHnH0KoYKyIDyJwKodwrOpBMO3+siIEDR4ZP5 G5aqR+peLai0zKrtkR5Pm7Ho85lyrV+buNKqyHTYW3cL8/5qWWtMOhwqpZsFvuwp8v9o JzPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=rwhMNg06HiyQv0LyFAICInomAnVc3fIuugWrN4c48/c=; b=ZZ122tbhna1OBRvbga/BtFw2En4dTp+qVin2bS6qTFbn0Quz7xmPeF1Fq+x12RNMsQ q2HvH6MBov7tu8GF3G+IzHiiX6pKQfAhKPgIli2Qth5Gq9MCXBkiYykuVzcnmBFgWAKZ l7+IQk/T4ThmExgY9+YYs2YqyntBo32gg1ZjLejubyf4FhbgQdgdKRdOKey2x8m4eFTR msAnxWBtx1r7cCXI+7tIBPCAtrTlnOxG71i5fXYxL3pzWyi3dX8eo+MEq17rWd+KlPeV rID96js6Yp+rViAtHqUBC5GFLcooAmbr345RVCwGibF45gEIUzJDLxB3v7x5nRrqlw84 7IZg==
X-Gm-Message-State: AHYfb5gWUG5T1TH5qoZSoA8YAgPBFgRLlPrqp/IrHX5WB3/SrSY4O/7m zoMnaXqauo02S0rnHPMZNLbKPk4lhmB9
X-Received: by 10.223.145.162 with SMTP id 31mr4210918wri.171.1502990474575; Thu, 17 Aug 2017 10:21:14 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.223.164.129 with HTTP; Thu, 17 Aug 2017 10:21:13 -0700 (PDT)
In-Reply-To: <DM2PR0501MB15021350F3E533671AFEA5CDCF830@DM2PR0501MB1502.namprd05.prod.outlook.com>
References: <BN1PR0201MB0833B05FB5307BDEF2E8E3F5C3820@BN1PR0201MB0833.namprd02.prod.outlook.com> <20170817050647.apfeuvfhfw23ws6n@elstar.local> <BCE95ECB-360D-46E0-B062-371931C0F46A@tail-f.com> <20170817083739.u4vfbtkm34vf5utw@elstar.local> <6991455A-91A6-42A6-86A6-F19A95BCD133@tail-f.com> <20170817120451.syz54lblctjitbm7@elstar.local> <3EA7384C-2D5D-4C00-8479-75277389DE5B@tail-f.com> <CABCOCHR9ooj7VQZhqAzJkAR=9vn4C0okTDKQJ842p-Qa_2YZDg@mail.gmail.com> <36E052B8-9028-4EE6-A393-F68EA3EF926B@tail-f.com> <E180B2C6-3E5F-43A9-9A20-E7D056D2E23D@cisco.com> <CABCOCHTVM-XCSsUsCKPnvzYNWj8+OWD5LJOhOSGfHx2k2XEHzw@mail.gmail.com> <DM2PR0501MB15021350F3E533671AFEA5CDCF830@DM2PR0501MB1502.namprd05.prod.outlook.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Thu, 17 Aug 2017 10:21:13 -0700
Message-ID: <CABCOCHRr8YokU+rx9F6jvQ=6GOZp0K9J-a+TXY3RHQUTq5M=4A@mail.gmail.com>
To: Norm Strahle <nstrahle@juniper.net>
Cc: "Giles Heron (giheron)" <giheron@cisco.com>, Jan Lindblad <janl@tail-f.com>, "yang-doctors@ietf.org" <yang-doctors@ietf.org>, Ing-Wher Chen <Ing-Wher_Chen@jabil.com>, "Aseem Choudhary (asechoud)" <asechoud@cisco.com>
Content-Type: multipart/alternative; boundary="94eb2c0df14056a6900556f63d3c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-doctors/nvA0K-9m-4g38Jb--HGjCxootxE>
Subject: Re: [yang-doctors] question regarding conditional/optional statements
X-BeenThere: yang-doctors@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Email list of the yang-doctors directorate <yang-doctors.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/yang-doctors>, <mailto:yang-doctors-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/yang-doctors/>
List-Post: <mailto:yang-doctors@ietf.org>
List-Help: <mailto:yang-doctors-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/yang-doctors>, <mailto:yang-doctors-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 17 Aug 2017 17:21:19 -0000

Hi,

I guess it depends on what kind of functionality is being provided to the
client.
In this case it looks like there is no expectation of consistency or
requirement
for specific functionality. Features and deviations are both probably
overkill.

SMIv2 has the concept of GROUP and MANDATORY-GROUP.
In some ways SMIv2 conformance is much better than YANG,
except SNMP never got the capability discovery right.

Usually the groups have descriptions to say when a server should implement
the group.
If the criteria is "who knows, just implement it if you want" then the
module should make
that clear.


Andy


On Thu, Aug 17, 2017 at 9:15 AM, Norm Strahle <nstrahle@juniper.net> wrote:

> In our particular case, queue counters, there are several counters and
> rates associated with a given queue (packets, bytes, transmitted, dropped,
> queued, tail drop, current depth, peak, average, max, transmit rate, drop
> rate, etc.)  It is easy to see where most manufactures support most, but
> likely not all.  So, likely all vendors would need to indicate which it is
> not supporting.  To me it would seem that a feature at least gives the
> client developer the hint up-front that this item is not required to be
> supported and to handle the case.  There is no clue from a model that a
> deviation is likely, so no way to anticipate. So, wouldn’t a feature be
> better in this case than a deviation?
>
>
>
> *From:* Andy Bierman [mailto:andy@yumaworks.com]
> *Sent:* Thursday, August 17, 2017 12:06 PM
> *To:* Giles Heron (giheron) <giheron@cisco.com>
> *Cc:* Jan Lindblad <janl@tail-f.com>; yang-doctors@ietf.org; Ing-Wher
> Chen <Ing-Wher_Chen@jabil.com>; Norm Strahle <nstrahle@juniper.net>;
> Aseem Choudhary (asechoud) <asechoud@cisco.com>
> *Subject:* Re: [yang-doctors] question regarding conditional/optional
> statements
>
>
>
>
>
>
>
> On Thu, Aug 17, 2017 at 8:56 AM, Giles Heron (giheron) <giheron@cisco.com>
> wrote:
>
> On 17 Aug 2017, at 16:49, Jan Lindblad <janl@tail-f.com> wrote:
>
>
>
> Have you ever seen a smart client that can cope with randomly deviated
> YANG models, unless a programmer has intervened and created special code
> for handing that particular deviating device type? I have not.
>
>
>
>
>
> Doesn't your client build a session-specific schema tree based on the
> advertised modules?
>
>
>
> Deviations are clearly better than just not returning anything.
>
> They tell the client that the missing counters are not implemented as
> opposed
>
> to possibly a temporary, recoverable condition.
>
>
>
> Deviations are known at session startup time but they can also be known in
> advance.
>
> Vendors use naming conventions to specify the platform-specific deviations.
>
> Tools like yangcatalog.org can make this process automated and de-facto
> standardized.
>
>
>
> NSO itself will be just fine, but I'm worried about the people building
> applications on top of NSO, e.g. an L3VPN application. Let's say a
> deviation comes up at session start, what's the application supposed to do
> then? I can't think of much that doesn't involve a programmer.
>
>
>
> Declared deviations are clearly better than deviating and not telling. But
> they are only really worth anything if they are known to the application
> programmer before he finishes his code. Yangcatalog.org
> <http://yangcatalog.org/> helps, but not all modules will be there and
> there's also a time dimension. Deviations found at session start are
> probably not worth anything other than as triggers for that special code
> someone wrote to handle the situation.
>
>
>
> I feel deviations should not be recommended lightly. In the particular
> case that started this discussion, they'd bring little value.
>
>
>
> right - isn’t deviation supposed to be for the case where you don’t
> support something that implementations are generally expected to support?
>
>
>
> for what Helen wants features seem to be a better fit - at least to me.
>
>
>
>
>
> Features are intended to convey that the functionality is optional.
>
> Presumably the data model is attempting to deliver some functionality to
> the client developer.
>
> Features correspond well to optional protocol capabilities.
>
> Generally a single counter is not considered to be high-level
> functionality.
>
>
>
> Ask the question "Why is counter FOO missing?"
>
>
>
> A1) because device XYZ does not support it
>
>
>
> A2) because it counts the FIZZBANG protocol, and that protocol is not used
> on every device
>
>
>
>
>
> If A1 then use deviations. If A2 then use features.
>
>
>
>
>
>
>
> Giles
>
>
>
>
>
>
>
> Andy
>
>
>