Re: [YANG] errors

Andy Bierman <ietf@andybierman.com> Thu, 24 January 2008 16:41 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 1JI59F-0003tm-TQ; Thu, 24 Jan 2008 11:41:53 -0500
Received: from yang by megatron.ietf.org with local (Exim 4.43) id 1JI59E-0003tS-FR for yang-confirm+ok@megatron.ietf.org; Thu, 24 Jan 2008 11:41:52 -0500
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1JI59E-0003tK-5l for yang@ietf.org; Thu, 24 Jan 2008 11:41:52 -0500
Received: from smtp117.sbc.mail.sp1.yahoo.com ([69.147.64.90]) by ietf-mx.ietf.org with smtp (Exim 4.43) id 1JI59D-0002U9-KY for yang@ietf.org; Thu, 24 Jan 2008 11:41:52 -0500
Received: (qmail 32015 invoked from network); 24 Jan 2008 16:41:50 -0000
Received: from unknown (HELO ?192.168.0.10?) (andybierman@att.net@68.120.83.75 with plain) by smtp117.sbc.mail.sp1.yahoo.com with SMTP; 24 Jan 2008 16:41:50 -0000
X-YMail-OSG: RAB9uRQVM1meAYk.mVhZxZpX51yoaOFUCZgNZhzUqFGjOpGm
X-Yahoo-Newman-Property: ymail-3
Message-ID: <4798BFCD.3000706@andybierman.com>
Date: Thu, 24 Jan 2008 08:41:49 -0800
From: Andy Bierman <ietf@andybierman.com>
User-Agent: Thunderbird 2.0.0.9 (Windows/20071031)
MIME-Version: 1.0
To: Martin Bjorklund <mbj@tail-f.com>
Subject: Re: [YANG] errors
References: <20080124.153853.210376606.mbj@tail-f.com>
In-Reply-To: <20080124.153853.210376606.mbj@tail-f.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 31247fb3be228bb596db9127becad0bc
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

Martin Bjorklund wrote:
> Hi,
> 
> We have been talking about adding two new statements related to
> error generation to YANG.
> 
> The first statement is 'error'.  It is used to define a named error.
> The second statement is 'raise-error'.
>....
> The errors defined for an rpc would be in addition to the standard
> errors defined in rfc4741.
> 

The phrase 'in addition' concerns me.

I think you mean that an error MUST use one of the existing
error-tag values from RFC 4741, but the other fields specified
in error-stmt will be used in an <rpc-error> generated for the
particular error condition.  IMO, this is too flexible.

There is a balance between multi-vendor interoperability
and single-vendor-flexibility that must be carefully considered
when developing a standard.  IMO, it would drastically harm
interoperability if the <rpc-error> mechanism turned into
just another proprietary hack (I mean 'vendor-specific content' ;-)
within NETCONF.

What does it mean for interoperability if vendors override an error defined
in RFC 4741 or the Notifications RFC, with different error-severity,
or error-message?  What if they ignore some/all of the standard errors,
and use their own proprietary set (because it's better of course ;-)

IMO, the structured error return codes in NETCONF represent an important
advancement away from screen-scraping CLI.  It is important that this
is not compromised.  A vendor is not compliant with RFC 4741
unless all the errors are generated exactly as specified in the spec,
regardless of what the YANG draft says.

I think it needs to be clear in the draft that the fields defined
by standard errors cannot be changed, and <rpc-error> behavior
defined in the standard cannot be changed (e.g., send the
acme-lock-denied error *instead* of the standard lock-denied error,
which uses a different error-tag value, or does not include the
<session-id> error-info).



> Grammar:
> 
>     error-stmt = error-keyword sep error-app-tag-str optsep "{"
>       ; error-app-tag-str is an identifier 
>       error-tag-stmt stmtsep
>       [error-message-stmt stmtsep]
>       [error-severity-stmt stmtsep]   ; default is error
>       [description-stmt stmtsep]
>       [reference-stmt stmtsep]
>     "}"
> 
>   raise-error error-app-tag-ref-str stmtsep
> 


What if the DM writer wants to raise an existing standard error?
Does there need to be a standard module for the NETCONF errors,
added as an appendix?

Notably missing from the error-stmt is definition of any error-info data.
An open issue is whether there is some simple mechanism for defining
error-info, other than full-blown data-def-stmt, to define error leafs.
(E.g., lock-denied has the <session-id> of the current lock owner.)
If not, then I would rather leave it out.



> 
> Comments?
> 
> 
> /martin
> 
> 

Andy


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