Error Handling
The server has several APIs and built-in mechanisms for generating error responses for client requests. This is done is a protocol-independent way. The error reporting procedures and data sre protocol-specific, but these are handled automatically by the server.
RPC Error Example
Assuming the “interfaces” container preexist in the datastore. To invoke the callback the following RPC can be sent. This example contains an error so a RESTCONF <errors> block will be sent to the client.
<rpc message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<edit-config>
<target>
<candidate/>
</target>
<config>
<interfaces xmlns="http://yumaworks.com/ns/ietf-interfaces-example">
<interface>
<name>not-supported</name>
</interface>
</interfaces>
</config>
</edit-config>
</rpc>
The server may reply with the following:
<errors xmlns:ncx="http://netconfcentral.org/ns/yuma-ncx"
xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf">
<error>
<error-type>rpc</error-type>
<error-tag>operation-not-supported</error-tag>
<error-app-tag>no-support</error-app-tag>
<error-message xml:lang="en">operation not supported</error-message>
<error-info>
<error-number>273</error-number>
</error-info>
</error>
</errors>
RPC Error Message
NETCONF has several standard error fields that are returned in an <rpc-error> response. These are defined in RFC 6241, section 4.3.
RESTCONF defines its own structure to return for errors, but it has the same child fields as NETCONF. Only the container structure is different. These are defined in RFC 8040.
error-type
Mandatory field set by the server indicating the protocol layer where the error occurred.
One of:
transport
rpc
protocol
application
The 'ncx_layer_t' enumeration defined in ncx/ncxtypes.h
is used for this field.
-
enum ncx_layer_t
Enumeration of NETCONF protocol layers.
Values:
-
enumerator NCX_LAYER_NONE
not set
-
enumerator NCX_LAYER_TRANSPORT
transport layer
-
enumerator NCX_LAYER_RPC
RPC operation layer.
-
enumerator NCX_LAYER_OPERATION
protocol operation layer
-
enumerator NCX_LAYER_CONTENT
application layer
-
enumerator NCX_LAYER_NONE
error-tag
Mandatory enumeration for the type of error that occurred. This field is set by the server depending on the 'status_t' of the error. The values are defined in RFC 6241, Appendix A.
One of:
in-use
invalid-value
too-big
missing-attribute
bad-attribute
unknown-attribute
missing-element
bad-element
unknown-element
unknown-namespace
access-denied
lock-denied
resource-denied
rollback-failed
data-exists
data-missing
operation-not-supported
operation-failed
malformed-message
The 'rpc_err_t' enumeration defined in ncx/rpc_err.h
is used for this field.
-
enum rpc_err_t
enumerations for NETCONF standard errors
Values:
-
enumerator RPC_ERR_NONE
not set
-
enumerator RPC_ERR_IN_USE
in-use
-
enumerator RPC_ERR_INVALID_VALUE
invalid-value
-
enumerator RPC_ERR_TOO_BIG
too-big
-
enumerator RPC_ERR_MISSING_ATTRIBUTE
missing-attribute
-
enumerator RPC_ERR_BAD_ATTRIBUTE
bad-attribute
-
enumerator RPC_ERR_UNKNOWN_ATTRIBUTE
unknown-attribute
-
enumerator RPC_ERR_MISSING_ELEMENT
missing-element
-
enumerator RPC_ERR_BAD_ELEMENT
bad-element
-
enumerator RPC_ERR_UNKNOWN_ELEMENT
unknown-element
-
enumerator RPC_ERR_UNKNOWN_NAMESPACE
unknown-namespace
-
enumerator RPC_ERR_ACCESS_DENIED
access-denied
-
enumerator RPC_ERR_LOCK_DENIED
lock-denied
-
enumerator RPC_ERR_RESOURCE_DENIED
resource-denied
-
enumerator RPC_ERR_ROLLBACK_FAILED
rollback-failed
-
enumerator RPC_ERR_DATA_EXISTS
data-exists
-
enumerator RPC_ERR_DATA_MISSING
data-missing
-
enumerator RPC_ERR_OPERATION_NOT_SUPPORTED
operation-not-supported
-
enumerator RPC_ERR_OPERATION_FAILED
operation-failed
-
enumerator RPC_ERR_PARTIAL_OPERATION
partial-operation, deprecated; not used
-
enumerator RPC_ERR_MALFORMED_MESSAGE
malformed-message
-
enumerator RPC_ERR_NONE
error-severity
Mandatory field set by the server.
The value error
is (almost) always used because no standard
error-tag values are defined with a severity of warning
.
One of:
error
warning
The 'rpc_err_sev_t' enumeration defined in ncx/rpc_err.h
is used for this field.
-
enum rpc_err_sev_t
enumerations for NETCONF standard error severities
The protocol does not actually use RPC warnings and these are not supported or used in the server
Values:
-
enumerator RPC_ERR_SEV_NONE
not set
-
enumerator RPC_ERR_SEV_WARNING
warning
-
enumerator RPC_ERR_SEV_ERROR
error (only used value)
-
enumerator RPC_ERR_SEV_NONE
Note
The warning
enumeration can be used even though it is not standard.
The --with-warnings CLI parameter must be used to enable this feature in the server.
If set then the agt_record_warning API function can be used to
record a warning instead of an error.
error-app-tag
Optional field identifying the application-specific error. There are some standard values defined by YANG that must be used in certain error conditions.
The server will use these values even if error-app-tag values are defined for the specific errors instead:
must-violation
instance-required
missing-choice
missing-instance
Reserved NETCONF error-app-tag Values
Several values are defined in NETCONF standards. These cannot be redefined in the server.
#define RPC_ERR_APPTAG_UNIQUE_FAILED (const xmlChar *)"data-not-unique"
#define RPC_ERR_APPTAG_MAX_ELEMS (const xmlChar *)"too-many-elements"
#define RPC_ERR_APPTAG_MIN_ELEMS (const xmlChar *)"too-few-elements"
#define RPC_ERR_APPTAG_MUST (const xmlChar *)"must-violation"
#define RPC_ERR_APPTAG_INSTANCE_REQ (const xmlChar *)"instance-required"
#define RPC_ERR_APPTAG_CHOICE (const xmlChar *)"missing-choice"
#define RPC_ERR_APPTAG_INSERT (const xmlChar *)"missing-instance"
#define RPC_ERR_APPTAG_RANGE (const xmlChar *)"not-in-range"
#define RPC_ERR_APPTAG_VALUE_SET (const xmlChar *)"not-in-value-set"
#define RPC_ERR_APPTAG_PATTERN (const xmlChar *)"pattern-test-failed"
#define RPC_ERR_APPTAG_DATA_REST (const xmlChar *)"data-restriction-violation"
#define RPC_ERR_APPTAG_DATA_NOT_UNIQUE (const xmlChar *)"data-not-unique"
#define RPC_ERR_APPTAG_NO_MATCHES (const xmlChar *)"no-matches"
#define RPC_ERR_APPTAG_NOT_NODESET (const xmlChar *)"not-a-node-set"
#define RPC_ERR_APPTAG_LOCKED (const xmlChar *)"locked"
#define RPC_ERR_APPTAG_COMMIT (const xmlChar *)"outstanding-confirmed-commit"
Reserved YumaPro error-app-tag Values
Several values are defined by YumaPro conventions and are built into the server implementation. These cannot be redefined in the server.
#define RPC_ERR_APPTAG_GEN_WARNING (const xmlChar *)"general-warning"
#define RPC_ERR_APPTAG_GEN_ERROR (const xmlChar *)"general-error"
#define RPC_ERR_APPTAG_INT_ERROR (const xmlChar *)"internal-error"
#define RPC_ERR_APPTAG_IO_ERROR (const xmlChar *)"io-error"
#define RPC_ERR_APPTAG_MALLOC_ERROR (const xmlChar *)"malloc-error"
#define RPC_ERR_APPTAG_LIMIT_REACHED (const xmlChar *)"limit-reached"
#define RPC_ERR_APPTAG_LIBXML2_ERROR (const xmlChar *)"libxml2-error"
#define RPC_ERR_APPTAG_SQL_ERROR (const xmlChar *)"sql-error"
#define RPC_ERR_APPTAG_SSH_ERROR (const xmlChar *)"ssh-error"
#define RPC_ERR_APPTAG_BEEP_ERROR (const xmlChar *)"beep-error"
#define RPC_ERR_APPTAG_HTML_ERROR (const xmlChar *)"html-error"
#define RPC_ERR_APPTAG_DATA_INCOMPLETE (const xmlChar *)"data-incomplete"
#define RPC_ERR_APPTAG_DATA_INVALID (const xmlChar *)"data-invalid"
#define RPC_ERR_APPTAG_DUPLICATE_ERROR (const xmlChar *)"duplicate-error"
#define RPC_ERR_APPTAG_RESOURCE_IN_USE (const xmlChar *)"resource-in-use"
#define RPC_ERR_APPTAG_NO_ACCESS (const xmlChar *)"no-access"
#define RPC_ERR_APPTAG_RECOVER_FAILED (const xmlChar *)"recover-failed"
#define RPC_ERR_APPTAG_NO_SUPPORT (const xmlChar *)"no-support"
Reserved YANG Push error-app-tag Values
Several values are defined by Subscribed Notifications (RFC 8639) and YANG Push (RFC 8641). These are built into the server implementation and used if the "yang-push" bundle is loaded into the server. These cannot be redefined in the server.
/*** ietf-subscribed-notifications ***/
#define RPC_ERR_APPTAG_NOTIF_DSCP_UNAVAILABLE \
(const xmlChar *)"ietf-subscribed-notifications:dscp-unavailable"
#define RPC_ERR_APPTAG_NOTIF_ENCODING_UNSUPPORTED \
(const xmlChar *)"ietf-subscribed-notifications:encoding-unsupported"
#define RPC_ERR_APPTAG_NOTIF_FILTER_UNAVAILABLE \
(const xmlChar *)"ietf-subscribed-notifications:filter-unavailable"
#define RPC_ERR_APPTAG_NOTIF_FILTER_UNSUPPORTED \
(const xmlChar *)"ietf-subscribed-notifications:filter-unsupported"
#define RPC_ERR_APPTAG_NOTIF_INSUFFICIENT_RESOURCES \
(const xmlChar *)"ietf-subscribed-notifications:insufficient-resources"
#define RPC_ERR_APPTAG_NOTIF_NO_SUCH_SUBSCRIPTION \
(const xmlChar *)"ietf-subscribed-notifications:no-such-subscription"
#define RPC_ERR_APPTAG_NOTIF_REPLAY_UNSUPPORTED \
(const xmlChar *)"ietf-subscribed-notifications:replay-unsupported"
#define RPC_ERR_APPTAG_NOTIF_STREAM_UNAVAILABLE \
(const xmlChar *)"ietf-subscribed-notifications:stream-unavailable"
/*** ietf-yang-push errors ***/
#define RPC_ERR_APPTAG_PUSH_CANT_EXCLUDE \
(const xmlChar *)"ietf-yang-push:cant-exclude"
#define RPC_ERR_APPTAG_PUSH_DATASTORE_NOT_SUBSCRIBABLE \
(const xmlChar *)"ietf-yang-push:datastore-not-subscribable"
#define RPC_ERR_APPTAG_PUSH_NO_SUCH_RESYNC \
(const xmlChar *)"ietf-yang-push:no-such-subscription-resync"
#define RPC_ERR_APPTAG_PUSH_ON_CHANGE_UNSUPPORTED \
(const xmlChar *)"ietf-yang-push:on-change-unsupported"
#define RPC_ERR_APPTAG_PUSH_ON_CHANGE_SYNC_UNSUPPORTED \
(const xmlChar *)"ietf-yang-push:on-change-sync-unsupported"
#define RPC_ERR_APPTAG_PUSH_PERIOD_UNSUPPORTED \
(const xmlChar *)"ietf-yang-push:period-unsupported"
#define RPC_ERR_APPTAG_PUSH_UPDATE_TOO_BIG \
(const xmlChar *)"ietf-yang-push:update-too-big"
#define RPC_ERR_APPTAG_PUSH_SYNC_TOO_BIG \
(const xmlChar *)"ietf-yang-push:sync-too-big"
#define RPC_ERR_APPTAG_PUSH_UNCHANGING_SELECTION \
(const xmlChar *)"ietf-yang-push:unchanging-selection"
error-path
Optional field containing an XPath absolute path expression identifying the node that caused the error. Will be present if the user input can be associated with the error.
This field is generated by the server depending on the parameters passed to the "record error" API functions.
error-message
Optional field containing a short error message. The server always generates an error-message field. A default error message for the Return Status will be returned if no custom message has been configured or provided by a SIL or SIL-SA callback function.
error-info
This optional field is a container that has child data nodes representing additional error information. Some NETCONF errors require that certain error-info child nodes be present, depending on the error-tag value
The following 'error-tag' values have specific error-info elements that are required:
bad-attribute
bad-element
bad-namespace
session-id
The server will generate the required data automatically for these errors.
Error Handling APIs
The server has several APIs for setting error information that will be returned to a client in an <rpc-error> message. Each API allows different amounts of context-specific information included in the error response.

