Constrained YANG Module LibraryTrilliant Networks Inc.610 Rue du LuxembourgGranbyQuebecJ2J 2V2Canada+14503750556michel.veillette@trilliantinc.com
Applications and Real-Time Area (art)
Internet Engineering Task ForceYANGThis document describes a YANG library that provides information about all the YANG modules used by a constrained network management server (e.g., a CoAP Management Interface (CoMI) server). Simple caching mechanisms are provided to allow clients to minimize retrieval of this information.The YANG library specified in this document is available to clients of a given server to discover the YANG modules supported by this constrained network management server. A CoMI server provides a link to this library in the /mod.uri resource. The following YANG module information is provided to client applications to fully utilize the YANG data modeling language:module list: The list of YANG modules implemented by a server, each module is identified by its assigned YANG Schema Item iDentifier (SID) and revision.submodule list: The list of YANG submodules included by each module, each submodule is identified by its assigned SID and revision.feature list: The list of features supported by the server, each feature is identified by its assigned SID.deviation list: The list of YANG modules used for deviation statements associated with each YANG module, each module is identified by its assigned SID and revision.YANG module ietf-constrained-yang-library targets the same functionality and shares the same approach as YANG module ietf-yang-library. The following changes with respect to ietf-yang-library are specified to make ietf-constrained-yang-library compatible with SID used by CoMI and to improve its applicability to constrained devices and networks.YANG module ietf-constrained-yang-library extends the caching mechanism supported by ietf-yang-library to multiple servers. This is accomplished by supporting the identityref datatype for “module-set-id”. This enables the use of a managed identifier (i.e. a SID) to identify a specific assembly of YANG modules, deviations and features implemented by a group of constrained servers.Modules, sub-modules, deviations and features are identified using a numerical value (SID) instead of a string (yang-identifier).The “namespace” leaf, not required for SIDs, but mandatory in ietf-yang-library is not included in ietf-constrained-yang-library.Schemas can be located using the already available module or sub-module identifier (SID) and revision. For this reason, support of module and sub-module schema URIs have been removed.o To minimize their size, each revision date is encoded in binary.The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”,
“SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to
be interpreted as described in .The following terms are defined in :modulesubmodulefeaturedeviationThe following terms are defined in :YANG Schema Item iDentifier (SID)The following terms are defined in :clientserverThe following terms are used within this document:library: a collection of YANG modules used by a server.The “ietf-constrained-yang-library” module provides information about the YANG library used by a given server. This module is defined using YANG version 1 as defined by , but it supports the description of YANG modules written in any revision of YANG.The tree diagram of YANG module ietf-constrained-yang-library is provided below. This graphical representation of a YANG module is defined in .This mandatory container specifies the module set identifier and the list of modules supported by the server.This mandatory leaf contains an identifier representing the current set of modules and submodules used by a server. This identifier is server-specific when implemented as unit32 or can be used by multiple servers when implemented as identityref. The value of this leaf MUST change whenever the set of modules and submodules in the library changes. There is no requirement that the same set always results in the same ‘module-set-id’ value.This leaf allows a client to fetch the module list once, cache it, and only re-fetch it if the value of this leaf has been changed.If the value of this leaf changes, the server also generates a ‘yang-library-change’ notification, with the new value of ‘module-set-id’.This mandatory list contains one entry for each YANG module supported by the server. There MUST be an entry in this list for each revision of each YANG module that is used by the server. It is possible for multiple revisions of the same module to be imported, in addition to an entry for the revision that is implemented by the server.RFC Ed.: update the date below with the date of RFC publication
and remove this note.This document registers one YANG module in the YANG Module Names registry .name: ietf-constrained-yang-librarynamespace: urn:ietf:params:xml:ns:yang:ietf-constrained-yang-libraryprefix: libreference: RFC XXXX// RFC Ed.: replace XXXX with RFC number and remove this noteThis YANG module is designed to be accessed via the CoMI protocol . Some of the readable data nodes in this YANG module may be considered sensitive or vulnerable in some network environments. It is thus important to control read access to these data nodes.Specifically, the ‘module’ list may help an attacker to identify the server capabilities and server implementations with known bugs. Server vulnerabilities may be specific to particular modules, module revisions, module features, or even module deviations. This information is included in each module entry. For example, if a particular operation on a particular data node is known to cause a server to crash or significantly degrade device performance, then the module list information will help an attacker identify server implementations with such a defect, in order to launch a denial of service attack on the device.The YANG module defined by this memo have been derived from an already existing YANG module, ietf-yang-library , we will like to thanks to the authors of this YANG module. A special thank also to Andy Bierman for his initial recommendations for the creation of this YANG module.Key words for use in RFCs to Indicate Requirement LevelsIn many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.The YANG 1.1 Data Modeling LanguageYANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).CBOR Encoding of Data Modeled with YANGThis document defines encoding rules for serializing configuration data, state data, RPC input and RPC output, Action input, Action output and notifications defined within YANG modules using the Concise Binary Object Representation (CBOR) [RFC7049].CoAP Management InterfaceThis document describes a network management interface for constrained devices and networks, called CoAP Management Interface (CoMI). The Constrained Application Protocol (CoAP) is used to access datastore and data node resources specified in YANG, or SMIv2 converted to YANG. CoMI uses the YANG to CBOR mapping and converts YANG identifier strings to numeric identifiers for payload size reduction. CoMI extends the set of YANG based protocols, NETCONF and RESTCONF, with the capability to manage constrained devices and networks.YANG Tree DiagramsThis document captures the current syntax used in YANG module Tree Diagrams. The purpose of the document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.YANG Module LibraryThis document describes a YANG library that provides information about all the YANG modules used by a network management server (e.g., a Network Configuration Protocol (NETCONF) server). Simple caching mechanisms are provided to allow clients to minimize retrieval of this information.