| rfc8808xml2.original.xml | rfc8808.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="US-ASCII"?> | <?xml version="1.0" encoding="utf-8"?> | |||
| <!-- This template is for creating an Internet Draft using xml2rfc, | ||||
| which is available here: http://xml.resource.org. --> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | ||||
| <!-- One method to get references from the online citation libraries. | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" | |||
| There has to be one entity for each item to be referenced. | docName="draft-ietf-netmod-factory-default-15" number="8808" | |||
| An alternate method (rfc include) is described in the references. --> | ipr="trust200902" obsoletes="" updates="" submissionType="IETF" | |||
| <!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | category="std" consensus="true" xml:lang="en" tocInclude="true" | |||
| .2119.xml"> | symRefs="true" sortRefs="true" version="3"> | |||
| <!ENTITY RFC2697 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .2697.xml"> | <!-- xml2rfc v2v3 conversion 2.44.0 --> | |||
| <!ENTITY RFC2698 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .2698.xml"> | ||||
| <!ENTITY RFC6020 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .6020.xml"> | ||||
| ]> | ||||
| <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | ||||
| <?rfc toc="yes" ?> | ||||
| <?rfc tocompact="yes"?> | ||||
| <?rfc tocindent="yes"?> | ||||
| <?rfc symrefs="yes" ?> | ||||
| <?rfc sortrefs="yes"?> | ||||
| <?rfc iprnotified="no" ?> | ||||
| <?rfc strict="yes" ?> | ||||
| <?rfc compact="yes"?> | ||||
| <?rfc subcompact="no"?> | ||||
| <rfc category="std" docName="draft-ietf-netmod-factory-default-15" | ||||
| ipr="trust200902"> | ||||
| <front> | <front> | |||
| <title abbrev="Factory Default Setting">A YANG Data Model for Factory | <title abbrev="Factory Default Settings">A YANG Data Model | |||
| Default Settings</title> | for Factory Default Settings</title> | |||
| <seriesInfo name="RFC" value="8808"/> | ||||
| <author fullname="Qin Wu" initials="Q." surname="Wu"> | <author fullname="Qin Wu" initials="Q." surname="Wu"> | |||
| <organization>Huawei</organization> | <organization>Huawei</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>101 Software Avenue, Yuhua District</street> | <street>101 Software Avenue</street> | |||
| <extaddr>Yuhua District</extaddr> | ||||
| <city>Nanjing</city> | <city>Nanjing</city> | |||
| <region>Jiangsu</region> | <region>Jiangsu</region> | |||
| <code>210012</code> | <code>210012</code> | |||
| <country>China</country> | <country>China</country> | |||
| </postal> | </postal> | |||
| <email>bill.wu@huawei.com</email> | <email>bill.wu@huawei.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Balazs Lengyel" initials="B." surname="Lengyel"> | <author fullname="Balazs Lengyel" initials="B." surname="Lengyel"> | |||
| <organization abbrev="Ericsson Hungary">Ericsson Hungary</organization> | <organization abbrev="Ericsson Hungary">Ericsson Hungary</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>Magyar Tudosok korutja 11</street> | <street>Magyar Tudosok korutja 11</street> | |||
| <city>Budapest</city><code>1117</code> | ||||
| <city>1117 Budapest</city> | ||||
| <country>Hungary</country> | <country>Hungary</country> | |||
| </postal> | </postal> | |||
| <phone>+36-70-330-7909</phone> | <phone>+36-70-330-7909</phone> | |||
| <email>balazs.lengyel@ericsson.com</email> | <email>balazs.lengyel@ericsson.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Ye Niu" initials="Y." surname="Niu"> | <author fullname="Ye Niu" initials="Y." surname="Niu"> | |||
| <organization>Huawei</organization> | <organization>Huawei</organization> | |||
| <address> | <address> | |||
| <email>niuye@huawei.com</email> | <email>niuye@huawei.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date year="2020" month="August" /> | ||||
| <date year="2020"/> | ||||
| <area>OPS Area</area> | ||||
| <workgroup>NETMOD Working Group</workgroup> | ||||
| <abstract> | <abstract> | |||
| <t>This document defines a YANG data model with the "factory-reset" RPC | <t>This document defines a YANG data model with the "factory-reset" RPC | |||
| to allow clients to reset a server back to its factory default | to allow clients to reset a server back to its factory default | |||
| condition. It also defines an optional "factory-default" datastore to | condition. It also defines an optional "factory-default" datastore to | |||
| allow clients to read the factory default configuration for the | allow clients to read the factory default configuration for the | |||
| device.</t> | device.</t> | |||
| <t>The YANG data model in this document conforms to the Network | <t>The YANG data model in this document conforms to the Network | |||
| Management Datastore Architecture (NMDA) defined in RFC 8342.</t> | Management Datastore Architecture (NMDA) defined in RFC 8342.</t> | |||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section anchor="intro" title="Introduction"> | <section anchor="intro" numbered="true" toc="default"> | |||
| <name>Introduction</name> | ||||
| <t>This document defines a YANG data model and associated mechanism to | <t>This document defines a YANG data model and associated mechanism to | |||
| reset a server to its factory default content. This mechanism may be | reset a server to its factory default contents. This mechanism may be | |||
| used, e.g., when the existing configuration has major errors so | used, for example, when the existing configuration has major errors and so | |||
| re-starting the configuration process from scratch is the best | restarting the configuration process from scratch is the best | |||
| option.</t> | option.</t> | |||
| <t>A "factory-reset" remote procedure call (RPC) is defined within the YAN | ||||
| <t>A "factory-reset" RPC is defined within the YANG data model. When | G data model. When | |||
| resetting a device, all previous configuration settings will be lost and | resetting a device, all previous configuration settings will be lost and | |||
| replaced by the factory default content.</t> | replaced by the factory default contents.</t> | |||
| <t>In addition, an optional "factory-default" read-only datastore is | <t>In addition, an optional "factory-default" read-only datastore is | |||
| defined within the YANG data model, that contains the data to replace | defined within the YANG data model. This datastore contains the data to re place | |||
| the contents of implemented read-write conventional configuration | the contents of implemented read-write conventional configuration | |||
| datastores at reset. This datastore can also be used in the | datastores at reset and can also be used in the | |||
| <get-data> operation.</t> | <get&nbhy;data> operation.</t> | |||
| <t>The YANG data model in this document conforms to the Network | <t>The YANG data model in this document conforms to the Network | |||
| Management Datastore Architecture defined in [RFC8342].</t> | Management Datastore Architecture defined in <xref target="RFC8342" format | |||
| ="default"/>.</t> | ||||
| <section title="Terminology"> | <section numbered="true" toc="default"> | |||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | <name>Terminology</name> | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", | |||
| capitals, as shown here.</t> | "<bcp14>SHOULD NOT</bcp14>", | |||
| "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | ||||
| <t>The following terms are defined in [RFC8342] [RFC7950] and are not | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document | |||
| are to be interpreted as described in BCP 14 | ||||
| <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only | ||||
| when, they appear in all capitals, as shown here.</t> | ||||
| <t>The following terms are defined in <xref target="RFC8342" | ||||
| format="default"/> and <xref target="RFC7950" format="default"/> and are | ||||
| not | ||||
| redefined here:</t> | redefined here:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>server</li> | |||
| <t>server</t> | <li>startup configuration datastore</li> | |||
| <li>candidate configuration datastore</li> | ||||
| <t>startup configuration datastore</t> | <li>running configuration datastore</li> | |||
| <li>intended configuration datastore</li> | ||||
| <t>candidate configuration datastore</t> | <li>operational state datastore</li> | |||
| <li>conventional configuration datastore</li> | ||||
| <t>running configuration datastore</t> | <li>datastore schema</li> | |||
| <li>RPC operation</li> | ||||
| <t>intended configuration datastore</t> | </ul> | |||
| <t>This document defines the following term:</t> | ||||
| <t>operational state datastore</t> | <dl newline="false"> | |||
| <dt>"factory-default" datastore: </dt> | ||||
| <t>conventional configuration datastore</t> | <dd>A read-only configuration datastore | |||
| holding a preset initial configuration that is used to initialize | ||||
| <t>datastore schema</t> | ||||
| <t>RPC operation</t> | ||||
| </list></t> | ||||
| <t>The following terms are defined in this document as follows:</t> | ||||
| <t><list style="symbols"> | ||||
| <t>factory-default datastore: A read-only configuration datastore | ||||
| holding a pre-set initial configuration that is used to initialize | ||||
| the configuration of a server. This datastore is referred to as | the configuration of a server. This datastore is referred to as | |||
| "<factory-default>".</t> | "<factory-default>".</dd> | |||
| </list></t> | </dl> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <!-- intro --> | <section numbered="true" toc="default"> | |||
| <name>"Factory-Reset" RPC</name> | ||||
| <section title="Factory-Reset RPC"> | <t>This document introduces a new "factory-reset" RPC. Upon | |||
| <t>A new "factory-reset" remote procedure call (RPC) is introduced. Upon | receiving the RPC: </t> | |||
| receiving the RPC: <list style="symbols"> | <ul spacing="normal"> | |||
| <t>All supported conventional read-write configuration datastores | <li>All supported conventional read-write configuration datastores | |||
| (i.e. <running>, <startup>, and <candidate>) are | (i.e., <running>, <startup>, and <candidate>) are | |||
| reset to the contents of <factory-default>.</t> | reset to the contents of <factory-default>.</li> | |||
| <li>Read-only datastores receive their contents from other datastores | ||||
| <t>Read-only datastores receive their content from other datastores | (e.g., <intended> gets its contents from <running>).</li> | |||
| (e.g., <intended> gets its content from <running>).</t> | <li>All data in any dynamic configuration datastores <bcp14>MUST</bcp14> | |||
| be | ||||
| <t>All data in any dynamic configuration datastores MUST be | discarded.</li> | |||
| discarded.</t> | <li>The contents of the <operational> datastore <bcp14>MUST</bcp14 | |||
| > reflect | ||||
| <t>The contents of the <operational> datastore MUST reflect | ||||
| the operational state of the device after applying the factory | the operational state of the device after applying the factory | |||
| default configuration.</t> | default configuration.</li> | |||
| </list></t> | </ul> | |||
| <t>In addition, the "factory-reset" RPC MUST restore non-volatile | <t>In addition, the "factory-reset" RPC <bcp14>MUST</bcp14> restore nonvolati le | |||
| storage to factory condition. Depending on the system, this may entail | storage to factory condition. Depending on the system, this may entail | |||
| deleting dynamically generated files, such as those containing keys | deleting dynamically generated files, such as those containing keys | |||
| (e.g., /etc/ssl/private), certificates (e.g., /etc/ssl), logs (e.g., | (e.g., /etc/ssl/private), certificates (e.g., /etc/ssl), logs (e.g., | |||
| /var/log), and temporary files (e.g., /tmp/*). Any other cryptographic | /var/log), and temporary files (e.g., /tmp/*). Any other cryptographic | |||
| keys that are part of the factory-installed image will be retained (such | keys that are part of the factory-installed image will be retained (such | |||
| as an IDevID certificate) [I-D.ietf-anima-bootstrapping-keyinfra]. When | as an Initial Device Identifier (IDevID) certificate <xref target="I-D.iet f-anima-bootstrapping-keyinfra" format="default"/>). When | |||
| this process includes security-sensitive data such as cryptographic keys | this process includes security-sensitive data such as cryptographic keys | |||
| or passwords, it is RECOMMENDED to perform the deletion in a manner as | or passwords, it is <bcp14>RECOMMENDED</bcp14> to perform the deletion | |||
| thorough as possible (e.g., overwriting the physical storage medium with | in as thorough a manner as possible (e.g., overwriting the physical storag | |||
| zeros and/or random bits for repurpose or end of life (EoL) disposal) to | e medium with | |||
| zeros and/or random bits for repurposing or end-of-life (EOL) disposal) to | ||||
| reduce the risk of the sensitive material being recoverable. The | reduce the risk of the sensitive material being recoverable. The | |||
| "factory-reset" RPC MAY also be used to trigger some other resetting | "factory-reset" RPC <bcp14>MAY</bcp14> also be used to trigger some other resetting | |||
| tasks such as restarting the node or some of the software processes.</t> | tasks such as restarting the node or some of the software processes.</t> | |||
| <t>Note that operators should be aware that since all read-write | <t>Note that operators should be aware that since all read-write | |||
| datastores are immediately reset to factory default, the device may | datastores are immediately reset to factory default, the device may | |||
| become unreachable as a host on the network. It is important to | become unreachable as a host on the network. It is important to | |||
| understand how a given vendor's device will behave after the RPC is | understand how a given vendor's device will behave after the RPC is | |||
| executed. Implementors SHOULD reboot the device and get it properly | executed. Implementors <bcp14>SHOULD</bcp14> reboot the device and get it properly | |||
| configured or otherwise restart processes needed to bootstrap it.</t> | configured or otherwise restart processes needed to bootstrap it.</t> | |||
| </section> | </section> | |||
| <section anchor="datastore" numbered="true" toc="default"> | ||||
| <section anchor="datastore" title="Factory-Default Datastore"> | <name>"Factory-Default" Datastore</name> | |||
| <t>Following the guidelines for defining Datastores in the appendix A of | <t>Following the guidelines for defining datastores in | |||
| [RFC8342], this document introduces a new optional datastore resource | <xref target="RFC8342" format="default" section="A" sectionFormat="of" | |||
| named "factory-default" that represents a pre-set initial configuration | derivedLink="https://rfc-editor.org/rfc/rfc8342#appendix-A" | |||
| derivedContent="RFC8342"/>, this document introduces a new optional datastore r | ||||
| esource | ||||
| named "factory-default" that represents a preset initial configuration | ||||
| that can be used to initialize the configuration of a server. A device | that can be used to initialize the configuration of a server. A device | |||
| MAY implement the "factory-reset" RPC without implementing the | <bcp14>MAY</bcp14> implement the "factory-reset" RPC without implementing the | |||
| "factory-default" datastore, which would only eliminate the ability to | "factory-default" datastore, which would only eliminate the ability to | |||
| programmatically determine the factory default configuration. <list | programmatically determine the factory default configuration. </t> | |||
| style="symbols"> | <dl> | |||
| <t>Name: "factory-default"</t> | <dt>Name:</dt> <dd>"factory-default".</dd> | |||
| <dt>YANG modules:</dt><dd>The "factory-default" datastore schema | ||||
| <t>YANG modules: The factory default datastore schema MUST either be | <bcp14>MUST</bcp14> be either | |||
| the same as the conventional configuration datastores, or a subset | (1) the same as the conventional configuration datastores or | |||
| of the datastore schema for the conventional configuration | (2) a subset of the datastore schema for the conventional co | |||
| datastores.</t> | nfiguration datastores.</dd> | |||
| <dt>YANG nodes:</dt> <dd>All "config true" data nodes.</dd> | ||||
| <t>YANG nodes: all "config true" data nodes</t> | <dt>Management operations:</dt> <dd>The contents of the datastore is set | |||
| by the | ||||
| <t>Management operations: The content of the datastore is set by the | server in an implementation-dependent manner. The contents cannot be | |||
| server in an implementation dependent manner. The content can not be | changed by management operations via the Network Configuration | |||
| changed by management operations via NETCONF, RESTCONF, the CLI etc. | Protocol (NETCONF), RESTCONF, the CLI, | |||
| unless specialized, dedicated operations are provided. The datastore | etc., unless specialized, dedicated operations are provided. The datas | |||
| tore | ||||
| can be read using the standard NETCONF/RESTCONF protocol operations. | can be read using the standard NETCONF/RESTCONF protocol operations. | |||
| The "factory-reset" operation copies the factory default content to | The "factory-reset" operation copies the factory default contents to | |||
| <running> and, if present, <startup> and/or | <running> and, if present, <startup> and/or | |||
| <candidate> and then the content of these datastores is | <candidate>. The contents of these datastores is then | |||
| propagated automatically to any other read only datastores, e.g., | propagated automatically to any other read-only datastores, e.g., | |||
| <intended> and <operational>.</t> | <intended> and <operational>.</dd> | |||
| <dt>Origin:</dt><dd>This document does not define a new origin | ||||
| <t>Origin: This document does not define a new origin identity as it | identity, as it does not interact with the <operational> datastore. | |||
| does not interact with the <operational> datastore.</t> | </dd> | |||
| <dt>Protocols:</dt><dd>RESTCONF, NETCONF, and other management protocols | ||||
| <t>Protocols: RESTCONF, NETCONF and other management protocol.</t> | .</dd> | |||
| <dt>Defining YANG module:</dt><dd>"ietf-factory-default".</dd> | ||||
| <t>Defining YANG module: "ietf-factory-default".</t> | </dl> | |||
| </list>The contents of <factory-default> are defined by the | <t>The contents of <factory-default> are defined by the | |||
| device vendor and MUST persist across device restarts. If supported, the | device vendor and <bcp14>MUST</bcp14> persist across device restarts. If s | |||
| factory-default datastore MUST be included in the list of datastores in | upported, the | |||
| YANG library [RFC 8525].</t> | "factory-default" datastore <bcp14>MUST</bcp14> be included in the list of | |||
| datastores in the | ||||
| YANG library <xref target="RFC8525" format="default"/>.</t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="YANG Module"> | <name>YANG Module</name> | |||
| <t>This module uses the "datastore" identity [RFC8342], and the | <t>This module uses the "datastore" identity <xref target="RFC8342" format | |||
| "default-deny-all" extension statement from [RFC8341].</t> | ="default"/> and the | |||
| "default&nbhy;deny-all" extension statement from <xref target="RFC8341"/>. | ||||
| <figure> | </t> | |||
| <artwork><CODE BEGINS> file "ietf-factory-default@2019-11-27.yang" | <sourcecode name="ietf-factory-default@2020-07-27.yang" type="yang" marker | |||
| s="true"><![CDATA[ | ||||
| module ietf-factory-default { | module ietf-factory-default { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-factory-default"; | namespace "urn:ietf:params:xml:ns:yang:ietf-factory-default"; | |||
| prefix fd; | prefix fd; | |||
| import ietf-datastores { | import ietf-datastores { | |||
| prefix ds; | prefix ds; | |||
| reference | reference | |||
| "RFC 8342: Network Management Datastore Architecture (NMDA)"; | "RFC 8342: Network Management Datastore Architecture | |||
| (NMDA)"; | ||||
| } | } | |||
| import ietf-netconf-acm { | import ietf-netconf-acm { | |||
| prefix nacm; | prefix nacm; | |||
| reference | reference | |||
| "RFC8341: Network Configuration Access Control Model"; | "RFC 8341: Network Configuration Access Control Model"; | |||
| } | } | |||
| organization | organization | |||
| "IETF NETMOD (Network Modeling) Working Group"; | "IETF Network Modeling (netmod) Working Group"; | |||
| contact | contact | |||
| "WG Web: <https://tools.ietf.org/wg/netconf/> | "WG Web: <https://datatracker.ietf.org/wg/netmod/> | |||
| WG List: <mailto:netconf@ietf.org> | WG List: <mailto:netmod@ietf.org> | |||
| Editor: Qin Wu | Editor: Qin Wu | |||
| <mailto:bill.wu@huawei.com> | <mailto:bill.wu@huawei.com> | |||
| Editor: Balazs Lengyel | Editor: Balazs Lengyel | |||
| <mailto:balazs.lengyel@ericsson.com> | <mailto:balazs.lengyel@ericsson.com> | |||
| Editor: Ye Niu | Editor: Ye Niu | |||
| <mailto:niuye@huawei.com>"; | <mailto:niuye@huawei.com>"; | |||
| description | description | |||
| "This module provides functionality to reset a server to its | "This module provides functionality to reset a server to its | |||
| factory default configuration and, when supported, to discover | factory default configuration and, when supported, to | |||
| the factory default configuration contents independent of | discover the factory default configuration contents | |||
| resetting the server. | independently of resetting the server. | |||
| Copyright (c) 2020 IETF Trust and the persons identified as | Copyright (c) 2020 IETF Trust and the persons identified as | |||
| authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; | This version of this YANG module is part of RFC 8808; see the | |||
| see the RFC itself for full legal notices."; | RFC itself for full legal notices."; | |||
| // RFC Ed.: update the date below with the date of RFC publication | ||||
| // and remove this note. | revision 2020-07-27 { | |||
| // RFC Ed.: replace XXXX with actual RFC number and remove this | ||||
| // note. | ||||
| revision 2019-11-27 { | ||||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference | |||
| "RFC XXXX: Factory default Setting"; | "RFC 8808: A YANG Data Model for Factory Default Settings"; | |||
| } | } | |||
| feature factory-default-datastore { | feature factory-default-datastore { | |||
| description | description | |||
| "Indicates that the factory default configuration is | "Indicates that the factory default configuration is | |||
| available as a datastore."; | available as a datastore."; | |||
| } | } | |||
| rpc factory-reset { | rpc factory-reset { | |||
| nacm:default-deny-all; | nacm:default-deny-all; | |||
| description | description | |||
| "The server resets all datastores to their factory | "The server resets all datastores to their factory | |||
| default content and any non-volatile storage back to | default contents and any nonvolatile storage back to | |||
| factory condition, deleting all dynamically generated | factory condition, deleting all dynamically | |||
| files, including those containing keys, certificates, | generated files, including those containing keys, | |||
| logs, and other temporary files. | certificates, logs, and other temporary files. | |||
| Depending on the factory default configuration, after | Depending on the factory default configuration, after | |||
| being reset, the device may become unreachable on the | being reset, the device may become unreachable on the | |||
| network."; | network."; | |||
| } | } | |||
| identity factory-default { | identity factory-default { | |||
| if-feature "factory-default-datastore"; | if-feature "factory-default-datastore"; | |||
| base ds:datastore; | base ds:datastore; | |||
| description | description | |||
| "This read-only datastore contains the factory default | "This read-only datastore contains the factory default | |||
| configuration for the device that will be used to replace | configuration for the device that will be used to replace | |||
| the contents of the read-write conventional configuration | the contents of the read-write conventional configuration | |||
| datastores during a 'factory-reset' RPC operation."; | datastores during a 'factory-reset' RPC operation."; | |||
| } | } | |||
| } | }]]></sourcecode> | |||
| <CODE ENDS></artwork> | ||||
| </figure> | ||||
| </section> | ||||
| <section title="IANA Considerations"> | ||||
| <t>This document registers one URI in the IETF XML Registry [RFC3688]. | ||||
| The following registration has been made:</t> | ||||
| <figure align="center"> | ||||
| <artwork> URI: urn:ietf:params:xml:ns:yang:ietf-factory-default | ||||
| Registrant Contact: The IESG. | ||||
| XML: N/A, the requested URI is an XML namespace.</artwork> | ||||
| </figure> | ||||
| <t>This document registers one YANG module in the YANG Module Names | ||||
| Registry [RFC6020]. The following registration has been made:</t> | ||||
| <figure align="center"> | ||||
| <artwork> name: ietf-factory-default | ||||
| namespace: urn:ietf:params:xml:ns:yang:ietf-factory-default | ||||
| prefix: fd | ||||
| RFC: xxxx</artwork> | ||||
| </figure> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section anchor="security" title="Security Considerations"> | <name>IANA Considerations</name> | |||
| <t>The YANG module defined in this document extends the base operations | <t> IANA has registered the following URI in the "ns" subregistry within | |||
| for NETCONF [RFC6241] and RESTCONF [RFC8040]. The lowest NETCONF layer | the "IETF XML Registry" <xref target="RFC3688" format="default"/>:</t> | |||
| is the secure transport layer, and the mandatory-to-implement secure | <dl newline="false" spacing="compact"> | |||
| transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer is | <dt>URI:</dt> | |||
| HTTPS, and the mandatory-to-implement secure transport is TLS | <dd>urn:ietf:params:xml:ns:yang:ietf-factory-default </dd> | |||
| [RFC8446].</t> | <dt>Registrant Contact:</dt> | |||
| <dd>The IESG.</dd> | ||||
| <dt>XML:</dt> | ||||
| <dd>N/A; the requested URI is an XML namespace.</dd> | ||||
| </dl> | ||||
| <t>IANA has registered the following YANG module in the "YANG Module | ||||
| Names" subregistry <xref target="RFC6020" format="default"/> within the | ||||
| "YANG Parameters" registry:</t> | ||||
| <dl newline="false" spacing="compact"> | ||||
| <dt>Name:</dt> | ||||
| <dd>ietf-factory-default</dd> | ||||
| <dt>Namespace:</dt> | ||||
| <dd>urn:ietf:params:xml:ns:yang:ietf-factory-default</dd> | ||||
| <dt>Prefix:</dt> | ||||
| <dd>fd</dd> | ||||
| <dt>Reference:</dt> | ||||
| <dd>8808</dd> | ||||
| </dl> | ||||
| </section> | ||||
| <section anchor="security" numbered="true" toc="default"> | ||||
| <name>Security Considerations</name> | ||||
| <t>The YANG module specified in this document defines a schema for data | ||||
| that is designed to be accessed via network management protocols such | ||||
| as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>. | ||||
| The lowest NETCONF layer is the secure transport layer, and the | ||||
| mandatory-to-implement secure transport is Secure Shell (SSH) | ||||
| <xref target="RFC6242"/>. The lowest RESTCONF layer is HTTPS, and the | ||||
| mandatory-to-implement secure transport is TLS <xref target="RFC8446"/>.</t> | ||||
| <t> | ||||
| The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/> | ||||
| provides the means to restrict access for particular NETCONF or RESTCONF users | ||||
| to a preconfigured subset of all available NETCONF or RESTCONF protocol | ||||
| operations and content. | ||||
| </t> | ||||
| <t>Access to the "factory-reset" RPC operation and factory default | <t>Access to the "factory-reset" RPC operation and factory default | |||
| values of all configuration data nodes within "factory-default" | values of all configuration data nodes within the "factory-default" | |||
| datastore is considered sensitive and therefore has been restricted | datastore is considered sensitive and therefore has been restricted by | |||
| using the "default-deny-all" access control defined in <xref | using the "default-deny-all" access control statement defined in <xref tar | |||
| target="RFC8341"/>.</t> | get="RFC8341" format="default"/>.</t> | |||
| <t>The "factory-reset" RPC can prevent any further management of the | <t>The "factory-reset" RPC can prevent any further management of the | |||
| device when the server is reset back to its factory default | device when the server is reset back to its factory default | |||
| condition,e.g., the session and client config are included in the | condition, e.g., the session and client configurations are included in the | |||
| factory default contents or treated as dynamic files on the nonvoliatile | factory default contents or treated as dynamic files in nonvolatile | |||
| storage and overwritten by the the "factory-reset" RPC.</t> | storage and overwritten by the "factory-reset" RPC.</t> | |||
| <t>The operational disruption caused by setting the configuration to facto | ||||
| <t>The operational disruption caused by setting the config to factory | ry | |||
| default contents or lacking appropriate security control on factory | default contents or the lack of appropriate security control on the factor | |||
| default configuration varies greatly depending on the implementation and | y | |||
| current config.</t> | default configuration varies greatly, depending on the implementation and | |||
| current configuration.</t> | ||||
| <t>The non-volatile storage is expected to be wiped clean and reset back | <t>The nonvolatile storage is expected to be wiped clean and reset back | |||
| to the factory default state, but there is no guarantee that the data is | to the factory default state, but there is no guarantee that the data is | |||
| wiped according to any particular data cleansing standard, and the owner | wiped clean according to any particular data-cleansing standard, and the o | |||
| of the device MUST NOT rely on any sensitive data (e.g., private keys) | wner | |||
| being forensically unrecoverable from the device's non-volatile storage | of the device <bcp14>MUST NOT</bcp14> rely on any sensitive data (e.g., pr | |||
| after a factory-reset RPC has been invoked.</t> | ivate keys) | |||
| </section> | being forensically unrecoverable from the device's nonvolatile storage | |||
| after a "factory-reset" RPC has been invoked.</t> | ||||
| <section title="Acknowledgements"> | ||||
| <t>Thanks to Juergen Schoenwaelder, Ladislav Lhotka, Alex Campbell, Joe | ||||
| Clarke, Robert Wilton, Kent Watsen, Joel Jaeggli, Lou Berger, Andy | ||||
| Bierman, Susan Hares, Benjamin Kaduk, Stephen Kent, Stewart Bryant, | ||||
| Éric Vyncke, Murray Kucherawy, Roman Danyliw, Tony Przygienda, | ||||
| John Heasley for reviewing this draft and providing important input to | ||||
| this document.</t> | ||||
| </section> | ||||
| <section title="Contributors"> | ||||
| <figure> | ||||
| <artwork> Rohit R Ranade | ||||
| Huawei | ||||
| Email: rohitrranade@huawei.com</artwork> | ||||
| </figure> | ||||
| </section> | </section> | |||
| <!----> | ||||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <references title="Normative References"> | ||||
| <?rfc include="reference.RFC.2119.xml"?> | ||||
| <?rfc include="reference.RFC.8174.xml"?> | <!-- draft-ietf-anima-bootstrapping-keyinfra (MISSREF) --> | |||
| <displayreference target="I-D.ietf-anima-bootstrapping-keyinfra" to="BRSKI"/> | ||||
| <?rfc include="reference.RFC.7950.xml"?> | ||||
| <?rfc include="reference.RFC.8342.xml"?> | ||||
| <?rfc include="reference.RFC.8341.xml"?> | ||||
| <?rfc include="reference.RFC.3688.xml"?> | ||||
| <?rfc include="reference.RFC.6020.xml"?> | ||||
| <?rfc include="reference.RFC.8525.xml"?> | ||||
| </references> | ||||
| <references title="Informative References"> | ||||
| <?rfc include="reference.RFC.6241.xml"?> | ||||
| <?rfc include="reference.RFC.6242.xml"?> | ||||
| <?rfc include="reference.RFC.8040.xml"?> | ||||
| <?rfc include="reference.RFC.8446.xml"?> | ||||
| <?rfc include='reference.I-D.ietf-anima-bootstrapping-keyinfra'?> | <references> | |||
| <name>References</name> | ||||
| <references> | ||||
| <name>Normative References</name> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.2119.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8174.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7950.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8342.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8341.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.3688.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6020.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8525.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6241.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6242.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8040.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8446.xml"/> | ||||
| </references> | ||||
| <references> | ||||
| <name>Informative References</name> | ||||
| <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-an | ||||
| ima-bootstrapping-keyinfra.xml"/> | ||||
| </references> | ||||
| </references> | </references> | |||
| <section numbered="false" toc="default"> | ||||
| <section title="Changes between revisions"> | <name>Acknowledgements</name> | |||
| <t>Editorial Note (To be removed by RFC Editor)</t> | <t> Thanks to <contact fullname="Juergen Schoenwaelder"/>, | |||
| <contact fullname="Ladislav Lhotka"/>, <contact fullname="Alex | ||||
| <t>v14 -15<list style="symbols"> | Campbell"/>, <contact fullname="Joe Clarke"/>, <contact | |||
| <t>Address comments raised in IESG review.</t> | fullname="Robert Wilton"/>, <contact fullname="Kent Watsen"/>, | |||
| </list></t> | <contact fullname="Joel Jaeggli"/>, <contact fullname="Lou | |||
| Berger"/>, <contact fullname="Andy Bierman"/>, <contact | ||||
| <t>v13 - 14<list style="symbols"> | fullname="Susan Hares"/>, <contact fullname="Benjamin Kaduk"/>, | |||
| <t>Address additional issues raised during AD review.</t> | <contact fullname="Stephen Kent"/>, <contact fullname="Stewart | |||
| </list></t> | Bryant"/>, <contact fullname="Éric Vyncke"/>, <contact | |||
| fullname="Murray Kucherawy"/>, <contact fullname="Roman | ||||
| <t>v12 - 13<list style="symbols"> | Danyliw"/>, <contact fullname="Tony Przygienda"/>, and <contact | |||
| <t>Address issues raised during AD review.</t> | fullname="John Heasley"/> for reviewing, and providing | |||
| </list></t> | important input to, this document.</t> | |||
| </section> | ||||
| <t>v11 - 12<list style="symbols"> | <section numbered="false" toc="default"> | |||
| <t>Fix IDnits and reference issues from Shepherd review.</t> | <name>Contributors</name> | |||
| </list></t> | <contact fullname="Rohit R Ranade" > | |||
| <organization>Huawei</organization> | ||||
| <t>v10 - 11<list style="symbols"> | <address> | |||
| <t>Incorporate additional Shepherd review's comments.</t> | <email>rohitrranade@huawei.com</email> | |||
| </list></t> | </address> | |||
| </contact> | ||||
| <t>v09 - 10<list style="symbols"> | ||||
| <t>Incorporate Shepherd review's comments.</t> | ||||
| </list></t> | ||||
| <t>v08 - 09<list style="symbols"> | ||||
| <t>Provide some guideline for operators and implementor who | ||||
| implement factory defaut method.</t> | ||||
| </list></t> | ||||
| <t>v07 - 08<list style="symbols"> | ||||
| <t>Provide clarification and recommendation on the relationship | ||||
| between factory-reset RPC and reboot.</t> | ||||
| <t>Nits fixed based on YANG Doctor Review.</t> | ||||
| </list></t> | ||||
| <t>v06 - 07<list style="symbols"> | ||||
| <t>Remove Factory default content specification;</t> | ||||
| <t>Remove reference to YANG instance data file format and zero touch | ||||
| provision [RFC8573];</t> | ||||
| <t>Remove copy-config operation extension on factory-default | ||||
| datastore</t> | ||||
| </list></t> | ||||
| <t>v05 - 06</t> | ||||
| <t><list style="symbols"> | ||||
| <t>Additional text to enhance security section.</t> | ||||
| <t>Add nacm:default-deny-all on "factory-reset" RPC.</t> | ||||
| <t>A few clarification on Factory default content specification.</t> | ||||
| </list></t> | ||||
| <t>v03 - 04<list style="symbols"> | ||||
| <t>Additional text to clarify factory-reset RPC usage.</t> | ||||
| </list></t> | ||||
| <t>v02 - 03<list style="symbols"> | ||||
| <t>Update security consideration section.</t> | ||||
| </list></t> | ||||
| <t>v01 - v02<list style="symbols"> | ||||
| <t>Address security issue in the security consideration section.</t> | ||||
| <t>Remove an extension to the NETCONF <copy-config> operation | ||||
| which allows it to operate on the factory-default datastore.</t> | ||||
| <t>Add an extension to the NETCONF <get-config> operation | ||||
| which allows it to operate on the factory-default datastore.</t> | ||||
| </list></t> | ||||
| <t>v00 - v01<list style="symbols"> | ||||
| <t>Change YANG server into server defined in NMDA architecture based | ||||
| on discussion.</t> | ||||
| <t>Allow reset the content of all read-write configuraton datastores | ||||
| to its factory default content except <candidate>.</t> | ||||
| <t>Add clarification text on factory-reset protocol operation | ||||
| behavior.</t> | ||||
| </list></t> | ||||
| <t>v03 - v00<list style="symbols"> | ||||
| <t>Change draft name from draft-wu to | ||||
| draft-ietf-netmod-factory-default-00 without content changes.</t> | ||||
| </list></t> | ||||
| <t>v02 - v03<list style="symbols"> | ||||
| <t>Change reset-datastore RPC into factory-reset RPC to allow reset | ||||
| the whole device with factory default content.</t> | ||||
| <t>Remove target datastore parameter from factory-reset RPC.</t> | ||||
| <t>Other editorial changes.</t> | ||||
| </list></t> | ||||
| <t>v01 - v02<list style="symbols"> | ||||
| <t>Add copy-config based on Rob's comment.</t> | ||||
| <t>Reference Update.</t> | ||||
| </list></t> | ||||
| <t>v03 - v00 - v01<list style="symbols"> | ||||
| <t>Changed name from draft-wu-netconf-restconf-factory-restore to | ||||
| draft-wu-netmod-factory-default</t> | ||||
| <t>Removed copy-config ; reset-datastore is enough</t> | ||||
| </list></t> | ||||
| <t>v02 - v03 <list style="symbols"> | ||||
| <t>Restructured</t> | ||||
| <t>Made new datastore optional</t> | ||||
| <t>Removed Netconf capability</t> | ||||
| <t>Listed Open issues</t> | ||||
| </list></t> | ||||
| <t>v01 - v02 <list style="symbols"> | ||||
| <t>-</t> | ||||
| </list></t> | ||||
| <t>v00 - v01 <list style="symbols"> | ||||
| <t>-</t> | ||||
| </list></t> | ||||
| </section> | </section> | |||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 67 change blocks. | ||||
| 435 lines changed or deleted | 291 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||