Return Status |
The 'status_t' enumeration returned by the SIL or SIL-SA code will be checked. If not error information has been recorded, then the server will construct an <rpc-error> based on the return status |
SET_ERROR |
The 'SET_ERROR' macro is for internal programming errors only. DO NOT USE! |
agt_record_error |
The 'agt_record_error' API allows the basic error fields to be set |
agt_record_error_errinfo |
The 'agt_record_error_errinfo' API allows all fields to be set, including over-riding the default error-message and error-app-tag fields. |
agt_record_warning |
The 'agt_record_warning' API allows a warning to be sent instead of an error |
Return Status (status_t)
The 'status_t' is used to convey internal or protocol error conditions.
The internal status codes are defined in
ncx/status_enum.h
The value 0 (NO_ERR) is used to indicate success.
Values 1 to 999 are error codes.
Values 1000 to 1999 are warning codes
Values 2000 to 2999 are system return codes
Error strings are defined in
netconf/src/ncx/status.c
in the 'get_error_string' function for each enumeration defined in status_enum.hEach status_t enumeration is mapped to an 'error-tag' value in the file
netconf/src/agt/agt_rpcerr.c
in the function 'get_rpcerr'. This mapping also includes the default 'error-app-tag' valueThe default 'error-message' and 'error-app-tag' values can be overridden using the YANG statements with the same name. These fields can also be specified internally (without adding these YANG statements) using the 'agt_record_error_errinfo' function instead of the 'agt_record_error' function.
SET_ERROR
The 'SET_ERROR' macro is for programming errors, not client errors!
The macro is defined in ncx/status.h
and it is for
flagging internal errors only. This macro must not be used for normal
errors.
Warning
Do not use the SET_ERROR macro to return normal errors. This macro will cause “assert(0)” to be invoked, halting program execution.
This macro is used in some programming constructs to detect certain programming errors.
For example, switch statements for "enum" switches are required to have a "default" clause in YumaPro code. All known enum values must be handled. If a new enum is defined then the SET_ERROR will be hit if the switch has not been updated properly to handle the new value.
switch (cbtyp) {
case AGT_CB_VALIDATE:
/* description-stmt validation here */
break;
case AGT_CB_APPLY:
/* database manipulation done here */
break;
case AGT_CB_COMMIT:
/* device instrumentation done here */
switch (editop) {
case OP_EDITOP_LOAD:
break;
case OP_EDITOP_MERGE:
break;
case OP_EDITOP_REPLACE:
break;
case OP_EDITOP_CREATE:
break;
case OP_EDITOP_DELETE:
break;
default:
res = SET_ERROR(ERR_INTERNAL_VAL);
}
break;
case AGT_CB_ROLLBACK:
/* undo device instrumentation here */
break;
default:
res = SET_ERROR(ERR_INTERNAL_VAL);
}
agt_record_error
NETCONF and RESTCONF use a common data structure to report errors, defined in RFC 6241 Section 4.3.
Server errors are recorded with a set of APIs that allow complete control of the <rpc-error> contents.
The 'agt_record_error' function is one of the main error handling functions used in SIL or SIL-SA code.
If a specific error is not recorded by SIL code when an EDIT1, EDIT2, or EDIT3 callback is invoked. then the server will record a generic error, based on the 'status_t' returned by the SIL code.
-
void agt_record_error(ses_cb_t *scb, xml_msg_hdr_t *msghdr, ncx_layer_t layer, status_t res, const xml_node_t *xmlnode, ncx_node_t parmtyp, const void *error_info, ncx_node_t nodetyp, void *error_path)
Generate an rpc_err_rec_t and save it in the msg.
This is the main SIL or SIL-SA API to return an <rpc-error> to the NETCONF or RESTCONF client.
- Parameters:
scb -- [inout]
session control block
NULL and no stats will be recorded
scb->stats may be updated if scb non-NULLmsghdr -- [inout]
XML msg header with error Q
NULL, no errors will be recorded!
msghdr->errQ has error message added if not NULL and no malloc errorslayer -- netconf layer error occured. Used for <error-type> field.
res -- internal error code. Will get mapped to <error-tag> and <error-app-tag>
xmlnode --
XML node causing error. Will be used for <bad-element> and maybe error <error-path>
NULL if not available
parmtyp -- type of node in 'error_info'
error_info --
error data, specific to 'res'. Used to generate <error-info> sub-elements.
NULL if not available (then nodetyp ignored)
nodetyp -- type of node in 'error_path'
error_path --
internal data node with the error. Used to generate the <error-path> field
NULL if not available or not used
Example:
/* if error: set the res, errorstr, and errorval parms */
if (res != NO_ERR) {
agt_record_error(scb, // session control block
RPC_MHDR(msg), // xml_msg_hdr for the request state
NCX_LAYER_CONTENT, // <error-type> enum
res, // internal status code
NULL, // XML node (parser mode)
NCX_NT_STRING, // node type for error_info parm
errorstr, // node value for <error-info> struct
NCX_NT_VAL, // node type for the error_path parm
errorval); // node for the <error-path> field
}
This API function generates an rpc_err_rec_t and save it in the message.
agt_record_error_errinfo
The agt_record_error_errinfo function can be used to report extended error information.
In order to add any extended error information to the response message, the agt_record_error_errinfo function should be used. This function is the same as the previous one if the errinfo parameter is set to NULL.
-
void agt_record_error_errinfo(ses_cb_t *scb, xml_msg_hdr_t *msghdr, ncx_layer_t layer, status_t res, const xml_node_t *xmlnode, ncx_node_t parmtyp, const void *error_info, ncx_node_t nodetyp, void *error_path, const ncx_errinfo_t *errinfo)
Generate an rpc_err_rec_t and save it in the msg Use provided error fields.
This is the main SIL or SIL-SA API to return an <rpc-error> to the NETCONF or RESTCONF client.
- Parameters:
scb -- [inout]
session control block
NULL and no stats will be recorded
scb->stats may be updated if scb non-NULLmsghdr -- [inout]
XML msg header with error Q
NULL, no errors will be recorded!
msghdr->errQ has error message added if not NULL and no malloc errorslayer -- netconf layer error occured. Used for <error-type> field.
res -- internal error code. Will get mapped to <error-tag> and <error-app-tag>
xmlnode --
XML node causing error. Will be used for <bad-element> and maybe error <error-path>
NULL if not available
parmtyp -- type of node in 'error_info'
error_info --
error data, specific to 'res'. Used to generate <error-info> sub-elements.
NULL if not available (then nodetyp ignored)
nodetyp -- type of node in 'error_path'
error_path --
internal data node with the error. Used to generate the <error-path> field
NULL if not available or not used
errinfo -- error info record to use (may be NULL)
agt_record_warning
The agt_record_warning function can be used to report a warning instead of an error.
An <rpc-error> element will still be used, however, the <error-severity> will
be set to warning
instead of error
-
void agt_record_warning(ses_cb_t *scb, xml_msg_hdr_t *msghdr, ncx_layer_t layer, status_t res, const xml_node_t *xmlnode, ncx_node_t parmtyp, const void *error_parm, ncx_node_t nodetyp, void *error_path, const ncx_errinfo_t *errinfo)
Generate an rpc_err_rec_t and save it in the msg.
Not actually supported in NETCONF protocol because no standard error-tag values are defined for severity=warning
Use the provided error info record for <rpc-error> fields Set the error-severity field to warning instead of error but only if agt_with_warnings is TRUE
- Parameters:
scb -- [inout]
session control block
NULL and no stats will be recorded
scb->stats may be updated if scb non-NULLmsghdr -- [inout]
XML msg header with error Q
NULL, no errors will be recorded! msghdr->errQ has error message added if not NULL and no malloc errors
layer -- netconf layer error occured. Used for <error-type> field.
res -- internal error code. Will get mapped to <error-tag> and <error-app-tag>
xmlnode --
XML node causing error. Will be used for <bad-element> and maybe error <error-path>
NULL if not available
parmtyp -- type of node in 'error_info'
error_parm --
error data, specific to 'res'. Used to generate <error-info> sub-elements.
NULL if not available (then nodetyp ignored)
nodetyp -- type of node in 'error_path'
error_path --
internal data node with the error. Used to generate the <error-path> field
NULL if not available or not used
errinfo -- error info record to use (may be NULL)
SIL Creation of Custom Error Messages And AppInfo
The server maintains data structures for error information including the ncx_errinfo_t struct.
-
struct ncx_errinfo_t
YANG error info statement struct used to override default error handling in the server.
Normally this structure is static and derived from YANG statements.
It can also be provided at runtime by a SIL function using the agt_record_error_errinfo function.
This feature must be used with care because the strings within the structure and the structure itself must persist until the server has sent the error response message.
Only the error_app_tag and error_message fields will be checked. Do not set any other fields in this structure.
-
ncx_errinfo_t *ncx_new_errinfo(void)
Malloc and init a new ncx_errinfo_t.
- Returns:
pointer to malloced ncx_errinfo_t, or NULL if memory error
-
void ncx_free_errinfo(ncx_errinfo_t *err)
Scrub the memory in a ncx_errinfo_t by freeing all the sub-fields, then free the errinfo struct.
- Parameters:
err -- ncx_errinfo_t data structure to free
These strings are malloced (not const!) so the struct has to be setup by the SIL code.
The structure can be cleaned up using Transaction Complete callback after the transaction is complete.
The following example API shows how the ncx_errinfo_t struct can be created.
/* return an ncx_errinfo that must be freed with ncx_free_appinfo */
static ncx_errinfo_t *
make_errinfo (const xmlChar *apptag,
const xmlChar *errmsg)
{
ncx_errinfo_t *errinfo = ncx_new_errinfo();
if (errinfo == NULL) {
return NULL;
}
if (apptag != NULL) {
errinfo->error_app_tag = xml_strdup(apptag);
if (errinfo->error_app_tag == NULL) {
ncx_free_errinfo(errinfo);
return NULL;
}
}
if (errmsg != NULL) {
errinfo->error_message = xml_strdup(errmsg);
if (errinfo->error_message == NULL) {
ncx_free_errinfo(errinfo);
return NULL;
}
}
return errinfo;
}
SIL-SA Creation of Custom Error Messages And AppInfo
The following API provides a way to set a Custom Error message. In order to set a custom Error Message to be sent to the server the following API can be used. This API is only available to EDIT callbacks.
The following YANG module is used in this example:
module error-example {
namespace "http://netconfcentral.org/ns/error-example";
prefix "err";
revision 2021-11-19 {
description
"Example module";
}
container test-silsa-errors { // EDIT2 CB
presence "Presence";
leaf test-error {
type string;
}
}
}
Assume the SIL-SA code reports an error in case the 'test-error' leaf
creation and when the value of a new leaf is force-error
.
In this case there is an API 'sil_sa_set_error_msg' to set up a custom error to be returned to the server.
-
void sil_sa_set_error_msg(rpc_msg_t *msg, const xmlChar *strval)
Set Error Message string in case of error.
- Parameters:
msg -- rpc msg to use to find keys
strval -- string value to use for error message
status_t
u_err_test_silsa_errors_edit (
ses_cb_t *scb,
rpc_msg_t *msg,
agt_cbtyp_t cbtyp,
op_editop_t editop,
val_value_t *newval,
val_value_t *curval)
{
val_value_t *child_val = NULL;
if (newval) {
child_val =
val_find_child(newval,
(const xmlChar *)"error-example",
(const xmlChar *)"test-error");
}
/* Get the rpc message id (txid_str) from the rpc_sil_sa_cb */
const xmlChar *msg_id = sil_sa_get_rpc_msg_id(msg);
/* Get the user_id value from the message header */
const xmlChar *user = sil_sa_get_username();
/* Get the client address (client_addr value from the message header) */
const xmlChar *client_addr = sil_sa_get_client_addr();
if (LOGDEBUG3) {
log_debug3("\nEnter u_err_test_silsa_errors_edit");
log_debug3_append("\nmsg_id:%s", msg_id);
log_debug3_append("\nuser:%s", user);
log_debug3_append("\nclient_addr:%s", client_addr);
}
switch (cbtyp) {
case AGT_CB_VALIDATE:
/* description-stmt validation here */
break;
case AGT_CB_APPLY:
/* database manipulation done here */
break;
case AGT_CB_COMMIT:
/* device instrumentation done here */
switch (editop) {
case OP_EDITOP_LOAD:
break;
case OP_EDITOP_MERGE:
break;
case OP_EDITOP_REPLACE:
break;
case OP_EDITOP_CREATE:
if (child_val &&
!xml_strcmp(VAL_STR(child_val), (const xmlChar *)"force-error")) {
/* TRIGGER ERROR */
res = ERR_NCX_OPERATION_NOT_SUPPORTED;
sil_sa_set_error_msg(msg,
(const xmlChar *)"SOME CUSTOM ERROR MSG");
}
break;
case OP_EDITOP_DELETE:
break;
default:
/* USE SET_ERROR FOR PROGRAMMING BUGS ONLY */
res = SET_ERROR(ERR_INTERNAL_VAL);
}
break;
case AGT_CB_ROLLBACK:
/* undo device instrumentation here */
break;
default:
/* USE SET_ERROR FOR PROGRAMMING BUGS ONLY */
res = SET_ERROR(ERR_INTERNAL_VAL);
}
return res;
} /* u_err_test_silsa_errors_edit */
Adding <error-info> Data to an Error Response
The NETCONF <rpc-error> and RESTCONF <errors> data structures allow error data to be reported to the client. This data can be located in a container called “error-info”. Typically, the server adds an “error-number” leaf to this container, but there are several NETCONF errors that require specific error data to be returned.
Step 1) Define the error-info Data
The new API functions require the following H files, which need to be included into the SIL C file:
#include “agt_util.h”
#include “rpc.h”
The data returned to an <error-info> record should be defined in a real YANG module.
In the example below, an abstract leaf called 'testdata' is defined:
leaf testdata {
ncx:abstract;
type int32;
description
"Example of template for user <error-info> data";
}
Step 2) Create a Data Node and Add it to the Error Response.
The 'rpc_msg_add_error_data' function can be used to add custom <error-info> child nodes to an error response.
Only SIL Callbacks Can Use This Function
-
void rpc_msg_add_error_data(rpc_msg_t *msg, val_value_t *val)
Add error data to the response message.
Used by the server only
Add a val_value_t node that will be used in the error response sent to the client
- Parameters:
msg -- rpc_msg_t to add data into
val -- malloced error data node to add to error record error-info !!! This value node will be consumed and freed later !!!
The data created must be malloced so it can be freed later with the 'val_free_value' function.
The example from sil_error/src/sil-error.c
shows an instance of
testdata being created:
/********************************************************************
* FUNCTION add_user_error_data
*
* Add an example error-info data node to the error that is returned
* to the client
*
* INPUTS:
* msg == RPC message to add user error data
* RETURNS:
* status
********************************************************************/
static status_t
add_user_error_data (rpc_msg_t *msg)
{
/* get the abstract leaf template */
obj_template_t *testdata_obj =
obj_find_template_top(sil_error_mod,
sil_error_mod->name,
(const xmlChar *)"testdata");
if (testdata_obj == NULL) {
return ERR_NCX_DEF_NOT_FOUND;
}
/* a real add_user_data callback would probably get a system
* value instead of a constant; use constant here
*/
const xmlChar *valuebuff = (const xmlChar *)"42";
status_t res = NO_ERR;
val_value_t *testdata_val =
val_make_simval_obj(testdata_obj, valuebuff, &res);
if (testdata_val) {
rpc_msg_add_error_data(msg, testdata_val);
}
return res;
} /* add_user_error_data */
This step is done BEFORE the agt_record_error (or other variant) is called by the SIL code:
if (res != NO_ERR) {
/* add user data to the message before calling agt_record_error */
(void)add_user_error_data(msg);
agt_record_error(
scb,
&msg->mhdr,
NCX_LAYER_CONTENT,
res,
NULL,
(errorval) ? NCX_NT_VAL : NCX_NT_NONE,
errorval,
(errorval) ? NCX_NT_VAL : NCX_NT_NONE,
errorval);
}
Example Error Responses
The “sil-trigger” object is used to show how error-info data is added to the error response.
The error is triggered by setting /sil-phase to apply
and
/sil-trigger to any value. This will force an error to
generated upon the appropriate edit.
NETCONF Error Example
> merge /sil-trigger value=2
This might cause the following <rpc-error> response in NETCONF:
<?xml version="1.0" encoding="UTF-8"?>
<rpc-reply message-id="4" trace-id="4"
xmlns:silerr="http://www.netconfcentral.org/ns/sil-error"
xmlns:ncx="http://netconfcentral.org/ns/yuma-ncx"
xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<rpc-error>
<error-type>application</error-type>
<error-tag>operation-failed</error-tag>
<error-severity>error</error-severity>
<error-app-tag>general-error</error-app-tag>
<error-path>/silerr:sil-trigger</error-path>
<error-message xml:lang="en">operation failed</error-message>
<error-info>
<error-number>274</error-number>
<testdata xmlns="http://www.netconfcentral.org/ns/sil-error">42</testdata>
</error-info>
</rpc-error>
</rpc-reply>
RESTCONF Error Example
The following example shows how RESTCONF will return the user error data:
If any errors occur while attempting to invoke the operation, then an "errors" data structure is returned with the appropriate error status.
XML Example
The client might send the following POST request message to invoke a "reboot" operation:
POST /restconf/operations/example-ops:reboot HTTP/1.1
Accept: application/yang-data+xml
Content-Type: application/yang-data+xml
<input xmlns="https://example.com/ns/example-ops">
<delay>-33</delay>
<message>Going down for system maintenance</message>
<language>en-US</language>
</input>
The server might respond with an "invalid-value" error in default XML format:
HTTP/1.1 400 Bad Request
Date: Mon, 25 Apr 2012 11:10:30 GMT
Server: example-server
Content-Type: application/yang-data+xml
<errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf">
<error>
<error-type>protocol</error-type>
<error-tag>invalid-value</error-tag>
<error-path xmlns:err="https://example.com/ns/example-ops">err:input/err:delay</error-path>
<error-message>Invalid input parameter</error-message>
</error>
</errors>
JSON Example
If the client specifies application/yang-data+json
in the Accept header entry,
the server will respond in JSON format.
A lock-denied error might be sent as follows:
HTTP/1.1 409 Conflict
Date: Mon, 23 Apr 2012 17:11:00 GMT
Server: example-server
Content-Type: application/yang-data+json
{
"ietf-restconf:errors": {
"error": [
{
"error-type": "protocol",
"error-tag": "lock-denied",
"error-message": "Lock failed, lock already held"
}
]
}
}
Status Type APIs
There are some API functions to retrieve some rpc-error mapping information from SIL code:
get_error_string
-
const xmlChar *agt_rpcerr_get_errsev(status_t intres)
Translate the status_t to the error-severity.
- Parameters:
intres -- internal status_t error code
- Returns:
rpc error-severity string for the specified internal error id
-
const xmlChar *rpc_err_get_errtag(rpc_err_t errid)
Get the RPC error-tag for an rpc_err_t enumeration.
- Parameters:
errid -- rpc error enum to convert to a string
- Returns:
string for the specified error-tag enum
-
rpc_err_t agt_rpcerr_get_rpcerr(status_t intres)
Translate the status_t to a rpc_err_t.
- Parameters:
intres -- internal status_t error code
- Returns:
rpc error id for the specified internal error id
-
const xmlChar *agt_rpcerr_get_apptag(status_t intres)
Translate the status_t to the default error-app-tag.
- Parameters:
intres -- internal status_t error code
- Returns:
rpc error-app-tag id for the specified internal error id
Example Code (from agt_util.c):
static void
print_one_error (status_t res)
{
log_info("\n /** %d", res);
log_info_append("\n * - error-message: %s", get_error_string(res));
if (res != NO_ERR) {
log_info_append("\n * - error-severity: %s",
agt_rpcerr_get_errsev(res));
log_info_append("\n * - error-tag: %s",
rpc_err_get_errtag(agt_rpcerr_get_rpcerr(res)));
log_info_append("\n * - error-app-tag: %s",
agt_rpcerr_get_apptag(res));
}
log_info_append("\n */\n");
}
Status Type Mappings
Each enumeration defined in the 'status_t' in 'ncx/status_enum.h' has a defined mapping to the following 'rpc-error fields:
error-message
error-severity
error-tag
error-app-tag
-
enum status_t
global error return code
The error message switch in get_error_string depends on this list.
The agt_rpcerr module depends on this list to map enum to RPC error enumerations
Values:
-
enumerator NO_ERR
0
returned if no error
error-message: ok
-
enumerator ERR_END_OF_FILE
1
error-message: EOF reached
error-severity: error
error-tag: operation-failed
error-app-tag: io-error
-
enumerator ERR_INTERNAL_PTR
2
internal errors start at 2
error-message: NULL pointer
error-severity: error
error-tag: operation-failed
error-app-tag: internal-error
-
enumerator ERR_INTERNAL_MEM
3
error-message: malloc failed
error-severity: error
error-tag: resource-denied
error-app-tag: malloc-error
-
enumerator ERR_INTERNAL_VAL
4
error-message: invalid internal value
error-severity: error
error-tag: operation-failed
error-app-tag: internal-error
-
enumerator ERR_INTERNAL_BUFF
5
error-message: internal buffering failed
error-severity: error
error-tag: operation-failed
error-app-tag: internal-error
-
enumerator ERR_INTERNAL_QDEL
6
error-message: invalid queue deletion
error-severity: error
error-tag: operation-failed
error-app-tag: internal-error
-
enumerator ERR_INTERNAL_INIT_SEQ
7
error-message: wrong init sequence
error-severity: error
error-tag: operation-failed
error-app-tag: internal-error
-
enumerator ERR_QNODE_NOT_HDR
8
error-message: queue node not header
error-severity: error
error-tag: operation-failed
error-app-tag: internal-error
-
enumerator ERR_QNODE_NOT_DATA
9
error-message: queue node not data
error-severity: error
error-tag: operation-failed
error-app-tag: internal-error
-
enumerator ERR_BAD_QLINK
10
error-message: invalid queue header
error-severity: error
error-tag: operation-failed
error-app-tag: internal-error
-
enumerator ERR_Q_ALREADY
11
error-message: entry already queued
error-severity: error
error-tag: operation-failed
error-app-tag: internal-error
-
enumerator ERR_TOO_MANY_ENTRIES
12
error-message: too many entries
error-severity: error
error-tag: resource-denied
error-app-tag: limit-reached
-
enumerator ERR_XML2_FAILED
13
error-message: libxml2 operation failed
error-severity: error
error-tag: operation-failed
error-app-tag: libxml2-error
-
enumerator ERR_RWLOCK_ERR
14
error-message: internal read-write lock error
error-severity: error
error-tag: operation-failed
error-app-tag: internal-error
-
enumerator ERR_MUTEX_ERR
15
error-message: internal mutex error
error-severity: error
error-tag: operation-failed
error-app-tag: internal-error
-
enumerator ERR_HEAPCHK_ERR
16
error-message: internal heap check error
error-severity: error
error-tag: operation-failed
error-app-tag: internal-error
-
enumerator ERR_SPIN_LOCK_ERR
17
error-message: internal spin lock failed
error-severity: error
error-tag: operation-failed
error-app-tag: internal-error
-
enumerator ERR_GENERAL_ERR
18
used by the C++ API
error-message: unspecified general error
error-severity: error
error-tag: operation-failed
error-app-tag: general-error
-
enumerator ERR_LAST_INT_ERR
19 — not really used
-
enumerator ERR_FIL_OPEN
100
system errors start at 100
error-message: cannot open file
error-severity: error
error-tag: operation-failed
error-app-tag: io-error
-
enumerator ERR_FIL_READ
101
error-message: cannot read file
error-severity: error
error-tag: operation-failed
error-app-tag: io-error
-
enumerator ERR_FIL_CLOSE
102
error-message: cannot close file
error-severity: error
error-tag: operation-failed
error-app-tag: io-error
-
enumerator ERR_FIL_WRITE
103
error-message: cannot write file
error-severity: error
error-tag: operation-failed
error-app-tag: io-error
-
enumerator ERR_FIL_CHDIR
104
error-message: cannot change directory
error-severity: error
error-tag: operation-failed
error-app-tag: io-error
-
enumerator ERR_FIL_STAT
105
error-message: cannot stat file
error-severity: error
error-tag: operation-failed
error-app-tag: io-error
-
enumerator ERR_BUFF_OVFL
106
error-message: buffer overflow error
error-severity: error
error-tag: resource-denied
error-app-tag: limit-reached
-
enumerator ERR_FIL_DELETE
107
error-message: cannot delete file
error-severity: error
error-tag: operation-failed
error-app-tag: io-error
-
enumerator ERR_FIL_SETPOS
108
error-message: cannot access file
error-severity: error
error-tag: operation-failed
error-app-tag: io-error
-
enumerator ERR_DB_CONNECT_FAILED
109
error-message: db connect failed
error-severity: error
error-tag: operation-failed
error-app-tag: sql-error
-
enumerator ERR_DB_ENTRY_EXISTS
110
error-message: db entry exists
error-severity: error
error-tag: operation-failed
error-app-tag: sql-error
-
enumerator ERR_DB_NOT_FOUND
111
error-message: db not found
error-severity: error
error-tag: operation-failed
error-app-tag: sql-error
-
enumerator ERR_DB_QUERY_FAILED
112
error-message: db query failed
error-severity: error
error-tag: operation-failed
error-app-tag: sql-error
-
enumerator ERR_DB_DELETE_FAILED
113
error-message: db delete failed
error-severity: error
error-tag: operation-failed
error-app-tag: sql-error
-
enumerator ERR_DB_WRONG_CKSUM
114
error-message: wrong checksum
error-severity: error
error-tag: operation-failed
error-app-tag: sql-error
-
enumerator ERR_DB_WRONG_TAGTYPE
115
error-message: wrong tag type
error-severity: error
error-tag: operation-failed
error-app-tag: sql-error
-
enumerator ERR_DB_READ_FAILED
116
error-message: db read failed
error-severity: error
error-tag: operation-failed
error-app-tag: sql-error
-
enumerator ERR_DB_WRITE_FAILED
117
error-message: db write failed
error-severity: error
error-tag: operation-failed
error-app-tag: sql-error
-
enumerator ERR_DB_INIT_FAILED
118
error-message: db init failed
error-severity: error
error-tag: operation-failed
error-app-tag: sql-error
-
enumerator ERR_TR_BEEP_INIT
119
error-message: beep init failed
error-severity: error
error-tag: operation-failed
error-app-tag: beep-error
-
enumerator ERR_TR_BEEP_NC_INIT
120
error-message: beep init nc failed
error-severity: error
error-tag: operation-failed
error-app-tag: beep-error
-
enumerator ERR_XML_READER_INTERNAL
121
error-message: xml reader internal
error-severity: error
error-tag: operation-failed
error-app-tag: libxml2-error
-
enumerator ERR_OPEN_DIR_FAILED
122
error-message: open directory failed
error-severity: error
error-tag: operation-failed
error-app-tag: io-error
-
enumerator ERR_READ_DIR_FAILED
123
error-message: read directory failed
error-severity: error
error-tag: operation-failed
error-app-tag: io-error
-
enumerator ERR_LAST_SYS_ERR
124 — not really used
-
enumerator ERR_NO_CFGFILE
200
user errors start at 200
error-message: no config file
error-severity: error
error-tag: operation-failed
error-app-tag: data-incomplete
-
enumerator ERR_NO_SRCFILE
201
error-message: no source file
error-severity: error
error-tag: operation-failed
error-app-tag: data-incomplete
-
enumerator ERR_PARSPOST_RD_INPUT
202
error-message: POST read input
error-severity: error
error-tag: operation-failed
error-app-tag: io-error
-
enumerator ERR_FIL_BAD_DRIVE
203
error-message: bad drive
error-severity: error
error-tag: operation-failed
error-app-tag: data-invalid
-
enumerator ERR_FIL_BAD_PATH
204
error-message: bad path
error-severity: error
error-tag: operation-failed
error-app-tag: data-invalid
-
enumerator ERR_FIL_BAD_FILENAME
205
error-message: bad filename
error-severity: error
error-tag: operation-failed
error-app-tag: data-invalid
-
enumerator ERR_DUP_VALPAIR
206
error-message: duplicate value pair
error-severity: error
error-tag: operation-failed
error-app-tag: html-error
-
enumerator ERR_PAGE_NOT_HANDLED
207
error-message: page not handled
error-severity: error
error-tag: operation-failed
error-app-tag: html-error
-
enumerator ERR_PAGE_ACCESS_DENIED
208
error-message: page access denied
error-severity: error
error-tag: operation-failed
error-app-tag: html-error
-
enumerator ERR_MISSING_FORM_PARAMS
209
error-message: missing form params
error-severity: error
error-tag: operation-failed
error-app-tag: html-error
-
enumerator ERR_FORM_STATE
210
error-message: invalid form state
error-severity: error
error-tag: operation-failed
error-app-tag: html-error
-
enumerator ERR_DUP_NS
211
error-message: duplicate namespace
error-severity: error
error-tag: operation-failed
error-app-tag: html-error
-
enumerator ERR_XML_READER_START_FAILED
212
error-message: xml reader start failed
error-severity: error
error-tag: operation-failed
error-app-tag: libxml2-error
-
enumerator ERR_XML_READER_READ
213
error-message: xml reader read failed
error-severity: error
error-tag: operation-failed
error-app-tag: libxml2-error
-
enumerator ERR_XML_READER_NODETYP
214
error-message: wrong XML node type
error-severity: error
error-tag: unknown-element
error-app-tag: libxml2-error
-
enumerator ERR_XML_READER_NULLNAME
215
error-message: xml reader null name
error-severity: error
error-tag: bad-element
error-app-tag: libxml2-error
-
enumerator ERR_XML_READER_NULLVAL
216
error-message: xml reader null value
error-severity: error
error-tag: bad-element
error-app-tag: libxml2-error
-
enumerator ERR_XML_READER_WRONGNAME
217
error-message: xml reader wrong name
error-severity: error
error-tag: unknown-element
error-app-tag: libxml2-error
-
enumerator ERR_XML_READER_WRONGVAL
218
error-message: xml reader wrong value
error-severity: error
error-tag: bad-element
error-app-tag: libxml2-error
-
enumerator ERR_XML_READER_WRONGEL
219
error-message: xml reader wrong element
error-severity: error
error-tag: unknown-element
error-app-tag: libxml2-error
-
enumerator ERR_XML_READER_EXTRANODES
220
error-message: xml reader extra nodes
error-severity: error
error-tag: unknown-element
error-app-tag: libxml2-error
-
enumerator ERR_XML_READER_EOF
221
get this error in XML not well-formed
error-message: xml reader EOF
error-severity: error
error-tag: operation-failed
error-app-tag: libxml2-error
-
enumerator ERR_NCX_WRONG_LEN
222
error-message: wrong length
error-severity: error
error-tag: bad-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_ENTRY_EXISTS
223
error-message: entry exists
error-severity: error
error-tag: data-exists
error-app-tag: duplicate-error
-
enumerator ERR_NCX_DUP_ENTRY
224
error-message: duplicate entry
error-severity: error
error-tag: data-exists
error-app-tag: duplicate-error
-
enumerator ERR_NCX_NOT_FOUND
225
error-message: not found
error-severity: error
error-tag: operation-failed
error-app-tag: data-incomplete
-
enumerator ERR_NCX_MISSING_FILE
226
error-message: missing file
error-severity: error
error-tag: operation-failed
error-app-tag: data-incomplete
-
enumerator ERR_NCX_UNKNOWN_PARM
227
error-message: unknown parameter
error-severity: error
error-tag: bad-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_INVALID_NAME
228
error-message: invalid name
error-severity: error
error-tag: bad-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_UNKNOWN_NS
229
error-message: unknown namespace
error-severity: error
error-tag: unknown-namespace
error-app-tag: data-invalid
-
enumerator ERR_NCX_WRONG_NS
230
error-message: wrong namespace
error-severity: error
error-tag: unknown-namespace
error-app-tag: data-invalid
-
enumerator ERR_NCX_WRONG_TYPE
231
error-message: wrong data type
error-severity: error
error-tag: bad-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_WRONG_VAL
232
error-message: wrong value
error-severity: error
error-tag: bad-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_MISSING_PARM
233
error-message: missing parameter
error-severity: error
error-tag: missing-element
error-app-tag: data-incomplete
-
enumerator ERR_NCX_EXTRA_PARM
234
error-message: extra parameter
error-severity: error
error-tag: unknown-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_EMPTY_VAL
235
error-message: empty value
error-severity: error
error-tag: bad-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_MOD_NOT_FOUND
236
error-message: module not found
error-severity: error
error-tag: operation-failed
error-app-tag: data-incomplete
-
enumerator ERR_NCX_LEN_EXCEEDED
237
error-message: max length exceeded
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_INVALID_TOKEN
238
error-message: invalid token
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_UNENDED_QSTRING
239
error-message: unended quoted string
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_READ_FAILED
240
error-message: read failed
error-severity: error
error-tag: operation-failed
error-app-tag: io-error
-
enumerator ERR_NCX_INVALID_NUM
241
error-message: invalid number
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_INVALID_HEXNUM
242
error-message: invalid hex number
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_INVALID_REALNUM
243
error-message: invalid real number
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_EOF
244
error-message: EOF reached
error-severity: error
error-tag: data-missing
error-app-tag: io-error
-
enumerator ERR_NCX_WRONG_TKTYPE
245
error-message: wrong token type
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_WRONG_TKVAL
246
error-message: wrong token value
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_BUFF_SHORT
247
error-message: buffer overflow
error-severity: error
error-tag: operation-failed
error-app-tag: data-incomplete
-
enumerator ERR_NCX_INVALID_RANGE
248
error-message: invalid range
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_OVERLAP_RANGE
249
error-message: overlapping range
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_DEF_NOT_FOUND
250
error-message: definition not found
error-severity: error
error-tag: unknown-element
error-app-tag: data-incomplete
-
enumerator ERR_NCX_DEFSEG_NOT_FOUND
251
error-message: definition segment not found
error-severity: error
error-tag: unknown-element
error-app-tag: data-incomplete
-
enumerator ERR_NCX_TYPE_NOT_INDEX
252
error-message: type not allowed in index
error-severity: error
error-tag: bad-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_INDEX_TYPE_NOT_FOUND
253
error-message: index type not found
error-severity: error
error-tag: invalid-value
error-app-tag: data-incomplete
-
enumerator ERR_NCX_TYPE_NOT_MDATA
254
error-message: type not mdata
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_MDATA_NOT_ALLOWED
255
error-message: meta-data not allowed
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_TOP_NOT_FOUND
256
error-message: top not found
error-severity: error
error-tag: unknown-element
error-app-tag: data-incomplete
-
enumerator ERR_NCX_IN_USE
257
match netconf errors (257 - 275)
error-message: resource in use
error-severity: error
error-tag: in-use
error-app-tag: resource-in-use
-
enumerator ERR_NCX_INVALID_VALUE
258
error-message: invalid value
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_TOO_BIG
259
error-message: too big
error-severity: error
error-tag: too-big
error-app-tag: limit-reached
-
enumerator ERR_NCX_MISSING_ATTRIBUTE
260
error-message: missing attribute
error-severity: error
error-tag: missing-attribute
error-app-tag: data-incomplete
-
enumerator ERR_NCX_BAD_ATTRIBUTE
261
error-message: bad attribute
error-severity: error
error-tag: bad-attribute
error-app-tag: data-invalid
-
enumerator ERR_NCX_UNKNOWN_ATTRIBUTE
262
error-message: unknown or unexpected attribute
error-severity: error
error-tag: unknown-attribute
error-app-tag: data-invalid
-
enumerator ERR_NCX_MISSING_ELEMENT
263
error-message: missing element
error-severity: error
error-tag: missing-element
error-app-tag: data-incomplete
-
enumerator ERR_NCX_BAD_ELEMENT
264
error-message: bad element
error-severity: error
error-tag: bad-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_UNKNOWN_ELEMENT
265
error-message: unknown or unexpected element
error-severity: error
error-tag: unknown-element
error-app-tag: data-incomplete
-
enumerator ERR_NCX_UNKNOWN_NAMESPACE
266
error-message: unknown namespace
error-severity: error
error-tag: unknown-namespace
error-app-tag: data-invalid
-
enumerator ERR_NCX_ACCESS_DENIED
267
error-message: access denied
error-severity: error
error-tag: access-denied
error-app-tag: no-access
-
enumerator ERR_NCX_LOCK_DENIED
268
error-message: lock denied
error-severity: error
error-tag: lock-denied
error-app-tag: no-access
-
enumerator ERR_NCX_RESOURCE_DENIED
269
error-message: resource denied
error-severity: error
error-tag: resource-denied
error-app-tag: no-access
-
enumerator ERR_NCX_ROLLBACK_FAILED
270
error-message: rollback failed
error-severity: error
error-tag: rollback-failed
error-app-tag: recover-failed
-
enumerator ERR_NCX_DATA_EXISTS
271
error-message: data exists
error-severity: error
error-tag: data-exists
error-app-tag: no-access
-
enumerator ERR_NCX_DATA_MISSING
272
error-message: data missing
error-severity: error
error-tag: data-missing
error-app-tag: data-incomplete
-
enumerator ERR_NCX_OPERATION_NOT_SUPPORTED
273
error-message: operation not supported
error-severity: error
error-tag: operation-not-supported
error-app-tag: no-support
-
enumerator ERR_NCX_OPERATION_FAILED
274
error-message: operation failed
error-severity: error
error-tag: operation-failed
error-app-tag: general-error
-
enumerator ERR_NCX_PARTIAL_OPERATION
275
error-message: partial operation
error-severity: error
error-tag: partial-operation
error-app-tag: general-error
-
enumerator ERR_NCX_WRONG_NAMESPACE
276
netconf error extensions start here
error-message: wrong namespace
error-severity: error
error-tag: unknown-namespace
error-app-tag: data-invalid
-
enumerator ERR_NCX_WRONG_NODEDEPTH
277
error-message: wrong node depth
error-severity: error
error-tag: bad-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_WRONG_OWNER
278
error-message: wrong owner
error-severity: error
error-tag: unknown-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_WRONG_ELEMENT
279
error-message: wrong element
error-severity: error
error-tag: unknown-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_WRONG_ORDER
280
error-message: wrong order
error-severity: error
error-tag: unknown-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_EXTRA_NODE
281
error-message: extra node
error-severity: error
error-tag: unknown-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_WRONG_NODETYP
282
error-message: wrong node type
error-severity: error
error-tag: unknown-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_WRONG_NODETYP_SIM
283
error-message: expecting complex node type
error-severity: error
error-tag: unknown-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_WRONG_NODETYP_CPX
284
error-message: expecting string node type
error-severity: error
error-tag: unknown-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_WRONG_DATATYP
285
error-message: wrong data type
error-severity: error
error-tag: bad-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_WRONG_DATAVAL
286
error-message: wrong data value
error-severity: error
error-tag: bad-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_NUMLEN_TOOBIG
287
error-message: invalid number length
error-severity: error
error-tag: bad-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_NOT_IN_RANGE
288
error-message: value not in range
error-severity: error
error-tag: invalid-value
error-app-tag: not-in-range
-
enumerator ERR_NCX_WRONG_NUMTYP
289
error-message: wrong number type
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_EXTRA_ENUMCH
290
error-message: invalid enum value
error-severity: error
error-tag: bad-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_VAL_NOTINSET
291
error-message: value not in set
error-severity: error
error-tag: invalid-value
error-app-tag: not-in-value-set
-
enumerator ERR_NCX_EXTRA_LISTSTR
292
error-message: extra list string found
error-severity: error
error-tag: bad-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_UNKNOWN_OBJECT
293
error-message: unknown object
error-severity: error
error-tag: unknown-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_EXTRA_PARMINST
294
error-message: extra parameter instance
error-severity: error
error-tag: unknown-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_EXTRA_CHOICE
295
error-message: extra case in choice
error-severity: error
error-tag: unknown-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_MISSING_CHOICE
296
RFC 6020, section 13.6
error-message: missing mandatory choice
error-severity: error
error-tag: data-missing
error-app-tag: missing-choice
-
enumerator ERR_NCX_CFG_STATE
297
error-message: wrong config state
error-severity: error
error-tag: operation-failed
error-app-tag: no-access
-
enumerator ERR_NCX_UNKNOWN_APP
298
error-message: unknown application
error-severity: error
error-tag: unknown-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_UNKNOWN_TYPE
299
error-message: unknown data type
error-severity: error
error-tag: unknown-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_NO_ACCESS_ACL
300
error-message: access control violation
error-severity: error
error-tag: access-denied
error-app-tag: no-access
-
enumerator ERR_NCX_NO_ACCESS_LOCK
301
error-message: config locked
error-severity: error
error-tag: in-use
error-app-tag: no-access
-
enumerator ERR_NCX_NO_ACCESS_STATE
302
error-message: wrong config state
error-severity: error
error-tag: operation-failed
error-app-tag: no-access
-
enumerator ERR_NCX_NO_ACCESS_MAX
303
error-message: max-access exceeded
error-severity: error
error-tag: access-denied
error-app-tag: no-access
-
enumerator ERR_NCX_WRONG_INDEX_TYPE
304
error-message: wrong index type
error-severity: error
error-tag: bad-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_WRONG_INSTANCE_TYPE
305
error-message: wrong instance type
error-severity: error
error-tag: operation-failed
error-app-tag: data-invalid
-
enumerator ERR_NCX_MISSING_INDEX
306
error-message: missing index component
error-severity: error
error-tag: data-missing
error-app-tag: data-incomplete
-
enumerator ERR_NCX_CFG_NOT_FOUND
307
error-message: config not found
error-severity: error
error-tag: invalid-value
error-app-tag: data-incomplete
-
enumerator ERR_NCX_EXTRA_ATTR
308
error-message: extra attribute instance(s) found
error-severity: error
error-tag: unknown-attribute
error-app-tag: data-invalid
-
enumerator ERR_NCX_MISSING_ATTR
309
error-message: required attribute not found
error-severity: error
error-tag: missing-attribute
error-app-tag: data-incomplete
-
enumerator ERR_NCX_MISSING_VAL_INST
310
RFC 6020, section 13.5
error-message: required value instance not found
error-severity: error
error-tag: data-missing
error-app-tag: instance-required
-
enumerator ERR_NCX_EXTRA_VAL_INST
311
error-message: extra value instance(s) found
error-severity: error
error-tag: unknown-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_NOT_WRITABLE
312
error-message: target is read only
error-severity: error
error-tag: access-denied
error-app-tag: no-access
-
enumerator ERR_NCX_INVALID_PATTERN
313
error-message: invalid pattern
error-severity: error
error-tag: bad-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_WRONG_VERSION
314
error-message: wrong version
error-severity: error
error-tag: bad-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_CONNECT_FAILED
315
error-message: connect failed
error-severity: error
error-tag: operation-failed
error-app-tag: io-error
-
enumerator ERR_NCX_UNKNOWN_HOST
316
error-message: unknown host
error-severity: error
error-tag: operation-failed
error-app-tag: data-invalid
-
enumerator ERR_NCX_SESSION_FAILED
317
error-message: session failed
error-severity: error
error-tag: operation-failed
error-app-tag: io-error
-
enumerator ERR_NCX_AUTH_FAILED
318
error-message: authentication failed
error-severity: error
error-tag: access-denied
error-app-tag: no-access
-
enumerator ERR_NCX_UNENDED_COMMENT
319
error-message: end of comment not found
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_INVALID_CONCAT
320
error-message: invalid string concatenation
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_IMP_NOT_FOUND
321
error-message: import not found
error-severity: error
error-tag: operation-failed
error-app-tag: data-incomplete
-
enumerator ERR_NCX_MISSING_TYPE
322
error-message: missing type sub-section
error-severity: error
error-tag: operation-failed
error-app-tag: data-incomplete
-
enumerator ERR_NCX_RESTRICT_NOT_ALLOWED
323
error-message: restriction not allowed for this type
error-severity: error
error-tag: operation-failed
error-app-tag: data-invalid
-
enumerator ERR_NCX_REFINE_NOT_ALLOWED
324
error-message: specified refinement not allowed
error-severity: error
error-tag: operation-failed
error-app-tag: data-invalid
-
enumerator ERR_NCX_DEF_LOOP
325
error-message: definition loop detected
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_DEFCHOICE_NOT_OPTIONAL
326
error-message: default case contains mandatory object(s)
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_IMPORT_LOOP
327
error-message: import loop
error-severity: error
error-tag: operation-failed
error-app-tag: data-invalid
-
enumerator ERR_NCX_INCLUDE_LOOP
328
error-message: include loop
error-severity: error
error-tag: operation-failed
error-app-tag: data-invalid
-
enumerator ERR_NCX_EXP_MODULE
329
error-message: expecting module
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_EXP_SUBMODULE
330
error-message: expecting submodule
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_PREFIX_NOT_FOUND
331
error-message: undefined prefix
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_IMPORT_ERRORS
332
error-message: imported module has errors
error-severity: error
error-tag: operation-failed
error-app-tag: data-invalid
-
enumerator ERR_NCX_PATTERN_FAILED
333
error-message: pattern match failed
error-severity: error
error-tag: invalid-value
error-app-tag: pattern-test-failed
-
enumerator ERR_NCX_INVALID_TYPE_CHANGE
334
error-message: invalid data type change
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_MANDATORY_NOT_ALLOWED
335
error-message: mandatory object not allowed
error-severity: error
error-tag: operation-failed
error-app-tag: data-invalid
-
enumerator ERR_NCX_UNIQUE_TEST_FAILED
336
RFC 6020, section 13.1
error-message: unique-stmt test failed
error-severity: error
error-tag: operation-failed
error-app-tag: data-not-unique
-
enumerator ERR_NCX_MAX_ELEMS_VIOLATION
337
RFC 6020, section 13.2
error-message: max-elements exceeded
error-severity: error
error-tag: operation-failed
error-app-tag: too-many-elements
-
enumerator ERR_NCX_MIN_ELEMS_VIOLATION
338
RFC 6020, section 13.3
error-message: min-elements not reached
error-severity: error
error-tag: operation-failed
error-app-tag: too-few-elements
-
enumerator ERR_NCX_MUST_TEST_FAILED
339
RFC 6020, section 13.4
error-message: must-stmt test failed
error-severity: error
error-tag: operation-failed
error-app-tag: must-violation
-
enumerator ERR_NCX_DATA_REST_VIOLATION
340
obsolete
error-message: data restriction violation
error-severity: error
error-tag: invalid-value
error-app-tag: data-restriction-violation
-
enumerator ERR_NCX_INSERT_MISSING_INSTANCE
341
RFC 6020, section 13.8
error-message: missing instance for insert operation
error-severity: error
error-tag: bad-attribute
error-app-tag: missing-instance
-
enumerator ERR_NCX_NOT_CONFIG
342
error-message: object not config
error-severity: error
error-tag: operation-failed
error-app-tag: no-access
-
enumerator ERR_NCX_INVALID_CONDITIONAL
343
error-message: invalid conditional object
error-severity: error
error-tag: operation-failed
error-app-tag: data-invalid
-
enumerator ERR_NCX_USING_OBSOLETE
344
error-message: using obsolete definition
error-severity: error
error-tag: operation-failed
error-app-tag: general-error
-
enumerator ERR_NCX_INVALID_AUGTARGET
345
error-message: invalid augment target
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_DUP_REFINE_STMT
346
error-message: duplicate refine sub-clause
error-severity: error
error-tag: operation-failed
error-app-tag: duplicate-error
-
enumerator ERR_NCX_INVALID_DEV_STMT
347
error-message: invalid deviate sub-clause
error-severity: error
error-tag: operation-failed
error-app-tag: data-invalid
-
enumerator ERR_NCX_INVALID_XPATH_EXPR
348
error-message: invalid XPath expression syntax
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_INVALID_INSTANCEID
349
error-message: invalid instance-identifier syntax
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_MISSING_INSTANCE
350
RFC 6020, section 13.6
error-message: require-instance test failed
error-severity: error
error-tag: data-missing
error-app-tag: instance-required
-
enumerator ERR_NCX_UNEXPECTED_INSERT_ATTRS
351
error-message: key or select attribute not allowed
error-severity: error
error-tag: operation-failed
error-app-tag: data-invalid
-
enumerator ERR_NCX_INVALID_UNIQUE_NODE
352
error-message: invalid unique-stmt node
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_INVALID_DUP_IMPORT
353
error-message: invalid duplicate import-stmt
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_INVALID_DUP_INCLUDE
354
error-message: invalid duplicate include-stmt
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_AMBIGUOUS_CMD
355
error-message: ambiguous command
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_UNKNOWN_MODULE
356
error-message: unknown module
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_UNKNOWN_VERSION
357
error-message: unknown version
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_VALUE_NOT_SUPPORTED
358
error-message: value not supported
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_LEAFREF_LOOP
359
error-message: leafref path loop
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_VAR_NOT_FOUND
360
error-message: variable not found
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_VAR_READ_ONLY
361
error-message: variable is read-only
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_DEC64_BASEOVFL
362
error-message: decimal64 base number overflow
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_DEC64_FRACOVFL
363
error-message: decimal64 fraction precision overflow
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_RPC_WHEN_FAILED
364
error-message: when-stmt tested false
error-severity: error
error-tag: unknown-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_NO_MATCHES
365
error-message: no matches found
error-severity: error
error-tag: operation-failed
error-app-tag: no-matches
-
enumerator ERR_NCX_MISSING_REFTARGET
366
error-message: missing refine target
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_CANDIDATE_DIRTY
367
error-message: candidate cannot be locked, discard-changes needed
error-severity: error
error-tag: resource-denied
error-app-tag: no-access
-
enumerator ERR_NCX_TIMEOUT
368
error-message: timeout occurred
error-severity: error
error-tag: operation-failed
error-app-tag: limit-reached
-
enumerator ERR_NCX_GET_SCHEMA_DUPLICATES
369
error-message: multiple module revisions exist
error-severity: error
error-tag: operation-failed
error-app-tag: data-not-unique
-
enumerator ERR_NCX_XPATH_NOT_NODESET
370
error-message: XPath result not a nodeset
error-severity: error
error-tag: invalid-value
error-app-tag: not-a-node-set
-
enumerator ERR_NCX_XPATH_NODESET_EMPTY
371
error-message: XPath node-set result is empty
error-severity: error
error-tag: operation-failed
error-app-tag: no-matches
-
enumerator ERR_NCX_IN_USE_LOCKED
372
error-message: node is protected by a partial lock
error-severity: error
error-tag: in-use
error-app-tag: locked
-
enumerator ERR_NCX_IN_USE_COMMIT
373
error-message: cannot perform the operation with confirmed-commit pending
error-severity: error
error-tag: in-use
error-app-tag: outstanding-confirmed-commit
-
enumerator ERR_NCX_SUBMOD_NOT_LOADED
374
error-message: cannot directly load a submodule
error-severity: error
error-tag: operation-failed
error-app-tag: general-error
-
enumerator ERR_NCX_ACCESS_READ_ONLY
375
error-message: cannot write to a read-only object
error-severity: error
error-tag: access-denied
error-app-tag: no-access
-
enumerator ERR_NCX_CONFIG_NOT_TARGET
376
error-message: cannot write to this configuration directly
error-severity: error
error-tag: operation-failed
error-app-tag: no-access
-
enumerator ERR_NCX_MISSING_RBRACE
377
error-message: YANG file missing right brace
error-severity: error
error-tag: operation-failed
error-app-tag: general-error
-
enumerator ERR_NCX_INVALID_FRAMING
378
error-message: invalid protocol framing characters received
error-severity: error
error-tag: malformed-message
error-app-tag: data-invalid
-
enumerator ERR_NCX_PROTO11_NOT_ENABLED
379
error-message: base:1.1 protocol not enabled
error-severity: error
error-tag: invalid-value
error-app-tag: no-support
-
enumerator ERR_NCX_CC_NOT_ACTIVE
380
error-message: persistent confirmed commit not active
error-severity: error
error-tag: operation-failed
error-app-tag: general-error
-
enumerator ERR_NCX_MULTIPLE_MATCHES
381
error-message: multiple matches found
error-severity: error
error-tag: operation-failed
error-app-tag: general-error
-
enumerator ERR_NCX_NO_DEFAULT
382
error-message: no schema default for this node
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_MISSING_KEY
383
error-message: expected key leaf in list
error-severity: error
error-tag: missing-element
error-app-tag: data-invalid
-
enumerator ERR_NCX_TOP_LEVEL_MANDATORY_FAILED
384
error-message: top-level mandatory objects are not allowed
error-severity: error
error-tag: operation-failed
error-app-tag: general-error
-
enumerator ERR_NCX_RESOURCE_UNKNOWN
385
error-message: unknown resource
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_UNENDED_BLOCK
386
error-message: unended config line block
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_EVAL_VERSION
387
error-message: not supported in evaluation version
error-severity: error
error-tag: operation-failed
error-app-tag: no-access
-
enumerator ERR_NCX_RESOURCE_INSTANCE_UNKNOWN
388
error-message: unknown resource instance
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_UNEXPECTED_INPUT
389
error-message: input data not expected
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_METHOD_NOT_ALLOWED
390
error-message: method not allowed
error-severity: error
error-tag: operation-not-supported
error-app-tag: no-support
-
enumerator ERR_NCX_QPARAM_NOT_ALLOWED
391
error-message: query parameter not allowed for method
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_PRECONDITION_FAILED
392
error-message: edit pre-condition failed
error-severity: error
error-tag: operation-failed
error-app-tag: general-error
-
enumerator ERR_NCX_HEADER_NOT_ALLOWED
393
error-message: header not allowed
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_RUNNING_NOT_VALID
394
error-message: running config has validation errors
error-severity: error
error-tag: operation-failed
error-app-tag: data-invalid
-
enumerator ERR_NCX_BINARY_FILE
395
error-message: binary file found instead of text file
error-severity: error
error-tag: operation-failed
error-app-tag: data-invalid
-
enumerator ERR_NCX_IMPORT_DEPENDENCY
396
error-message: module is imported by other modules
error-severity: error
error-tag: operation-failed
error-app-tag: no-access
-
enumerator ERR_NCX_UNLOAD_NOT_ALLOWED
397
error-message: restricted module cannot be unloaded
error-severity: error
error-tag: operation-failed
error-app-tag: no-access
-
enumerator ERR_NCX_EVAL_LIMIT_REACHED
398
error-message: request limit reached in evaluation version
error-severity: error
error-tag: operation-failed
error-app-tag: no-access
-
enumerator ERR_NCX_SELECT_FAILED
399
error-message: IO select call failed
error-severity: error
error-tag: operation-failed
error-app-tag: io-error
-
enumerator ERR_NCX_SESSION_DROPPED
400
error-message: session dropped
error-severity: error
error-tag: operation-failed
error-app-tag: io-error
-
enumerator ERR_NCX_INVALID_MEDIA
401
error-message: media type not in range
error-severity: error
error-tag: invalid-value
error-app-tag: not-in-range
-
enumerator ERR_NCX_INVALID_FORMAT
402
error-message: an appropriate representation could not be found
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_INVALID_CONT_TYPE
403
error-message: data is not in a format acceptable for processing
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_UNKNOWN_QUERY_PARM
404
error-message: unknown query parameter
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_MISSING_ACCEPT_HEADER
405
error-message: missing Accept header
error-severity: error
error-tag: operation-failed
error-app-tag: data-invalid
-
enumerator ERR_NCX_PASSWORD_TOO_SHORT
406
error-message: password is too short
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_MISSING_INPUT
407
error-message: missing input data
error-severity: error
error-tag: operation-failed
error-app-tag: data-invalid
-
enumerator ERR_NCX_VALUE_DISABLED
408
error-message: value disabled by if-feature-stmt
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_WHEN_KEY
409
error-message: when-stmt not allowed on key leaf
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_IF_FEATURE_KEY
410
error-message: if-feature-stmt not allowed on key leaf
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_TOO_MANY_XML
411
error-message: invalid XML response would be returned
error-severity: error
error-tag: operation-failed
error-app-tag: general-error
-
enumerator ERR_NCX_JSON_NOT_YET
412
error-message: JSON encoding not yet supported
error-severity: error
error-tag: operation-failed
error-app-tag: general-error
-
enumerator ERR_NCX_MISSING_DATA_DEF_STMT
413
error-message: missing data definition statement
error-severity: error
error-tag: missing-element
error-app-tag: data-incomplete
-
enumerator ERR_NCX_CONDITIONAL_DEFVAL
414
error-message: default value conditional on if-feature
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_INVALID_ESCSTR
415
error-message: invalid escape sequence in double-quoted string
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_INVALID_STATUS_REF
416
error-message: invalid status for child node
error-severity: error
error-tag: operation-failed
error-app-tag: general-error
-
enumerator ERR_NCX_TEMPLATE_NOT_FOUND
417
error-message: configuration template not found
error-severity: error
error-tag: invalid-value
error-app-tag: data-invalid
-
enumerator ERR_NCX_SHUTDOWN_MODE
418
error-message: program is shutting down
error-severity: error
error-tag: operation-failed
error-app-tag: general-error
-
enumerator ERR_NCX_NOTIFS_NOT_ENABLED
419
error-message: notifications are not enabled
error-severity: error
error-tag: resource-denied
error-app-tag: no-support
-
enumerator ERR_NCX_MAINTENANCE_MODE
420
error-message: maintenance mode active
error-severity: error
error-tag: operation-failed
error-app-tag: no-access
-
enumerator ERR_NCX_NOTIF_DSCP_UNAVAILABLE
421 ietf-subscribed-notifications errors (421 - 428)
error-message: DSCP unavailable
error-severity: error
error-tag: invalid-value
error-app-tag: ietf-subscribed-notifications:dscp-unavailable
-
enumerator ERR_NCX_NOTIF_ENCODING_UNSUPPORTED
422
error-message: encoding unsupported
error-severity: error
error-tag: invalid-value
error-app-tag: ietf-subscribed-notifications:encoding-unsupported
-
enumerator ERR_NCX_NOTIF_FILTER_UNAVAILABLE
423
error-message: filter unavailable
error-severity: error
error-tag: invalid-value
error-app-tag: ietf-subscribed-notifications:filter-unavailable
-
enumerator ERR_NCX_NOTIF_FILTER_UNSUPPORTED
424
error-message: filter unsupported
error-severity: error
error-tag: invalid-value
error-app-tag: ietf-subscribed-notifications:filter-unsupported
-
enumerator ERR_NCX_NOTIF_INSUFFICIENT_RESOURCES
425
error-message: insufficient resources
error-severity: error
error-tag: resource-denied
error-app-tag: ietf-subscribed-notifications:insufficient-resources
-
enumerator ERR_NCX_NOTIF_NO_SUCH_SUBSCRIPTION
426
error-message: no such subscription
error-severity: error
error-tag: invalid-value
error-app-tag: ietf-subscribed-notifications:no-such-subscription
-
enumerator ERR_NCX_NOTIF_REPLAY_UNSUPPORTED
427
error-message: replay unsupported
error-severity: error
error-tag: operation-not-supported
error-app-tag: ietf-subscribed-notifications:replay-unsupported
-
enumerator ERR_NCX_NOTIF_STREAM_UNAVAILABLE
428
error-message: stream unavailable
error-severity: error
error-tag: invalid-value
error-app-tag: ietf-subscribed-notifications:stream-unavailable
-
enumerator ERR_NCX_PUSH_CANT_EXCLUDE
429
ietf-yang-push errors (429 - 437)
error-message: cannot exclude changes
error-severity: error
error-tag: operation-not-supported
error-app-tag: ietf-yang-push:cant-exclude
-
enumerator ERR_NCX_PUSH_DATASTORE_NOT_SUBSCRIBABLE
430
error-message: datastore not subscribable
error-severity: error
error-tag: invalid-value
error-app-tag: ietf-yang-push:datastore-not-subscribable
-
enumerator ERR_NCX_PUSH_NO_SUCH_RESYNC
431
error-message: no such subscription resynch
error-severity: error
error-tag: invalid-value
error-app-tag: ietf-yang-push:no-such-subscription-resync
-
enumerator ERR_NCX_PUSH_ON_CHANGE_UNSUPPORTED
432
error-message: on-change unsupported
error-severity: error
error-tag: operation-not-supported
error-app-tag: ietf-yang-push:on-change-unsupported
-
enumerator ERR_NCX_PUSH_ON_CHANGE_SYNC_UNSUPPORTED
433
error-message: on-change synch unsupported
error-severity: error
error-tag: operation-not-supported
error-app-tag: ietf-yang-push:on-change-sync-unsupported
-
enumerator ERR_NCX_PUSH_PERIOD_UNSUPPORTED
434
error-message: period unsupported
error-severity: error
error-tag: invalid-value
error-app-tag: ietf-yang-push:period-unsupported
-
enumerator ERR_NCX_PUSH_UPDATE_TOO_BIG
435
error-message: update too big
error-severity: error
error-tag: too-big
error-app-tag: ietf-yang-push:update-too-big
-
enumerator ERR_NCX_PUSH_SYNC_TOO_BIG
436
error-message: sync too big
error-severity: error
error-tag: too-big
error-app-tag: ietf-yang-push:sync-too-big
-
enumerator ERR_NCX_PUSH_UNCHANGING_SELECTION
437
error-message: unchanging selection
error-severity: error
error-tag: operation-failed
error-app-tag: ietf-yang-push:unchanging-selection
-
enumerator ERR_NCX_NESTED_EDITOP
438
error-message: nested edit operation not supported
error-severity: error
error-tag: operation-not-supported
error-app-tag: no-support
-
enumerator ERR_NCX_MALFORMED_MESSAGE
439
error-message: malformed rpc request received
error-severity: error
error-tag: malformed-message
error-app-tag: data-invalid
-
enumerator ERR_LAST_USR_ERR
440 — not really used
-
enumerator ERR_MAKFILE_DUP_SRC
1000
user warnings start at 1000 (was 400)
error-message: duplicate source
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_INC_NOT_FOUND
1001
error-message: include file not found
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_CMDLINE_VAL
1002
error-message: invalid command line value
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_CMDLINE_OPT
1003
error-message: invalid command line option
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_CMDLINE_OPT_UNKNOWN
1004
error-message: command line option unknown
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_CMDLINE_SYNTAX
1005
error-message: invalid command line syntax
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_CMDLINE_VAL_REQUIRED
1006
error-message: missing command line value
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_FORM_INPUT
1007
error-message: invalid form input
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_FORM_UNKNOWN
1008
error-message: invalid form
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_NO_INSTANCE
1009
error-message: no instance found
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_SESSION_CLOSED
1010
error-message: session closed by remote peer
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_DUP_IMPORT
1011
error-message: duplicate import
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_PREFIX_DUP_IMPORT
1012
error-message: duplicate import with different prefix value
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_TYPDEF_NOT_USED
1013
error-message: local typedef not used
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_GRPDEF_NOT_USED
1014
error-message: local grouping not used
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_IMPORT_NOT_USED
1015
error-message: import not used
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_DUP_UNIQUE_COMP
1016
error-message: duplicate unique-stmt argument
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_STMT_IGNORED
1017
error-message: statement ignored
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_DUP_INCLUDE
1018
error-message: duplicate include
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_INCLUDE_NOT_USED
1019
error-message: include not used
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_DATE_PAST
1020
error-message: revision date before 1970
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_DATE_FUTURE
1021
error-message: revision date in the future
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_ENUM_VAL_ORDER
1022
error-message: enum value order
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_BIT_POS_ORDER
1023
error-message: bit position order
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_INVALID_STATUS
1024
not used
error-message: invalid status for child node
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_DUP_AUGNODE
1025
error-message: duplicate sibling node name from external augment
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_DUP_IF_FEATURE
1026
error-message: duplicate if-feature statement
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_USING_DEPRECATED
1027
error-message: using deprecated definition
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_MAX_KEY_CHECK
1028
error-message: XPath object predicate check limit reached
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_EMPTY_XPATH_RESULT
1029
error-message: empty XPath result in must or when expr
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_NO_XPATH_ANCESTOR
1030
error-message: no ancestor node available
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_NO_XPATH_PARENT
1031
error-message: no parent node available
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_NO_XPATH_CHILD
1032
error-message: no child node available
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_NO_XPATH_DESCENDANT
1033
error-message: no descendant node available
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_NO_XPATH_NODES
1034
error-message: no nodes available
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_BAD_REV_ORDER
1035
error-message: bad revision-stmt order
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_DUP_PREFIX
1036
error-message: duplicate prefix
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_IDLEN_EXCEEDED
1037
error-message: identifier length exceeded
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_LINELEN_EXCEEDED
1038
error-message: display line length exceeded
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_RCV_UNKNOWN_CAP
1039
error-message: received unknown capability
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_RCV_INVALID_MODCAP
1040
error-message: invalid module capability URI
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_USING_ANYXML
1041
removed; not used
error-message: unknown child node, using anyxml
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_USING_BADDATA
1042
error-message: invalid value used for parm
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_USING_STRING
1043
error-message: changing object type to string
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_USING_RESERVED_NAME
1044
error-message: using a reserved name
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_CONF_PARM_EXISTS
1045
error-message: conf file parm already exists
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_NO_REVISION
1046
error-message: no valid revision statements found
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_DEPENDENCY_ERRORS
1047
error-message: dependency file has errors
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_TOP_LEVEL_MANDATORY
1048
error-message: top-level object is mandatory
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_FILE_MOD_MISMATCH
1049
error-message: file name does not match [sub]module name
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_UNIQUE_CONDITIONAL_MISMATCH
1050
error-message: unique-stmt component conditions do not match parent list
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_SIL_BUSY
1051
error-message: reentrant call detected (retry)
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_XPATH_COMPARE
1052
error-message: XPath compare value invalid for YANG type
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_XPATH_OBJ_COMPARE
1053
error-message: XPath comparing different YANG object types
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_DUP_REVISION
1054
error-message: Revision date has already been used
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_NONCONFIG_XPATH
1055
error-message: Non-config object referenced in config node XPath
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_MANDATORY_AUGEXTERN
1056
error-message: Mandatory nodes not allowed in external augments
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_XPATH_SELF_REF
1057
error-message: Self-referencing XPath expression
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_NCX_XPATH_REF_REMOVED
1058
error-message: Referencing XPath node removed for when-stmt
error-severity: warning
error-tag: operation-failed
error-app-tag: general-warning
-
enumerator ERR_LAST_WARN
1059 - not really used
-
enumerator ERR_PARS_SECDONE
2000
system info return codes start at 2000 (was 900)
parse section done
-
enumerator ERR_NCX_SKIPPED
2001
operation was skipped
-
enumerator ERR_NCX_CANCELED
2002
operation was canceled
-
enumerator ERR_NCX_LOOP_ENDED
2003
loop ended
-
enumerator ERR_NCX_FOUND_INLINE
2004
found inline XML or JSON
-
enumerator ERR_NCX_FOUND_URL
2005
found URL
-
enumerator ERR_NCX_FOUND_GET2
2006
found GET2
-
enumerator ERR_NCX_NOMATCH_GET2
2007
no match for GET2 found
-
enumerator ERR_LAST_INFO
2008 - not really used