Re: [YANG] mandatory & default

Phil Shafer <phil@juniper.net> Mon, 28 January 2008 06:56 UTC

Return-path: <yang-bounces@ietf.org>
Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1JJNua-0003ME-U5; Mon, 28 Jan 2008 01:56:08 -0500
Received: from yang by megatron.ietf.org with local (Exim 4.43) id 1JJNuZ-0003Ko-5a for yang-confirm+ok@megatron.ietf.org; Mon, 28 Jan 2008 01:56:07 -0500
Received: from [10.90.34.44] (helo=chiedprmail1.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1JJNuY-0003Kd-Pj for yang@ietf.org; Mon, 28 Jan 2008 01:56:06 -0500
Received: from exprod7og107.obsmtp.com ([64.18.2.167]) by chiedprmail1.ietf.org with esmtp (Exim 4.43) id 1JJNuY-0001ta-8C for yang@ietf.org; Mon, 28 Jan 2008 01:56:06 -0500
Received: from source ([66.129.224.36]) by exprod7ob107.postini.com ([64.18.6.12]) with SMTP; Sun, 27 Jan 2008 22:51:07 PST
Received: from magenta.juniper.net ([172.17.27.123]) by emailsmtp56.jnpr.net with Microsoft SMTPSVC(6.0.3790.3959); Sun, 27 Jan 2008 22:50:21 -0800
Received: from idle.juniper.net (idleski.juniper.net [172.25.4.26]) by magenta.juniper.net (8.11.3/8.11.3) with ESMTP id m0S6oKq38587; Sun, 27 Jan 2008 22:50:20 -0800 (PST) (envelope-from phil@idle.juniper.net)
Received: from idle.juniper.net (localhost [127.0.0.1]) by idle.juniper.net (8.13.8/8.13.8) with ESMTP id m0S6o9wi052898; Mon, 28 Jan 2008 06:50:13 GMT (envelope-from phil@idle.juniper.net)
Message-Id: <200801280650.m0S6o9wi052898@idle.juniper.net>
To: "Randy Presuhn" <randy_presuhn@mindspring.com>
Subject: Re: [YANG] mandatory & default
In-reply-to: <000a01c86169$eb717200$6801a8c0@oemcomputer>
Date: Mon, 28 Jan 2008 01:50:09 -0500
From: Phil Shafer <phil@juniper.net>
X-OriginalArrivalTime: 28 Jan 2008 06:50:21.0324 (UTC) FILETIME=[0D11E4C0:01C8617A]
X-Spam-Score: -4.0 (----)
X-Scan-Signature: b19722fc8d3865b147c75ae2495625f2
Cc: yang@ietf.org
X-BeenThere: yang@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: YANG modeling Language for NETCONF <yang.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/yang>, <mailto:yang-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www1.ietf.org/pipermail/yang>
List-Post: <mailto:yang@ietf.org>
List-Help: <mailto:yang-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/yang>, <mailto:yang-request@ietf.org?subject=subscribe>
Errors-To: yang-bounces@ietf.org

"Randy Presuhn" writes:
>One of the reasons for archiving configurations
>is so that if a box fails, a replacement can be quickly made
>to function in its place.

Loading the saved file with defaults won't make this
any saner, safer, or stronger.  It increases the fragility,
but incorporating into the saved file tons of stuff about
which you don't care.  It something fails on these values
that you don't care about, you are broken.

>If there is even a remote chance
>that a default value might change between releases or on
>different versions of a hardware platform, that value needs
>to be included in an archive of the configuration.

The chance of a change in defaults (which annoy customers to
no end) is minor compared to the change of adding features (which
customers insist on) and the need to support downgrading (which
customers insist on).

Consider this example from JUNOS-land.  We have a set of foo-options
containers that are used to hold media-specific options under
the [interfaces] statement.  These options are numerous, verbose,
and rarely used.  If I add a new statement in release 9.0 and
start emitting a boring default value for it, I can no longer
load that config in any release predating 9.0.

In avoiding a rare bug (changing defaults), you'll break real
operational usage.

Thanks,
 Phil


_______________________________________________
YANG mailing list
YANG@ietf.org
https://www1.ietf.org/mailman/listinfo/yang