IETF NETCONF (Network Configuration) Working Group WG Web: <http://tools.ietf.org/wg/netconf/> WG List: <netconf@ietf.org> WG Chair: Bert Wijnen <bertietf@bwijnen.net> WG Chair: Mehmet Ersue <mehmet.ersue@nsn.com> Editor: Martin Bjorklund <mbj@tail-f.com> Editor: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> Editor: Andy Bierman <andy.bierman@brocade.com> NETCONF Protocol Data Types and Protocol Operations. Copyright (c) 2011 IETF Trust and the persons identified as the document authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6241; see the RFC itself for full legal notices. Initial revision; 2013-09-29: Updated to include NACM attributes, as specified in RFC 6536: sec 3.2.5 and 3.2.8 RFC 6241: Network Configuration Protocol If this extension is present within an 'anyxml' statement named 'filter', which must be conceptually defined within the RPC input section for the <get> and <get-config> protocol operations, then the following unqualified XML attribute is supported within the <filter> element, within a <get> or <get-config> protocol operation: type : optional attribute with allowed value strings 'subtree' and 'xpath'. If missing, the default value is 'subtree'. If the 'xpath' feature is supported, then the following unqualified XML attribute is also supported: select: optional attribute containing a string representing an XPath expression. The 'type' attribute must be equal to 'xpath' if this attribute is present. NETCONF :writable-running capability; If the server advertises the :writable-running capability for a session, then this feature must also be enabled for that session. Otherwise, this feature must not be enabled. RFC 6241, Section 8.2 NETCONF :candidate capability; If the server advertises the :candidate capability for a session, then this feature must also be enabled for that session. Otherwise, this feature must not be enabled. RFC 6241, Section 8.3 NETCONF :confirmed-commit:1.1 capability; If the server advertises the :confirmed-commit:1.1 capability for a session, then this feature must also be enabled for that session. Otherwise, this feature must not be enabled. RFC 6241, Section 8.4 NETCONF :rollback-on-error capability; If the server advertises the :rollback-on-error capability for a session, then this feature must also be enabled for that session. Otherwise, this feature must not be enabled. RFC 6241, Section 8.5 NETCONF :validate:1.1 capability; If the server advertises the :validate:1.1 capability for a session, then this feature must also be enabled for that session. Otherwise, this feature must not be enabled. RFC 6241, Section 8.6 NETCONF :startup capability; If the server advertises the :startup capability for a session, then this feature must also be enabled for that session. Otherwise, this feature must not be enabled. RFC 6241, Section 8.7 NETCONF :url capability; If the server advertises the :url capability for a session, then this feature must also be enabled for that session. Otherwise, this feature must not be enabled. RFC 6241, Section 8.8 NETCONF :xpath capability; If the server advertises the :xpath capability for a session, then this feature must also be enabled for that session. Otherwise, this feature must not be enabled. RFC 6241, Section 8.9 NETCONF Session Id NETCONF Session Id or Zero to indicate none The request requires a resource that already is in use. The request specifies an unacceptable value for one or more parameters. The request or response (that would be generated) is too large for the implementation to handle. An expected attribute is missing. An attribute value is not correct; e.g., wrong type, out of range, pattern mismatch. An unexpected attribute is present. An expected element is missing. An element value is not correct; e.g., wrong type, out of range, pattern mismatch. An unexpected element is present. An unexpected namespace is present. Access to the requested protocol operation or data model is denied because authorization failed. Access to the requested lock is denied because the lock is currently held by another entity. Request could not be completed because of insufficient resources. Request to roll back some configuration change (via rollback-on-error or <discard-changes> operations) was not completed for some reason. Request could not be completed because the relevant data model content already exists. For example, a 'create' operation was attempted on data that already exists. Request could not be completed because the relevant data model content does not exist. For example, a 'delete' operation was attempted on data that does not exist. Request could not be completed because the requested operation is not supported by this implementation. Request could not be completed because the requested operation failed for some reason not covered by any other error condition. This error-tag is obsolete, and SHOULD NOT be sent by servers conforming to this document. A message could not be handled because it failed to be parsed correctly. For example, the message is not well-formed XML or it uses an invalid character set. NETCONF Error Tag RFC 6241, Appendix A Error severity Warning severity NETCONF Error Severity RFC 6241, Section 4.3 The configuration data identified by the element containing this attribute is merged with the configuration at the corresponding level in the configuration datastore identified by the target parameter. The configuration data identified by the element containing this attribute replaces any related configuration in the configuration datastore identified by the target parameter. If no such configuration data exists in the configuration datastore, it is created. Unlike a <copy-config> operation, which replaces the entire target configuration, only the configuration actually present in the config parameter is affected. The configuration data identified by the element containing this attribute is added to the configuration if and only if the configuration data does not already exist in the configuration datastore. If the configuration data exists, an <rpc-error> element is returned with an <error-tag> value of 'data-exists'. The configuration data identified by the element containing this attribute is deleted from the configuration if and only if the configuration data currently exists in the configuration datastore. If the configuration data does not exist, an <rpc-error> element is returned with an <error-tag> value of 'data-missing'. The configuration data identified by the element containing this attribute is deleted from the configuration if the configuration data currently exists in the configuration datastore. If the configuration data does not exist, the 'remove' operation is silently ignored by the server. NETCONF 'operation' attribute values RFC 6241, Section 7.2 Retrieve all or part of a specified configuration. RFC 6241, Section 7.1 Particular configuration to retrieve. The configuration to retrieve. The candidate configuration is the config source. The running configuration is the config source. The startup configuration is the config source. This is optional-to-implement on the server because not all servers will support filtering for this datastore. Subtree or XPath filter to use. Copy of the source datastore subset that matched the filter criteria (if any). An empty data container indicates that the request did not produce any results. The <edit-config> operation loads all or part of a specified configuration to the specified target configuration. RFC 6241, Section 7.2 Particular configuration to edit. The configuration target. The candidate configuration is the config target. The running configuration is the config source. The default operation is merge. The default operation is replace. There is no default operation. The default operation to use. The server will test and then set if no errors. The server will set without a test first. The server will only test and not set, even if there are no errors. The test option to use. The server will stop on errors. The server may continue on errors. The server will roll back on errors. This value can only be used if the 'rollback-on-error' feature is supported. The error option to use. The content for the edit operation. Inline Config content. URL-based config content. Create or replace an entire configuration datastore with the contents of another complete configuration datastore. RFC 6241, Section 7.3 Particular configuration to copy to. The configuration target of the copy operation. The candidate configuration is the config target. The running configuration is the config target. This is optional-to-implement on the server. The startup configuration is the config target. The URL-based configuration is the config target. Particular configuration to copy from. The configuration source for the copy operation. The candidate configuration is the config source. The running configuration is the config source. The startup configuration is the config source. The URL-based configuration is the config source. Inline Config content: <config> element. Represents an entire configuration datastore, not a subset of the running datastore. Delete a configuration datastore. RFC 6241, Section 7.4 Particular configuration to delete. The configuration target to delete. The startup configuration is the config target. The URL-based configuration is the config target. The lock operation allows the client to lock the configuration system of a device. RFC 6241, Section 7.5 Particular configuration to lock. The configuration target to lock. The candidate configuration is the config target. The running configuration is the config target. The startup configuration is the config target. The unlock operation is used to release a configuration lock, previously obtained with the 'lock' operation. RFC 6241, Section 7.6 Particular configuration to unlock. The configuration target to unlock. The candidate configuration is the config target. The running configuration is the config target. The startup configuration is the config target. Retrieve running configuration and device state information. RFC 6241, Section 7.7 This parameter specifies the portion of the system configuration and state data to retrieve. Copy of the running datastore subset and/or state data that matched the filter criteria (if any). An empty data container indicates that the request did not produce any results. Request graceful termination of a NETCONF session. RFC 6241, Section 7.8 Force the termination of a NETCONF session. RFC 6241, Section 7.9 Particular session to kill. Commit the candidate configuration as the device's new current configuration. RFC 6241, Section 8.3.4.1 Requests a confirmed commit. RFC 6241, Section 8.3.4.1 The timeout interval for a confirmed commit. RFC 6241, Section 8.3.4.1 This parameter is used to make a confirmed commit persistent. A persistent confirmed commit is not aborted if the NETCONF session terminates. The only way to abort a persistent confirmed commit is to let the timer expire, or to use the <cancel-commit> operation. The value of this parameter is a token that must be given in the 'persist-id' parameter of <commit> or <cancel-commit> operations in order to confirm or cancel the persistent confirmed commit. The token should be a random string. RFC 6241, Section 8.3.4.1 This parameter is given in order to commit a persistent confirmed commit. The value must be equal to the value given in the 'persist' parameter to the <commit> operation. If it does not match, the operation fails with an 'invalid-value' error. RFC 6241, Section 8.3.4.1 Revert the candidate configuration to the current running configuration. RFC 6241, Section 8.3.4.2 This operation is used to cancel an ongoing confirmed commit. If the confirmed commit is persistent, the parameter 'persist-id' must be given, and it must match the value of the 'persist' parameter. RFC 6241, Section 8.4.4.1 This parameter is given in order to cancel a persistent confirmed commit. The value must be equal to the value given in the 'persist' parameter to the <commit> operation. If it does not match, the operation fails with an 'invalid-value' error. Validates the contents of the specified configuration. RFC 6241, Section 8.6.4.1 Particular configuration to validate. The configuration source to validate. The candidate configuration is the config source. The running configuration is the config source. The startup configuration is the config source. The URL-based configuration is the config source. Inline Config content: <config> element. Represents an entire configuration datastore, not a subset of the running datastore.