Re: [YANG] mandatory & default

Ladislav Lhotka <lhotka@cesnet.cz> Mon, 28 January 2008 12:08 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 1JJSml-0007Zu-Or; Mon, 28 Jan 2008 07:08:23 -0500
Received: from yang by megatron.ietf.org with local (Exim 4.43) id 1JJSmk-0007ZC-QZ for yang-confirm+ok@megatron.ietf.org; Mon, 28 Jan 2008 07:08:22 -0500
Received: from [10.90.34.44] (helo=chiedprmail1.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1JJSmk-0007XM-EX for yang@ietf.org; Mon, 28 Jan 2008 07:08:22 -0500
Received: from office2.cesnet.cz ([195.113.144.244]) by chiedprmail1.ietf.org with esmtp (Exim 4.43) id 1JJSmj-0001gY-Q7 for yang@ietf.org; Mon, 28 Jan 2008 07:08:22 -0500
Received: from [172.29.2.201] (asus-gx.lhotka.cesnet.cz [195.113.161.161]) by office2.cesnet.cz (Postfix) with ESMTP id 6535CD80098 for <yang@ietf.org>; Mon, 28 Jan 2008 13:08:21 +0100 (CET)
Subject: Re: [YANG] mandatory & default
From: Ladislav Lhotka <lhotka@cesnet.cz>
To: yang@ietf.org
In-Reply-To: <20080128104102.GA20123@elstar.local>
References: <200801280322.m0S3Mqhi051945@idle.juniper.net> <000a01c86169$eb717200$6801a8c0@oemcomputer> <20080128084636.GA19843@elstar.local> <1201510933.30693.81.camel@missotis> <20080128094703.GA20045@elstar.local> <1201515012.30693.101.camel@missotis> <20080128104102.GA20123@elstar.local>
Content-Type: text/plain; charset=utf-8
Organization: CESNET
Date: Mon, 28 Jan 2008 13:08:21 +0100
Message-Id: <1201522101.30693.140.camel@missotis>
Mime-Version: 1.0
X-Mailer: Evolution 2.12.1
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 52f7a77164458f8c7b36b66787c853da
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

Juergen Schoenwaelder píše v Po 28. 01. 2008 v 11:41 +0100:
> On Mon, Jan 28, 2008 at 11:10:12AM +0100, Ladislav Lhotka wrote:
> > 
> > Juergen Schoenwaelder p????e v Po 28. 01. 2008 v 10:47 +0100:
> > 
> > > 
> > > My point is you need to be able to (a) get all configuration settings
> > > of a box and (b) the subset that was explicitely configured. It is
> > > then the operator's choice what to use where and when. Trying to rule
> > > out (a) over (b) or (b) over (a) is wasting time and bandwidth.
> > 
> > I don't intend to rule anything out, I just don't wan't to have (b) as a
> > mandatory function in all devices. It should be an optional capability.
> > On the other hand, (a) is by all means essential.
> 
> Our problem is that others believe (b) is by all means essential and
> (a) should be an optional capability. This is our dilemma.
> 
> Why is it not OK to have (a) and (b)? Why do you not want to have (b)
> as a mandatory function in all devices? Do you think it is too costly
> to maintain this additional bit per explicitely configured knob or are
> there other reasons?

I guess it is probably because two different implementations are around:

1. The device has an internal "database" of operational parameters
(perhaps as registers, variables and structures in its firmware and
software) but its configuration is something else, for example only the
stuff that the user specified. For this implementation it is an extra
burden to retrieve the parameters from the operational structures and
write them to the configuration.

2. The operational values are explicitly represented in a configuration
database and the internal operational values are either taken directly
from it or synchronised with it (e.g., via ioctl for firmware). This
implementation can simply dump the entire database while it is an extra
burden to keep the information about whether a parameter has been
changed or not.

I understand that JUNOS, IOS and some Unix daemons like GateD use 1
while we use 2 in our devices, but it doesn't matter. The question
really is: Is it OK if we allow a device to keep part of the essential
operational parameters for itself? If the answer is NO, then
implementation 1 must be able to do the homework and collect all the
values for the manager. So, for me (a) is a necessity.

On the other hand, approach 2 doesn't hide anything, it only poses
technical difficulties to the manager by sending the entire operational
configuration. However, I claim it is possible to protect the human user
from being overwhelmed by other means outside the device, i.e., (b) is
not a necessity.

Lada

> 
> /js
> 
-- 
Ladislav Lhotka, CESNET
PGP Key ID: E74E8C0C



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