Re: [netmod] Questions about how to assign default values with YANG

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> Wed, 20 January 2021 16:05 UTC

Return-Path: <j.schoenwaelder@jacobs-university.de>
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 D64243A14B2 for <netmod@ietfa.amsl.com>; Wed, 20 Jan 2021 08:05:23 -0800 (PST)
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, SPF_HELO_NONE=0.001, SPF_PASS=-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 rhHN6g_1uBMB for <netmod@ietfa.amsl.com>; Wed, 20 Jan 2021 08:05:21 -0800 (PST)
Received: from atlas5.jacobs-university.de (atlas5.jacobs-university.de [212.201.44.20]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 067C93A14AC for <netmod@ietf.org>; Wed, 20 Jan 2021 08:05:20 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas5.jacobs-university.de (Postfix) with ESMTP id C2E76D70; Wed, 20 Jan 2021 17:05:18 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas5.jacobs-university.de ([10.70.0.198]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10032) with ESMTP id 6VXIsmAPeJT0; Wed, 20 Jan 2021 17:05:18 +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 "DFN-Verein Global Issuing CA" (verified OK)) by atlas5.jacobs-university.de (Postfix) with ESMTPS; Wed, 20 Jan 2021 17:05:18 +0100 (CET)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by hermes.jacobs-university.de (Postfix) with ESMTP id 6A9BD20156; Wed, 20 Jan 2021 17:05:18 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10028) with ESMTP id j2eSeO1tnm5k; Wed, 20 Jan 2021 17:05:18 +0100 (CET)
Received: from localhost (anna.jacobs.jacobs-university.de [10.50.218.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by hermes.jacobs-university.de (Postfix) with ESMTPS id B896020154; Wed, 20 Jan 2021 17:05:17 +0100 (CET)
Date: Wed, 20 Jan 2021 17:05:17 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Italo Busi <Italo.Busi@huawei.com>
Cc: "'netmod@ietf.org'" <netmod@ietf.org>
Message-ID: <20210120160517.hsg5dnpidvrprtso@anna.jacobs.jacobs-university.de>
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Mail-Followup-To: Italo Busi <Italo.Busi@huawei.com>, "'netmod@ietf.org'" <netmod@ietf.org>
References: <a0c43ab5c3c1463a97a1aa594a80ceee@huawei.com> <20210120094737.g5l5pvfzligahrj6@anna.jacobs.jacobs-university.de> <2384a8f549c94ea0ac46d6c772fbca43@huawei.com> <20210120114446.ovih63db7vmv7c7s@anna.jacobs.jacobs-university.de> <0ed5638881af42148720dd7f4843c3e6@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <0ed5638881af42148720dd7f4843c3e6@huawei.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/xTuDLYC8_xwqAaYHvqcJXvj7oso>
Subject: Re: [netmod] Questions about how to assign default values with YANG
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: Wed, 20 Jan 2021 16:05:24 -0000

On Wed, Jan 20, 2021 at 02:41:39PM +0000, Italo Busi wrote:
> 
> What about the case the leaf is not conditional (but still mandatory false since a YANG default statement is defined)?
> 
> May the server still decide not to use/implement this leaf in the operational datastore?
> 
> For example, in appendix C.1 of RFC8342, auto-negotiation is enabled by default.
> What should be the behavior of a system which does not implement auto-negotiation?
> Return the value false or no value (in the operational datastore)?
>

Here are some of the rules I personally like:

 - <operational> is the ground truth about what a system has and does
 - do not implement leafs that do not apply

Hence, interfaces supporting auto-negotiation have either
auto-negotiation/enabled = true or auto-negotiation/enabled = false in
<operational>. And interfaces not supporting auto-negotiation have
nothing to report about auto-negotiation. Yes, I do not want to see
auto-negotiation/enabled = false on a loopback interface.

My historic Ethernet interface from the last century would also not
report auto-negotiation/enabled in <operational>. You may hit
applications that love to have auto-negotiation/enabled available on
all Ethernet interfaces and then you end in a debate where the
application developers tell you that no information in <operational>
may have many reasons (instrumentation not implemented, access control
rules, whatever and by reporting enabled=false you do them a favor)
but the true answer in such a debate is often that modeling things as
a boolean is simplistic since there are often more than exactly two
states (in this case, enabled, disabled, failed, not-available, ...).
So you settle on blaming the model writer. ;-)

/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/>