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

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

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)

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.

../_images/error_data_components.png

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.h

  • Each 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' value

  • The 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.

const char *get_error_string(status_t res)

Get the error message for a specific internal error.

Parameters:

res -- internal status_t error code

Returns:

const pointer to error message

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

  • msghdr -- [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_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-NULL

  • msghdr -- [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_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-NULL

  • msghdr -- [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.

Public Members

dlq_hdr_t qhdr

queue header

xmlChar *descr

description-stmt (not saved on server)

xmlChar *ref

reference-stmt (not saved on server)

xmlChar *error_app_tag

error-app-tag field

xmlChar *error_message

error-message field

boolean seen

for yangdiff

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 &#8212; 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 &#8212; 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 &#8212; 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