CoAP Management Interface (CORECONF)
draft-ietf-core-comi-15
The information below is for an old version of the document.
Document | Type |
This is an older version of an Internet-Draft whose latest revision state is "Active".
|
|
---|---|---|---|
Authors | Michel Veillette , Peter Van der Stok , Alexander Pelov , Andy Bierman , Carsten Bormann | ||
Last updated | 2023-07-23 (Latest revision 2023-07-10) | ||
Replaces | draft-vanderstok-core-comi | ||
RFC stream | Internet Engineering Task Force (IETF) | ||
Formats | |||
Additional resources | Mailing list discussion | ||
Stream | WG state | WG Document | |
Document shepherd | Michael Richardson | ||
IESG | IESG state | I-D Exists | |
Consensus boilerplate | Unknown | ||
Telechat date | (None) | ||
Responsible AD | (None) | ||
Send notices to | Carsten Bormann <cabo@tzi.org>, mcr@sandelman.ca |
draft-ietf-core-comi-15
REQ: GET </.well-known/core?rt=core.c.dn> RES: 2.05 Content (Content-Format: application/link-format) </c/a6>;rt="core.c.dn", </c/a7>;rt="core.c.dn" Without additional filtering, the list of data nodes may become prohibitively long. If this is the case implementations SHOULD support a way to obtain all links using multiple GET requests (for example through some form of pagination). 5.2.3. Event stream Resource Discovery The presence and location of (path to) each event stream implemented by the CORECONF server are discovered by sending a GET request to "/.well-known/core" including a resource type (RT) parameter with the value "core.c.es". Upon success, the return payload contains the list of event stream resources. The following example assumes that the server uses /s as the default event stream resource. REQ: GET </.well-known/core?rt=core.c.es> RES: 2.05 Content (Content-Format: application/link-format) </s>;rt="core.c.es" Figure 3 6. Error Handling In case a request is received which cannot be processed properly, the CORECONF server MUST return an error response. This error response MUST contain a CoAP 4.xx or 5.xx response code. Errors returned by a CORECONF server can be broken into two categories, those associated with the CoAP protocol itself and those generated during the validation of the YANG data model constraints as described in Section 8 of [RFC7950]. The following list of common CoAP errors should be implemented by CORECONF servers. This list is not exhaustive, other errors defined by CoAP and associated RFCs may be applicable. Veillette, et al. Expires 25 January 2024 [Page 26] Internet-Draft CORECONF July 2023 * Error 4.01 (Unauthorized) is returned by the CORECONF server when the CORECONF client is not authorized to perform the requested action on the targeted resource (i.e., data node, datastore, rpc, action or event stream). * Error 4.02 (Bad Option) is returned by the CORECONF server when one or more CoAP options are unknown or malformed. * Error 4.04 (Not Found) is returned by the CORECONF server when the CORECONF client is requesting a non-instantiated resource (i.e., data node, datastore, rpc, action or event stream). * Error 4.05 (Method Not Allowed) is returned by the CORECONF server when the CORECONF client is requesting a method not supported on the targeted resource. (e.g., GET on an rpc, PUT or POST on a data node with "config" set to false). * Error 4.08 (Request Entity Incomplete) is returned by the CORECONF server if one or multiple blocks of a block transfer request is missing, see [RFC7959] for more details. * Error 4.13 (Request Entity Too Large) may be returned by the CORECONF server during a block transfer request, see [RFC7959] for more details. * Error 4.15 (Unsupported Content-Format) is returned by the CORECONF server when the Content-Format used in the request does not match those specified in Section 2.3. The CORECONF server MUST also enforce the different constraints associated with the YANG data models implemented. These constraints are described in Section 8 of [RFC7950]. These errors are reported using the CoAP error code 4.00 (Bad Request) and may have the following error container as payload. The YANG definition and associated .sid file are available in Appendix A and Appendix B. The error container is encoded using the encoding rules of a YANG data template as defined in Section 5 of [RFC9254]. +--rw error! +--rw error-tag identityref +--rw error-app-tag? identityref +--rw error-data-node? instance-identifier +--rw error-message? string The following 'error-tag' and 'error-app-tag' are defined by the ietf-coreconf YANG module, these tags are implemented as YANG identity and can be extended as needed. Veillette, et al. Expires 25 January 2024 [Page 27] Internet-Draft CORECONF July 2023 * error-tag 'operation-failed' is returned by the CORECONF server when the operation request cannot be processed successfully. - error-app-tag 'malformed-message' is returned by the CORECONF server when the payload received from the CORECONF client does not contain a well-formed CBOR content as defined in [RFC8949] or does not comply with the CBOR structure defined within this document. - error-app-tag 'data-not-unique' is returned by the CORECONF server when the validation of the 'unique' constraint of a list or leaf-list fails. - error-app-tag 'too-many-elements' is returned by the CORECONF server when the validation of the 'max-elements' constraint of a list or leaf-list fails. - error-app-tag 'too-few-elements' is returned by the CORECONF server when the validation of the 'min-elements' constraint of a list or leaf-list fails. - error-app-tag 'must-violation' is returned by the CORECONF server when the restrictions imposed by a 'must' statement are violated. - error-app-tag 'duplicate' is returned by the CORECONF server when a client tries to create a duplicate list or leaf-list entry. * error-tag 'invalid-value' is returned by the CORECONF server when the CORECONF client tries to update or create a leaf with a value encoded using an invalid CBOR datatype or if the 'range', 'length', 'pattern' or 'require-instance' constrain is not fulfilled. - error-app-tag 'invalid-datatype' is returned by the CORECONF server when CBOR encoding does not follow the rules set by the YANG Build-In type or when the value is incompatible with it (e.g., a value greater than 127 for an int8, undefined enumeration). - error-app-tag 'not-in-range' is returned by the CORECONF server when the validation of the 'range' property fails. - error-app-tag 'invalid-length' is returned by the CORECONF server when the validation of the 'length' property fails. Veillette, et al. Expires 25 January 2024 [Page 28] Internet-Draft CORECONF July 2023 - error-app-tag 'pattern-test-failed' is returned by the CORECONF server when the validation of the 'pattern' property fails. * error-tag 'missing-element' is returned by the CORECONF server when the operation requested by a CORECONF client fails to comply with the 'mandatory' constraint defined. The 'mandatory' constraint is enforced for leafs and choices, unless the node or any of its ancestors have a 'when' condition or 'if-feature' expression that evaluates to 'false'. - error-app-tag 'missing-key' is returned by the CORECONF server to further qualify a missing-element error. This error is returned when the CORECONF client tries to create or list instance, without all the 'key' specified or when the CORECONF client tries to delete a leaf listed as a 'key'. - error-app-tag 'missing-input-parameter' is returned by the CORECONF server when the input parameters of an RPC or action are incomplete. * error-tag 'unknown-element' is returned by the CORECONF server when the CORECONF client tries to access a data node of a YANG module not supported, of a data node associated with an 'if- feature' expression evaluated to 'false' or to a 'when' condition evaluated to 'false'. * error-tag 'bad-element' is returned by the CORECONF server when the CORECONF client tries to create data nodes for more than one case in a choice. * error-tag 'data-missing' is returned by the CORECONF server when a data node required to accept the request is not present. - error-app-tag 'instance-required' is returned by the CORECONF server when a leaf of type 'instance-identifier' or 'leafref' marked with require-instance set to 'true' refers to an instance that does not exist. - error-app-tag 'missing-choice' is returned by the CORECONF server when no nodes exist in a mandatory choice. * error-tag 'error' is returned by the CORECONF server when an unspecified error has occurred. For example, the CORECONF server might return the following error. Veillette, et al. Expires 25 January 2024 [Page 29] Internet-Draft CORECONF July 2023 RES: 4.00 Bad Request (Content-Format: application/yang-data+cbor; id=sid) { 1024 : { 4 : 1011, / error-tag (SID 1028) / / = invalid-value (SID 1011) / 1 : 1018, / error-app-tag (SID 1025) / / = not-in-range (SID 1018) / 2 : 1740, / error-data-node (SID 1026) / / = timezone-utc-offset (SID 1740) / 3 : "maximum value exceeded" / error-message (SID 1027) / } } // I don't quite know how to use application/yang-instances+cbor-seq // here, if we don't have an instance? 7. Security Considerations For secure network management, it is important to restrict access to configuration variables only to authorized parties. CORECONF re-uses the security mechanisms already available to CoAP, this includes DTLS [RFC6347][RFC9147] and OSCORE [RFC8613] for protected access to resources, as well as suitable authentication and authorization mechanisms, for example those defined in ACE OAuth [RFC9200]. All the security considerations of [RFC7252], [RFC7959], [RFC8132] and [RFC7641] apply to this document as well. The use of NoSec (Section 9 of [RFC7252]), when OSCORE is not used, is NOT RECOMMENDED. In addition, mechanisms for authentication and authorization may need to be selected if not provided with the CoAP security mode. As [RFC9254] and [RFC4648] are used for payload and SID encoding, the security considerations of those documents also need to be well- understood. 8. IANA Considerations 8.1. Resource Type (rt=) Link Target Attribute Values Registry This document adds the following resource type to the "Resource Type (rt=) Link Target Attribute Values", within the "Constrained RESTful Environments (CoRE) Parameters" registry. Veillette, et al. Expires 25 January 2024 [Page 30] Internet-Draft CORECONF July 2023 +===========+=====================+===========+ | Value | Description | Reference | +===========+=====================+===========+ | core.c.ds | YANG datastore | RFC XXXX | +-----------+---------------------+-----------+ | core.c.dn | YANG data node | RFC XXXX | +-----------+---------------------+-----------+ | core.c.yl | YANG module library | RFC XXXX | +-----------+---------------------+-----------+ | core.c.es | YANG event stream | RFC XXXX | +-----------+---------------------+-----------+ Table 8 // RFC Ed.: replace RFC XXXX with this RFC number and remove this note. 8.2. CoAP Content-Formats Registry This document adds the following Content-Format to the "CoAP Content- Formats", within the "Constrained RESTful Environments (CoRE) Parameters" registry. +===========================+================+======+===========+ | Media Type | Content Coding | ID | Reference | +===========================+================+======+===========+ | application/yang- | | TBD2 | RFC XXXX | | identifiers+cbor-seq | | | | +---------------------------+----------------+------+-----------+ | application/yang- | | TBD3 | RFC XXXX | | instances+cbor-seq | | | | +---------------------------+----------------+------+-----------+ Table 9 // RFC Ed.: replace TBD1, TBD2 and TBD3 with assigned IDs and remove this note. // RFC Ed.: replace RFC XXXX with this RFC number and remove this note. 8.3. Media Types Registry This document adds the following media types to the "Media Types" registry. Veillette, et al. Expires 25 January 2024 [Page 31] Internet-Draft CORECONF July 2023 +===========================+===========================+=========+ | Name | Template |Reference| +===========================+===========================+=========+ | yang-identifiers+cbor-seq | application/yang- |RFC XXXX | | | identifiers+cbor-seq | | +---------------------------+---------------------------+---------+ | yang-instances+cbor-seq | application/yang- |RFC XXXX | | | instances+cbor-seq | | +---------------------------+---------------------------+---------+ Table 10 Each of these media types share the following information: * Subtype name: <as listed in table> * Required parameters: N/A * Optional parameters: N/A * Encoding considerations: binary * Security considerations: See the Security Considerations section of RFC XXXX * Interoperability considerations: N/A * Published specification: RFC XXXX * Applications that use this media type: CORECONF * Fragment identifier considerations: N/A * Additional information: * Deprecated alias names for this type: N/A * Magic number(s): N/A * File extension(s): N/A * Macintosh file type code(s): N/A * Person & email address to contact for further information: iesg&ietf.org * Intended usage: COMMON Veillette, et al. Expires 25 January 2024 [Page 32] Internet-Draft CORECONF July 2023 * Restrictions on usage: N/A * Author: Michel Veillette * Change Controller: IETF * Provisional registration? No // RFC Ed.: replace RFC XXXX with this RFC number and remove this note. 8.4. YANG Namespace and Module Name Registration This document registers the following XML namespace URN in the "IETF XML Registry", following the format defined in [RFC3688]: URI: please assign urn:ietf:params:xml:ns:yang:ietf-coreconf Registrant Contact: The IESG. XML: N/A, the requested URI is an XML namespace. Reference: RFC XXXX IANA is requested to register the following YANG module in the "YANG Module Names" registry [RFC6020]: Name: ietf-coreconf Namespace: urn:ietf:params:xml:ns:yang:ietf-coreconf Prefix: coreconf Reference: RFC XXXX // RFC Ed.: please replace XXXX with RFC number and remove this note 9. References 9.1. Normative References [I-D.ietf-core-sid] Veillette, M., Pelov, A., Petrov, I., Bormann, C., and M. Richardson, "YANG Schema Item iDentifier (YANG SID)", Work in Progress, Internet-Draft, draft-ietf-core-sid-20, 1 March 2023, <https://datatracker.ietf.org/doc/html/draft- ietf-core-sid-20>. Veillette, et al. Expires 25 January 2024 [Page 33] Internet-Draft CORECONF July 2023 [I-D.ietf-core-yang-library] Veillette, M. and I. Petrov, "Constrained YANG Module Library", Work in Progress, Internet-Draft, draft-ietf- core-yang-library-03, 11 January 2021, <https://datatracker.ietf.org/doc/html/draft-ietf-core- yang-library-03>. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <https://www.rfc-editor.org/rfc/rfc2119>. [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10.17487/RFC3688, January 2004, <https://www.rfc-editor.org/rfc/rfc3688>. [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006, <https://www.rfc-editor.org/rfc/rfc4648>. [RFC5277] Chisholm, S. and H. Trevino, "NETCONF Event Notifications", RFC 5277, DOI 10.17487/RFC5277, July 2008, <https://www.rfc-editor.org/rfc/rfc5277>. [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, DOI 10.17487/RFC6020, October 2010, <https://www.rfc-editor.org/rfc/rfc6020>. [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., and A. Bierman, Ed., "Network Configuration Protocol (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, <https://www.rfc-editor.org/rfc/rfc6241>. [RFC6243] Bierman, A. and B. Lengyel, "With-defaults Capability for NETCONF", RFC 6243, DOI 10.17487/RFC6243, June 2011, <https://www.rfc-editor.org/rfc/rfc6243>. [RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained Application Protocol (CoAP)", RFC 7252, DOI 10.17487/RFC7252, June 2014, <https://www.rfc-editor.org/rfc/rfc7252>. [RFC7641] Hartke, K., "Observing Resources in the Constrained Application Protocol (CoAP)", RFC 7641, DOI 10.17487/RFC7641, September 2015, <https://www.rfc-editor.org/rfc/rfc7641>. Veillette, et al. Expires 25 January 2024 [Page 34] Internet-Draft CORECONF July 2023 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", RFC 7950, DOI 10.17487/RFC7950, August 2016, <https://www.rfc-editor.org/rfc/rfc7950>. [RFC7959] Bormann, C. and Z. Shelby, Ed., "Block-Wise Transfers in the Constrained Application Protocol (CoAP)", RFC 7959, DOI 10.17487/RFC7959, August 2016, <https://www.rfc-editor.org/rfc/rfc7959>. [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, <https://www.rfc-editor.org/rfc/rfc8040>. [RFC8132] van der Stok, P., Bormann, C., and A. Sehgal, "PATCH and FETCH Methods for the Constrained Application Protocol (CoAP)", RFC 8132, DOI 10.17487/RFC8132, April 2017, <https://www.rfc-editor.org/rfc/rfc8132>. [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, <https://www.rfc-editor.org/rfc/rfc8174>. [RFC8610] Birkholz, H., Vigano, C., and C. Bormann, "Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures", RFC 8610, DOI 10.17487/RFC8610, June 2019, <https://www.rfc-editor.org/rfc/rfc8610>. [RFC8742] Bormann, C., "Concise Binary Object Representation (CBOR) Sequences", RFC 8742, DOI 10.17487/RFC8742, February 2020, <https://www.rfc-editor.org/rfc/rfc8742>. [RFC8949] Bormann, C. and P. Hoffman, "Concise Binary Object Representation (CBOR)", STD 94, RFC 8949, DOI 10.17487/RFC8949, December 2020, <https://www.rfc-editor.org/rfc/rfc8949>. [RFC9254] Veillette, M., Ed., Petrov, I., Ed., Pelov, A., Bormann, C., and M. Richardson, "Encoding of Data Modeled with YANG in the Concise Binary Object Representation (CBOR)", RFC 9254, DOI 10.17487/RFC9254, July 2022, <https://www.rfc-editor.org/rfc/rfc9254>. 9.2. Informative References [RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer Security Version 1.2", RFC 6347, DOI 10.17487/RFC6347, January 2012, <https://www.rfc-editor.org/rfc/rfc6347>. Veillette, et al. Expires 25 January 2024 [Page 35] Internet-Draft CORECONF July 2023 [RFC6690] Shelby, Z., "Constrained RESTful Environments (CoRE) Link Format", RFC 6690, DOI 10.17487/RFC6690, August 2012, <https://www.rfc-editor.org/rfc/rfc6690>. [RFC7317] Bierman, A. and M. Bjorklund, "A YANG Data Model for System Management", RFC 7317, DOI 10.17487/RFC7317, August 2014, <https://www.rfc-editor.org/rfc/rfc7317>. [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., and R. Wilton, "Network Management Datastore Architecture (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, <https://www.rfc-editor.org/rfc/rfc8342>. [RFC8343] Bjorklund, M., "A YANG Data Model for Interface Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, <https://www.rfc-editor.org/rfc/rfc8343>. [RFC8613] Selander, G., Mattsson, J., Palombini, F., and L. Seitz, "Object Security for Constrained RESTful Environments (OSCORE)", RFC 8613, DOI 10.17487/RFC8613, July 2019, <https://www.rfc-editor.org/rfc/rfc8613>. [RFC9147] Rescorla, E., Tschofenig, H., and N. Modadugu, "The Datagram Transport Layer Security (DTLS) Protocol Version 1.3", RFC 9147, DOI 10.17487/RFC9147, April 2022, <https://www.rfc-editor.org/rfc/rfc9147>. [RFC9200] Seitz, L., Selander, G., Wahlstroem, E., Erdtman, S., and H. Tschofenig, "Authentication and Authorization for Constrained Environments Using the OAuth 2.0 Framework (ACE-OAuth)", RFC 9200, DOI 10.17487/RFC9200, August 2022, <https://www.rfc-editor.org/rfc/rfc9200>. Appendix A. ietf-coreconf YANG module <CODE BEGINS> file "ietf-coreconf@2023-07-10.yang" module ietf-coreconf { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-coreconf"; prefix coreconf; import ietf-datastores { prefix ds; } import ietf-restconf { prefix rc; Veillette, et al. Expires 25 January 2024 [Page 36] Internet-Draft CORECONF July 2023 description "This import statement is required to access the yang-data extension defined in RFC 8040."; reference "RFC 8040: RESTCONF Protocol"; } organization "IETF Core Working Group"; contact "Michel Veillette <mailto:michel.veillette@trilliantinc.com> Alexander Pelov <mailto:alexander@ackl.io> Peter van der Stok <mailto:consultancy@vanderstok.org> Andy Bierman <mailto:andy@yumaworks.com>"; description "This module contains the different definitions required by the CORECONF protocol. Copyright (c) 2019 IETF Trust and the persons identified as authors of the code. 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 (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; revision 2023-07-10 { description "Initial revision."; reference "[I-D.ietf-core-comi] CoAP Management Interface"; } identity unified { base ds:datastore; Veillette, et al. Expires 25 January 2024 [Page 37] Internet-Draft CORECONF July 2023 description "Identifier of the unified configuration and operational state datastore."; } identity error-tag { description "Base identity for error-tag."; } identity operation-failed { base error-tag; description "Returned by the CORECONF server when the operation request can't be processed successfully."; } identity invalid-value { base error-tag; description "Returned by the CORECONF server when the CORECONF client tries to update or create a leaf with a value encoded using an invalid CBOR datatype or if the 'range', 'length', 'pattern' or 'require-instance' constrain is not fulfilled."; } identity missing-element { base error-tag; description "Returned by the CORECONF server when the operation requested by a CORECONF client fails to comply with the 'mandatory' constraint defined. The 'mandatory' constraint is enforced for leafs and choices, unless the node or any of its ancestors have a 'when' condition or 'if-feature' expression that evaluates to 'false'."; } identity unknown-element { base error-tag; description "Returned by the CORECONF server when the CORECONF client tries to access a data node of a YANG module not supported, of a data node associated with an 'if-feature' expression evaluated to 'false' or to a 'when' condition evaluated to 'false'."; } Veillette, et al. Expires 25 January 2024 [Page 38] Internet-Draft CORECONF July 2023 identity bad-element { base error-tag; description "Returned by the CORECONF server when the CORECONF client tries to create data nodes for more than one case in a choice."; } identity data-missing { base error-tag; description "Returned by the CORECONF server when a data node required to accept the request is not present."; } identity error { base error-tag; description "Returned by the CORECONF server when an unspecified error has occurred."; } identity error-app-tag { description "Base identity for error-app-tag."; } identity malformed-message { base error-app-tag; description "Returned by the CORECONF server when the payload received from the CORECONF client don't contain a well-formed CBOR content as defined in [RFC8949] or don't comply with the CBOR structure defined within this document."; } identity data-not-unique { base error-app-tag; description "Returned by the CORECONF server when the validation of the 'unique' constraint of a list or leaf-list fails."; } identity too-many-elements { base error-app-tag; description "Returned by the CORECONF server when the validation of the 'max-elements' constraint of a list or leaf-list fails."; Veillette, et al. Expires 25 January 2024 [Page 39] Internet-Draft CORECONF July 2023 } identity too-few-elements { base error-app-tag; description "Returned by the CORECONF server when the validation of the 'min-elements' constraint of a list or leaf-list fails."; } identity must-violation { base error-app-tag; description "Returned by the CORECONF server when the restrictions imposed by a 'must' statement are violated."; } identity duplicate { base error-app-tag; description "Returned by the CORECONF server when a client tries to create a duplicate list or leaf-list entry."; } identity invalid-datatype { base error-app-tag; description "Returned by the CORECONF server when CBOR encoding is incorect or when the value encoded is incompatible with the YANG Built-In type. (e.g., value greater than 127 for an int8, undefined enumeration)."; } identity not-in-range { base error-app-tag; description "Returned by the CORECONF server when the validation of the 'range' property fails."; } identity invalid-length { base error-app-tag; description "Returned by the CORECONF server when the validation of the 'length' property fails."; } identity pattern-test-failed { base error-app-tag; Veillette, et al. Expires 25 January 2024 [Page 40] Internet-Draft CORECONF July 2023 description "Returned by the CORECONF server when the validation of the 'pattern' property fails."; } identity missing-key { base error-app-tag; description "Returned by the CORECONF server to further qualify a missing-element error. This error is returned when the CORECONF client tries to create or list instance, without all the 'key' specified or when the CORECONF client tries to delete a leaf listed as a 'key'."; } identity missing-input-parameter { base error-app-tag; description "Returned by the CORECONF server when the input parameters of a RPC or action are incomplete."; } identity instance-required { base error-app-tag; description "Returned by the CORECONF server when a leaf of type 'instance-identifier' or 'leafref' marked with require-instance set to 'true' refers to an instance that does not exist."; } identity missing-choice { base error-app-tag; description "Returned by the CORECONF server when no nodes exist in a mandatory choice."; } rc:yang-data coreconf-error { container error { description "Optional payload of a 4.00 Bad Request CoAP error."; leaf error-tag { type identityref { base error-tag; } mandatory true; Veillette, et al. Expires 25 January 2024 [Page 41] Internet-Draft CORECONF July 2023 description "The enumerated error-tag."; } leaf error-app-tag { type identityref { base error-app-tag; } description "The application-specific error-tag."; } leaf error-data-node { type instance-identifier; description "When the error reported is caused by a specific data node, this leaf identifies the data node in error."; } leaf error-message { type string; description "A message describing the error."; } } } } <CODE ENDS> Appendix B. ietf-coreconf .sid file { "assignment-ranges": [ { "entry-point": 1000, "size": 100 } ], "module-name": "ietf-coreconf", "module-revision": "2023-07-10", "items": [ { "namespace": "module", "identifier": "ietf-coreconf", "sid": 1000 }, { "namespace": "identity", Veillette, et al. Expires 25 January 2024 [Page 42] Internet-Draft CORECONF July 2023 "identifier": "bad-element", "sid": 1001 }, { "namespace": "identity", "identifier": "data-missing", "sid": 1002 }, { "namespace": "identity", "identifier": "data-not-unique", "sid": 1003 }, { "namespace": "identity", "identifier": "duplicate", "sid": 1004 }, { "namespace": "identity", "identifier": "error", "sid": 1005 }, { "namespace": "identity", "identifier": "error-app-tag", "sid": 1006 }, { "namespace": "identity", "identifier": "error-tag", "sid": 1007 }, { "namespace": "identity", "identifier": "instance-required", "sid": 1008 }, { "namespace": "identity", "identifier": "invalid-datatype", "sid": 1009 }, { "namespace": "identity", "identifier": "invalid-length", "sid": 1010 }, Veillette, et al. Expires 25 January 2024 [Page 43] Internet-Draft CORECONF July 2023 { "namespace": "identity", "identifier": "invalid-value", "sid": 1011 }, { "namespace": "identity", "identifier": "malformed-message", "sid": 1012 }, { "namespace": "identity", "identifier": "missing-choice", "sid": 1013 }, { "namespace": "identity", "identifier": "missing-element", "sid": 1014 }, { "namespace": "identity", "identifier": "missing-input-parameter", "sid": 1015 }, { "namespace": "identity", "identifier": "missing-key", "sid": 1016 }, { "namespace": "identity", "identifier": "must-violation", "sid": 1017 }, { "namespace": "identity", "identifier": "not-in-range", "sid": 1018 }, { "namespace": "identity", "identifier": "operation-failed", "sid": 1019 }, { "namespace": "identity", "identifier": "pattern-test-failed", Veillette, et al. Expires 25 January 2024 [Page 44] Internet-Draft CORECONF July 2023 "sid": 1020 }, { "namespace": "identity", "identifier": "too-few-elements", "sid": 1021 }, { "namespace": "identity", "identifier": "too-many-elements", "sid": 1022 }, { "namespace": "identity", "identifier": "unified", "sid": 1029 }, { "namespace": "identity", "identifier": "unknown-element", "sid": 1023 }, { "namespace": "data", "identifier": "/ietf-coreconf:error", "sid": 1024 }, { "namespace": "data", "identifier": "/ietf-coreconf:error/error-app-tag", "sid": 1025 }, { "namespace": "data", "identifier": "/ietf-coreconf:error/error-data-node", "sid": 1026 }, { "namespace": "data", "identifier": "/ietf-coreconf:error/error-message", "sid": 1027 }, { "namespace": "data", "identifier": "/ietf-coreconf:error/error-tag", "sid": 1028 } ] Veillette, et al. Expires 25 January 2024 [Page 45] Internet-Draft CORECONF July 2023 } Acknowledgments We are very grateful to Bert Greevenbosch who was one of the original authors of the CORECONF specification. Mehmet Ersue and Bert Wijnen explained the encoding aspects of PDUs transported under SNMP. Koen Zandberg's implementation input motivated massively simplifying (and fixing) the URI construction for GET/PUT/POST requests. The draft has further benefited from comments (alphabetical order) by Rodney Cummings, Dee Denteneer, Esko Dijk, Klaus Hartke, Michael van Hartskamp, Tanguy Ropitault, Jürgen Schönwälder, Anuj Sehgal, Zach Shelby, Hannes Tschofenig, Michael Verschoor, and Thomas Watteyne. Contributors Ivaylo Petrov Acklio 1137A avenue des Champs Blancs 35510 Cesson-Sevigne France Email: ivaylo@ackl.io Authors' Addresses Michel Veillette (editor) Trilliant Networks Inc. 610 Rue du Luxembourg Granby Quebec J2J 2V2 Canada Email: michel.veillette@trilliant.com Peter van der Stok (editor) consultant Phone: +31-492474673 (Netherlands), +33-966015248 (France) Email: stokcons@bbhmail.nl URI: www.vanderstok.org Veillette, et al. Expires 25 January 2024 [Page 46] Internet-Draft CORECONF July 2023 Alexander Pelov Acklio 2bis rue de la Chataigneraie 35510 Cesson-Sevigne France Email: a@ackl.io Andy Bierman YumaWorks 685 Cochran St. Suite #160 Simi Valley, CA 93065 United States of America Email: andy@yumaworks.com Carsten Bormann (editor) Universität Bremen TZI Postfach 330440 D-28359 Bremen Germany Phone: +49-421-218-63921 Email: cabo@tzi.org Veillette, et al. Expires 25 January 2024 [Page 47]