rfc-8526

NETCONF Extensions to Support the Network Management Datastore Architecture

M. Bjorklund, J. Schoenwaelder, P. Shafer, K. Watsen, R. Wilton
date2019-03 streamIETF areaops wgnetconf statusPROPOSED STANDARD pages23 canonicalhttps://www.rfc-editor.org/rfc/rfc8526 doi10.17487/RFC8526
This document extends the Network Configuration Protocol (NETCONF) defined in RFC 6241 in order to support the Network Management Datastore Architecture (NMDA) defined in RFC 8342. This document updates RFCs 6241 and 7950. The update to RFC 6241 adds new <get-data> and <edit-data> operations and augments existing <lock>, <unlock>, and <validate> operations. The update to RFC 7950 requires the usage of the YANG library (described in RFC 8525) by NETCONF servers implementing the NMDA.

updates

Extracted elements (22)

design-rationale §3

New operations use 'datastore' identity parameters (from 'ietf-datastores') rather than the choice-based strategy from original operations (e.g., <get-config>/<edit-config>), because identities allow future expansion to new datastores without protocol changes.

netconf, yang

design-rationale §3.1.1.1

Origin metadata annotations may be omitted for child nodes when the value matches the parent node's origin, reducing response verbosity while preserving full information for differing nodes.

netconf, yang

design-rationale §3.1.2

The <edit-data> operation omits the 'error-option' and 'test-option' parameters present in <edit-config>; error behavior is fixed to 'rollback-on-error', simplifying the operation for NMDA datastores.

netconf, yang

interoperability-note §3.1.1.2

Support for 'with-defaults' in <get-data> operations on <operational> is OPTIONAL and requires both the ':with-defaults' and ':with-operational-defaults:1.0' capabilities to be advertised.

netconf, yang

interoperability-note §3.1.2

The 'config' element in <edit-data>'s edit-content choice uses 'anydata' (YANG 1.1, RFC 7950), whereas <edit-config>'s corresponding element used 'anyxml'. Implementations must account for this difference.

netconf, yang

interoperability-note §2

This document updates RFC 7950 Section 5.6.4 to allow NETCONF servers to advertise ':yang-library:1.1' instead of ':yang-library:1.0' and to implement the subtree '/yang-library' (RFC 8525) instead of '/modules-state'.

netconf, yang

normative-requirement §2 MUST

An NMDA-compliant NETCONF server MUST implement the 'ietf-netconf-nmda' module, MUST support the operational state datastore, and MUST implement at least revision 2019-01-04 of the 'ietf-yang-library' module defined in RFC 8525.

netconf, yang

normative-requirement §3.2 MUST

If a <lock>, <unlock>, or <validate> operation is not supported on a particular datastore, the server MUST return an <rpc-error> element with an <error-tag> value of 'invalid-value'.

netconf, yang

normative-requirement §3.1.2 MUST

If the target datastore for <edit-data> is not writable or not supported by the server, then the server MUST return an <rpc-error> element with an <error-tag> value of 'invalid-value'.

netconf, yang

normative-requirement §3.1.1.2 MUST

If the 'with-defaults' parameter is present in a <get-data> request for which it is not supported, then the server MUST return an <rpc-error> element with an <error-tag> value of 'invalid-value'.

netconf, yang

normative-requirement §3.1.1.1 MUST

If the 'with-origin' parameter is used with an invalid (non-operational) datastore, the server MUST return an <rpc-error> with <error-tag> value of 'invalid-value'.

netconf, yang

normative-requirement §2 MUST

The server MUST advertise the capability 'urn:ietf:params:netconf:capability:yang-library:1.1' in the <hello> message, with both 'revision' and 'content-id' parameters present.

netconf, yang

protocol-element §3.1.1

The 'config-filter' parameter in <get-data> filters nodes by their 'config' property: 'true' selects only 'config true' nodes, 'false' selects only 'config false' nodes, and absent means no filtering.

netconf, yang

protocol-element §3.1.2

The <edit-data> operation changes the contents of a writable datastore, accepting parameters: 'datastore' (mandatory), 'default-operation' (merge/replace/none, default merge), and 'edit-content' (config or url). It does not support 'error-option' or 'test-option'; error behavior is always rollback-on-error.

netconf, yang

protocol-element §3.1.1

The <get-data> operation retrieves data from a specific NMDA datastore, accepting parameters: 'datastore' (mandatory), 'subtree-filter' or 'xpath-filter', 'config-filter', 'origin-filter' or 'negated-origin-filter', 'max-depth', 'with-origin', and 'with-defaults'.

netconf, yang

protocol-element §3.2

The <lock>, <unlock>, and <validate> operations are augmented with a new 'datastore' leaf of type 'ds:datastore-ref' to allow targeting NMDA datastores beyond those supported by the original choice-based mechanism.

netconf, yang

protocol-element §3.1.1

The 'max-depth' parameter in <get-data> limits subtree levels returned: depth 1 returns selected nodes without children; 'unbounded' (default) returns all descendants. Range is 1..65535 or 'unbounded'.

netconf, yang

protocol-element §3.1.1

The 'origin-filter' and 'negated-origin-filter' parameters select or exclude nodes based on their NMDA origin annotation; they cannot be used together in the same request.

netconf, yang

protocol-element §3.1.1.1

The 'with-origin' parameter in <get-data>, when present, requests that the server include 'origin' metadata annotations in the response. It is only valid for the operational state datastore or datastores derived from the 'operational' identity.

netconf, yang

registry §5

A URI is registered in the IETF XML Registry: 'urn:ietf:params:xml:ns:yang:ietf-netconf-nmda', and the YANG module 'ietf-netconf-nmda' is registered in the YANG Module Names registry with prefix 'ncds'.

registry, netconf, yang

registry §5

Two NETCONF Capability URNs are registered: 'urn:ietf:params:netconf:capability:yang-library:1.1' (:yang-library:1.1) and 'urn:ietf:params:netconf:capability:with-operational-defaults:1.0' (:with-operational-defaults).

registry, netconf

security-consideration §6

The lowest NETCONF layer is the secure transport layer; the mandatory-to-implement secure transport is SSH (RFC 6242). The Network Configuration Access Control Model (NACM, RFC 8341) restricts access for NETCONF users to authorized protocol operations and content. Security considerations from RFC 6241 Section 9 apply to the new <get-data> and <edit-data> operations.

security, netconf