Re: [yang-doctors] guideline for enum and value?

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> Wed, 14 February 2018 15:59 UTC

Return-Path: <j.schoenwaelder@jacobs-university.de>
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 4D79C129C56 for <yang-doctors@ietfa.amsl.com>; Wed, 14 Feb 2018 07:59:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level:
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, T_RP_MATCHES_RCVD=-0.01] 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 EelqdHAXCJvp for <yang-doctors@ietfa.amsl.com>; Wed, 14 Feb 2018 07:59:54 -0800 (PST)
Received: from atlas5.jacobs-university.de (atlas5.jacobs-university.de [212.201.44.20]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9F6F2129966 for <yang-doctors@ietf.org>; Wed, 14 Feb 2018 07:59:54 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas5.jacobs-university.de (Postfix) with ESMTP id 6652EB76; Wed, 14 Feb 2018 16:59:53 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas5.jacobs-university.de ([10.70.0.217]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10032) with ESMTP id E-DKYJRfYe9u; Wed, 14 Feb 2018 16:59:53 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas5.jacobs-university.de (Postfix) with ESMTPS; Wed, 14 Feb 2018 16:59:53 +0100 (CET)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id 4C30420151; Wed, 14 Feb 2018 16:59:53 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius4.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id NYP2ofeO1k-j; Wed, 14 Feb 2018 16:59:53 +0100 (CET)
Received: from elstar.local (unknown [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id EBE9A20150; Wed, 14 Feb 2018 16:59:52 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id C1E1E4247436; Wed, 14 Feb 2018 16:59:51 +0100 (CET)
Date: Wed, 14 Feb 2018 16:59:51 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Benoit Claise <bclaise@cisco.com>, Martin Bjorklund <mbj@tail-f.com>, einarnn@cisco.com, yang-doctors@ietf.org
Message-ID: <20180214155951.eqaskkjs67bt6zjc@elstar.local>
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Mail-Followup-To: Benoit Claise <bclaise@cisco.com>, Martin Bjorklund <mbj@tail-f.com>, einarnn@cisco.com, yang-doctors@ietf.org
References: <20180125.095921.224499312159563778.mbj@tail-f.com> <20180125091118.tjn5eiv2hzmc7k23@elstar.local> <dfb94426-c408-e215-e23b-539e127050a2@cisco.com> <20180125.120804.68412726225731762.mbj@tail-f.com> <0db2c4d1-ac4d-dcc6-b2b9-c580427a6a84@cisco.com> <20180214154740.l375k2kmodgvzvdx@elstar.local>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Disposition: inline
X-Clacks-Overhead: GNU Terry Pratchett
Content-Transfer-Encoding: 8bit
In-Reply-To: <20180214154740.l375k2kmodgvzvdx@elstar.local>
User-Agent: NeoMutt/20171215
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-doctors/fLYlV5q6KCO6YdY4zE6pg_oNEjo>
Subject: Re: [yang-doctors] guideline for enum and value?
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: Wed, 14 Feb 2018 15:59:56 -0000

On Wed, Feb 14, 2018 at 04:47:40PM +0100, Juergen Schoenwaelder wrote:
  
> > And:
> > 
> >  Do not use explicit 'value' statements, except if:
> >     o the enum corresponds to some standard integer value, or
> >     o you update the set of enums by inserting new enums in the middle of
> > the list
> 
> I am not sure why we would recommend this.
>

More specifically, I do not see why

  type enumeration { enum foo { value 0; }; enum bar { value 1; }; }

is to be avoided in favor of

  type enumeration { enum foo; enum bar; }

given that they mean the same and the first one is explicit and robust
to changes while the second one must be handled with care (only append
enums, never reorder enums). Yes, clueful YANG authors can handle the
later fine as they will understand that if order changes are needed,
you have to move to explicit value assignments. My fear is that not
all YANG authors will be aware of this (but then many of those authors
likely also do not read guidelines).

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>