<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" docName="draft-ietf-netmod-system-config-20" number="10016" consensus="true" ipr="trust200902" submissionType="IETF" updates="8342" obsoletes="" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" prepTime="2026-09-16T22:26:48" indexInclude="true" scripts="Common,Latin">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-netmod-system-config-20" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc10016" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="System-Defined Configuration">System-Defined Configuration</title>
    <seriesInfo name="RFC" value="10016" stream="IETF"/>
    <author fullname="Qiufang Ma" initials="Q." role="editor" surname="Ma">
      <organization showOnFrontPage="true">Huawei</organization>
      <address>
        <postal>
          <street>101 Software Avenue, Yuhua District</street>
          <city>Nanjing</city>
          <region>Jiangsu</region>
          <code>210012</code>
          <country>China</country>
        </postal>
        <email>maqiufang1@huawei.com</email>
      </address>
    </author>
    <author fullname="Qin Wu" initials="Q." surname="Wu">
      <organization showOnFrontPage="true">Huawei</organization>
      <address>
        <postal>
          <street>101 Software Avenue, Yuhua District</street>
          <city>Nanjing</city>
          <region>Jiangsu</region>
          <code>210012</code>
          <country>China</country>
        </postal>
        <email>bill.wu@huawei.com</email>
      </address>
    </author>
    <author fullname="Chong Feng" initials="C." surname="Feng">
      <address>
        <email>fengchongllly@gmail.com</email>
      </address>
    </author>
    <date month="09" year="2026"/>
    <area>OPS</area>
    <workgroup>netmod</workgroup>
    <keyword>system config</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">The Network Management Datastore Architecture (NMDA) in RFC 8342
      defines several configuration datastores holding configuration. The
      contents of these configuration datastores are controlled by clients.
      This document introduces the concept of a system configuration datastore
      holding configuration controlled by the system on which a server is
      running. The system configuration can be referenced (e.g., leafref) by
      configuration explicitly created by clients.</t>
      <t indent="0" pn="section-abstract-2">This document updates RFC 8342.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc10016" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2026 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
              </li>
              <li pn="section-toc.1-1.1.2.2">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.2.1"><xref derivedContent="1.2" format="counter" sectionFormat="of" target="section-1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
              </li>
              <li pn="section-toc.1-1.1.2.3">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.3.1"><xref derivedContent="1.3" format="counter" sectionFormat="of" target="section-1.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-updates-to-rfc-8342">Updates to RFC 8342</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-kinds-of-system-configurati">Kinds of System Configuration</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t indent="0" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-always-present">Always Present</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.2">
                <t indent="0" pn="section-toc.1-1.2.2.2.1"><xref derivedContent="2.2" format="counter" sectionFormat="of" target="section-2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-conditionally-present">Conditionally Present</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-system-configuration-da">The System Configuration Datastore (&lt;system&gt;)</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-conceptual-model-of-datasto">Conceptual Model of Datastores</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-static-characteristics">Static Characteristics</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2">
              <li pn="section-toc.1-1.5.2.1">
                <t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-read-only-to-clients">Read-Only to Clients</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.2">
                <t indent="0" pn="section-toc.1-1.5.2.2.1"><xref derivedContent="5.2" format="counter" sectionFormat="of" target="section-5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-no-changes-to-operational">No Changes to &lt;operational&gt;</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dynamic-behaviors">Dynamic Behaviors</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-may-change-via-software-upg">May Change via Software Upgrades or Resource Changes</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-referencing-system-configur">Referencing System Configuration</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.3">
                <t indent="0" pn="section-toc.1-1.6.2.3.1"><xref derivedContent="6.3" format="counter" sectionFormat="of" target="section-6.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-overriding-system-configura">Overriding System Configuration</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.4">
                <t indent="0" pn="section-toc.1-1.6.2.4.1"><xref derivedContent="6.4" format="counter" sectionFormat="of" target="section-6.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-configuring-descendant-node">Configuring Descendant Nodes of System Configuration</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-ietf-system-datastore-m">The "ietf-system-datastore" Module</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2">
              <li pn="section-toc.1-1.7.2.1">
                <t indent="0" pn="section-toc.1-1.7.2.1.1"><xref derivedContent="7.1" format="counter" sectionFormat="of" target="section-7.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-data-model-overview">Data Model Overview</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.2">
                <t indent="0" pn="section-toc.1-1.7.2.2.1"><xref derivedContent="7.2" format="counter" sectionFormat="of" target="section-7.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-yang-module">YANG Module</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.3">
                <t indent="0" pn="section-toc.1-1.7.2.3.1"><xref derivedContent="7.3" format="counter" sectionFormat="of" target="section-7.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-example-usage">Example Usage</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.8.2">
              <li pn="section-toc.1-1.8.2.1">
                <t indent="0" pn="section-toc.1-1.8.2.1.1"><xref derivedContent="8.1" format="counter" sectionFormat="of" target="section-8.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-ietf-xml-registry">The IETF XML Registry</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.2">
                <t indent="0" pn="section-toc.1-1.8.2.2.1"><xref derivedContent="8.2" format="counter" sectionFormat="of" target="section-8.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-yang-module-names-regis">The YANG Module Names Registry</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-operational-considerations">Operational Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.10.2">
              <li pn="section-toc.1-1.10.2.1">
                <t indent="0" pn="section-toc.1-1.10.2.1.1"><xref derivedContent="10.1" format="counter" sectionFormat="of" target="section-10.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-considerations-for-the-ietf">Considerations for the "ietf-system-datastore" YANG Module</xref></t>
              </li>
              <li pn="section-toc.1-1.10.2.2">
                <t indent="0" pn="section-toc.1-1.10.2.2.1"><xref derivedContent="10.2" format="counter" sectionFormat="of" target="section-10.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-considerations-for-system-c">Considerations for System Configuration</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="11" format="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.11.2">
              <li pn="section-toc.1-1.11.2.1">
                <t indent="0" pn="section-toc.1-1.11.2.1.1"><xref derivedContent="11.1" format="counter" sectionFormat="of" target="section-11.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.11.2.2">
                <t indent="0" pn="section-toc.1-1.11.2.2.1"><xref derivedContent="11.2" format="counter" sectionFormat="of" target="section-11.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="Appendix A" format="default" sectionFormat="of" target="section-appendix.a"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-example-of-dynamic-behavior">Example of Dynamic Behaviors (Informative)</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.12.2">
              <li pn="section-toc.1-1.12.2.1">
                <t indent="0" pn="section-toc.1-1.12.2.1.1"><xref derivedContent="A.1" format="counter" sectionFormat="of" target="section-appendix.a.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-referencing-system-defined-">Referencing System-Defined Nodes</xref></t>
              </li>
              <li pn="section-toc.1-1.12.2.2">
                <t indent="0" pn="section-toc.1-1.12.2.2.1"><xref derivedContent="A.2" format="counter" sectionFormat="of" target="section-appendix.a.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-modifying-a-system-instanti">Modifying a System-Instantiated Leaf's Value</xref></t>
              </li>
              <li pn="section-toc.1-1.12.2.3">
                <t indent="0" pn="section-toc.1-1.12.2.3.1"><xref derivedContent="A.3" format="counter" sectionFormat="of" target="section-appendix.a.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-configuring-descendant-nodes">Configuring Descendant Nodes of a System-Defined Node</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.13">
            <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="Appendix B" format="default" sectionFormat="of" target="section-appendix.b"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-key-use-cases-informative">Key Use Cases (Informative)</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.13.2">
              <li pn="section-toc.1-1.13.2.1">
                <t indent="0" pn="section-toc.1-1.13.2.1.1"><xref derivedContent="B.1" format="counter" sectionFormat="of" target="section-appendix.b.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-device-powers-on">Device Powers On</xref></t>
              </li>
              <li pn="section-toc.1-1.13.2.2">
                <t indent="0" pn="section-toc.1-1.13.2.2.1"><xref derivedContent="B.2" format="counter" sectionFormat="of" target="section-appendix.b.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-client-commits-configuratio">Client Commits Configuration</xref></t>
              </li>
              <li pn="section-toc.1-1.13.2.3">
                <t indent="0" pn="section-toc.1-1.13.2.3.1"><xref derivedContent="B.3" format="counter" sectionFormat="of" target="section-appendix.b.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-operator-installs-card-into">Operator Installs Card into a Chassis</xref></t>
              </li>
              <li pn="section-toc.1-1.13.2.4">
                <t indent="0" pn="section-toc.1-1.13.2.4.1"><xref derivedContent="B.4" format="counter" sectionFormat="of" target="section-appendix.b.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-client-further-commits-conf">Client Further Commits Configuration</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.14">
            <t indent="0" pn="section-toc.1-1.14.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.15">
            <t indent="0" pn="section-toc.1-1.15.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.d"/><xref derivedContent="" format="title" sectionFormat="of" target="name-contributors">Contributors</xref></t>
          </li>
          <li pn="section-toc.1-1.16">
            <t indent="0" pn="section-toc.1-1.16.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.e"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="Introduction" numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">The Network Management Datastore Architecture (NMDA) <xref target="RFC8342" format="default" sectionFormat="of" derivedContent="RFC8342"/> defines system configuration as the configuration
      that is supplied by the device itself and appears in &lt;operational&gt;
      when it is in use (see Figure 2 in <xref target="RFC8342" format="default" sectionFormat="of" derivedContent="RFC8342"/>).</t>
      <t indent="0" pn="section-1-2">However, there is a desire from operators to enable a server to
      better expose the system configuration, regardless of whether it is in
      use. For example, some implementations define the system configuration
      that must be referenced to be active. Network Configuration Protocol (NETCONF) / RESTCONF clients can
      benefit from a standard mechanism to retrieve what system configuration
      is available on a server.</t>
      <t indent="0" pn="section-1-3">Some servers allow the descendant nodes of system-defined
      configuration to be configured or modified. For example, the system
      configuration may contain an almost empty physical interface, whose
      existence in the system configuration is tied to the presence of
      particular hardware, while the client needs to be able to add, modify,
      or remove a number of descendant nodes. Some descendant nodes may not be
      modifiable (e.g., the interface "type" set by the system).</t>
      <t indent="0" pn="section-1-4">This document updates the NMDA defined in <xref target="RFC8342" format="default" sectionFormat="of" derivedContent="RFC8342"/>
      with a read-only conventional configuration datastore called "system" to
      expose system-defined configuration. The solution enables configuration
      explicitly created by the clients to reference nodes defined in
      &lt;system&gt;, override system-provided values, and configure
      descendant nodes of system-defined configuration.</t>
      <t indent="0" pn="section-1-5">The solution defined in this document requires the use of NMDA for
      both clients and servers. Conformance to this document requires NMDA
      servers implement the "ietf-system-datastore" YANG module (<xref target="system-datastore" format="default" sectionFormat="of" derivedContent="Section 7"/>).</t>
      <section anchor="terminology" numbered="true" toc="include" removeInRFC="false" pn="section-1.1">
        <name slugifiedName="name-terminology">Terminology</name>
        <t indent="0" pn="section-1.1-1">This document assumes that the reader is familiar with the contents
        of <xref target="RFC6241" format="default" sectionFormat="of" derivedContent="RFC6241"/>, <xref target="RFC7950" format="default" sectionFormat="of" derivedContent="RFC7950"/>, <xref target="RFC8342" format="default" sectionFormat="of" derivedContent="RFC8342"/>, and <xref target="RFC8525" format="default" sectionFormat="of" derivedContent="RFC8525"/> and uses
        terminologies from those documents. The terms "device" and "server"
        are used interchangeably in this document.</t>
        <t indent="0" pn="section-1.1-2">The following terms are defined in this document:</t>
        <dl newline="true" spacing="normal" indent="3" pn="section-1.1-3">
          <dt pn="section-1.1-3.1">system configuration: </dt>
          <dd pn="section-1.1-3.2">
            <xref target="RFC8342" format="default" sectionFormat="of" derivedContent="RFC8342"/> defines it as "Configuration that
            is supplied by the device itself". The definition herein refines
            that definition to represent configuration
            present in the system configuration datastore (regardless of
            whether it is applied or referenced). It may also be referred to
            as "system-defined configuration" or "system-provided
            configuration" throughout this document. The system configuration
            discussed in this document cannot be deletable; configuration
            provided by the server that is deletable is outside the scope of
            this document.</dd>
          <dt pn="section-1.1-3.3">system configuration datastore: </dt>
          <dd pn="section-1.1-3.4">This is a configuration
            datastore holding configuration provided by the system itself.
            This datastore is referred to as "&lt;system&gt;".</dd>
        </dl>
        <t indent="0" pn="section-1.1-4">This document redefines the term "conventional configuration
        datastore" in <xref section="3" sectionFormat="of" target="RFC8342" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8342#section-3" derivedContent="RFC8342"/>
        to add "system" to the list of conventional configuration
        datastores:</t>
        <dl newline="true" spacing="normal" indent="3" pn="section-1.1-5">
          <dt pn="section-1.1-5.1">conventional configuration datastore: </dt>
          <dd pn="section-1.1-5.2">One of the
            following set of configuration datastores: &lt;running&gt;,
            &lt;startup&gt;, &lt;candidate&gt;, &lt;system&gt;, and
            &lt;intended&gt;. These datastores share a common datastore
            schema, and protocol operations allow copying data between these
            datastores. The term "conventional" is chosen as a generic
            umbrella term for these datastores. Note that while protocol operations
            allow copying data between conventional datastores, the read-only
            nature of datastores such as &lt;system&gt; and &lt;intended&gt;
            restricts clients from copying data into them.</dd>
          <dt pn="section-1.1-5.3">system node: </dt>
          <dd pn="section-1.1-5.4">This is an instance in the data tree that is
            provided by the system itself. System node may also be called
            "system-defined node" or "system-provided node" throughout this
            document.</dd>
          <dt pn="section-1.1-5.5">referenced node: </dt>
          <dd pn="section-1.1-5.6">
            <t indent="0" pn="section-1.1-5.6.1">A referenced node is one of the following:</t>
            <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1.1-5.6.2">
              <li pn="section-1.1-5.6.2.1">
                <t indent="0" pn="section-1.1-5.6.2.1.1">Targets of leafref values defined via the "path"
                statement.</t>
              </li>
              <li pn="section-1.1-5.6.2.2">
                <t indent="0" pn="section-1.1-5.6.2.2.1">Targets of "instance-identifier" type values.</t>
              </li>
              <li pn="section-1.1-5.6.2.3">
                <t indent="0" pn="section-1.1-5.6.2.3.1">Nodes present in an XPath expression of "when"
                constraints.</t>
              </li>
              <li pn="section-1.1-5.6.2.4">
                <t indent="0" pn="section-1.1-5.6.2.4.1">Nodes present in an XPath expression of "must"
                constraints.</t>
              </li>
              <li pn="section-1.1-5.6.2.5">
                <t indent="0" pn="section-1.1-5.6.2.5.1">Nodes defined to satisfy the "mandatory true"
                constraints.</t>
              </li>
              <li pn="section-1.1-5.6.2.6">
                <t indent="0" pn="section-1.1-5.6.2.6.1">Nodes defined to satisfy the "min-elements"
                constraints.</t>
              </li>
            </ul>
          </dd>
        </dl>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-1.2">
        <name slugifiedName="name-requirements-language">Requirements Language</name>
        <t indent="0" pn="section-1.2-1">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
    described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
        </t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-1.3">
        <name slugifiedName="name-updates-to-rfc-8342">Updates to RFC 8342</name>
        <t indent="0" pn="section-1.3-1">This document updates <xref target="RFC8342" format="default" sectionFormat="of" derivedContent="RFC8342"/> to define a
        configuration datastore called "system" that holds system
        configuration (<xref target="system-ds-def" format="default" sectionFormat="of" derivedContent="Section 3"/>). It also
        redefines the term "conventional configuration datastore" from <xref target="RFC8342" format="default" sectionFormat="of" derivedContent="RFC8342"/> to include "system" in
        the list.</t>
        <t indent="0" pn="section-1.3-2">To ensure the validity of &lt;intended&gt; when clients interact
        with system configuration (e.g., configuration provided by clients
        references system configuration) and allow the existence of
        system-defined templates and inactive system configuration,
        configuration in &lt;running&gt; is merged with &lt;system&gt; to
        create the contents of &lt;intended&gt; after the configuration
        transformations (e.g., template expansion or removal of inactive
        configuration defined in <xref target="RFC8342" format="default" sectionFormat="of" derivedContent="RFC8342"/>) have been
        performed, as described in <xref target="conceptual-model" format="default" sectionFormat="of" derivedContent="Section 4"/>.
        Specifications in <xref target="RFC8342" format="default" sectionFormat="of" derivedContent="RFC8342"/> related to the processing
        of system configuration are updated by the mechanism defined in this
        document.</t>
        <t indent="0" pn="section-1.3-3">Additionally, this document also updates the definition of the
        "intended" origin metadata annotation identity defined in <xref section="5.3.4" sectionFormat="of" target="RFC8342" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8342#section-5.3.4" derivedContent="RFC8342"/>. The "intended"
        identity of the origin value defined in <xref target="RFC8342" format="default" sectionFormat="of" derivedContent="RFC8342"/>
        represents the origin of configuration provided by &lt;intended&gt;.
        This document updates that definition as the origin source of
        configuration explicitly provided by clients and allows a subset of
        configuration in &lt;intended&gt; that flows from &lt;system&gt; yet
        is not configured or overridden explicitly in &lt;running&gt; to use
        "system" as its origin value. As per <xref section="5.3.4" sectionFormat="of" target="RFC8342" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8342#section-5.3.4" derivedContent="RFC8342"/>, all configuration with the origin
        value being reported as "intended" <bcp14>MUST</bcp14> originate from
        &lt;running&gt;, which includes any configuration in &lt;system&gt;
        that has been copied into &lt;running&gt;. Configuration that is in
        &lt;system&gt; and not also present in &lt;running&gt; <bcp14>MUST</bcp14> be
        reported as origin "system" in &lt;operational&gt;.</t>
      </section>
    </section>
    <section anchor="categories" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-kinds-of-system-configurati">Kinds of System Configuration</name>
      <t indent="0" pn="section-2-1">This document defines two types of system configuration:
      configuration that is always present and configuration that is
      conditionally present. These types of system configuration are described
      in Sections <xref target="immediate" format="counter" sectionFormat="of" derivedContent="2.1"/> and <xref target="conditional" format="counter" sectionFormat="of" derivedContent="2.2"/>,
      respectively.</t>
      <section anchor="immediate" numbered="true" toc="include" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-always-present">Always Present</name>
        <t indent="0" pn="section-2.1-1">The always-present system configuration is generated in
        &lt;system&gt; when the device is powered on, irrespective of whether
        physical resources are present or whether a special functionality is
        enabled. An example of an always-present system configuration is an
        always-existing loopback interface.</t>
      </section>
      <section anchor="conditional" numbered="true" toc="include" removeInRFC="false" pn="section-2.2">
        <name slugifiedName="name-conditionally-present">Conditionally Present</name>
        <t indent="0" pn="section-2.2-1">The conditionally present system configuration is
        generated in &lt;system&gt; based on specific conditions being met in
        a system. For example, if a physical resource is present (e.g., an
        interface card is inserted), the system automatically detects it and
        loads the associated configuration; when the physical resource is not
        present (an interface card is removed), the system configuration will
        automatically be removed from &lt;system&gt;. Another example is when
        a special functionality (e.g., a license or feature) is enabled,
        specific configuration may be created by the system.</t>
      </section>
    </section>
    <section anchor="system-ds-def" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-the-system-configuration-da">The System Configuration Datastore (&lt;system&gt;)</name>
      <t indent="0" pn="section-3-1">Following guidelines for defining datastores in <xref section="A" sectionFormat="of" target="RFC8342" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8342#appendix-A" derivedContent="RFC8342"/>, this document introduces a new
      datastore resource named "system" that represents the system
      configuration. NMDA servers compliant with this document <bcp14>MUST</bcp14> implement
      a system configuration datastore, and they <bcp14>SHOULD</bcp14> also implement
      &lt;intended&gt;.</t>
      <dl spacing="normal" newline="false" indent="3" pn="section-3-2">
        <dt pn="section-3-2.1">Name:</dt>
        <dd pn="section-3-2.2">"system"</dd>
        <dt pn="section-3-2.3">YANG modules:</dt>
        <dd pn="section-3-2.4">all</dd>
        <dt pn="section-3-2.5">YANG nodes:</dt>
        <dd pn="section-3-2.6">all "config true" data nodes up to the root
        node, generated by the system.</dd>
        <dt pn="section-3-2.7">Management operations:</dt>
        <dd pn="section-3-2.8">The datastore can be read using
        network management protocols such as NETCONF and RESTCONF, but its
        contents cannot be changed by management operations via NETCONF and
        RESTCONF protocols.</dd>
        <dt pn="section-3-2.9">Origin:</dt>
        <dd pn="section-3-2.10">This document does not define any new origin
        identity.  The "system" identity of origin metadata annotation <xref target="RFC7952" format="default" sectionFormat="of" derivedContent="RFC7952"/> is used to indicate the origin of
        a data item provided in &lt;system&gt;.</dd>
        <dt pn="section-3-2.11">Protocols:</dt>
        <dd pn="section-3-2.12">YANG-driven management protocols, such as
        NETCONF and RESTCONF.</dd>
        <dt pn="section-3-2.13">Defining YANG module:</dt>
        <dd pn="section-3-2.14">"ietf-system-datastore" (<xref target="system-datastore" format="default" sectionFormat="of" derivedContent="Section 7"/>).</dd>
      </dl>
      <t indent="0" pn="section-3-3">The system configuration datastore does not persist across
      reboots.</t>
    </section>
    <section anchor="conceptual-model" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-conceptual-model-of-datasto">Conceptual Model of Datastores</name>
      <t indent="0" pn="section-4-1">Clients may provide configuration nodes that reference nodes defined
      in &lt;system&gt;, override system-provided values, and configure
      descendant nodes of system-defined configuration in &lt;running&gt;, as
      detailed in <xref target="dynamic" format="default" sectionFormat="of" derivedContent="Section 6"/>.</t>
      <t indent="0" pn="section-4-2">To ensure the validity of &lt;intended&gt;, configuration in
      &lt;running&gt; is merged with &lt;system&gt; to become
      &lt;intended&gt;, in which process, configuration appearing in
      &lt;running&gt; takes precedence over the same node in &lt;system&gt;.
      Since it is unspecified how to merge configuration before
      transformations, if &lt;system&gt; or &lt;running&gt; includes
      configuration that requires further transformation (e.g., template
      expansion or removal of inactive configuration defined in <xref target="RFC8342" format="default" sectionFormat="of" derivedContent="RFC8342"/>) before it can be applied, configuration
      transformations <bcp14>MUST</bcp14> be performed independently on each datastore before
      &lt;running&gt; is merged with &lt;system&gt;.</t>
      <t indent="0" pn="section-4-3">Whenever configuration in &lt;system&gt; changes, the server <bcp14>MUST</bcp14>
      also immediately update and validate &lt;intended&gt;.</t>
      <t indent="0" pn="section-4-4">As a result, Figure 2 in <xref section="5" sectionFormat="of" target="RFC8342" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8342#section-5" derivedContent="RFC8342"/> is updated with the below conceptual model of
      datastores that incorporates the system configuration datastore. For
      completeness, this model also includes &lt;factory-default&gt;
      introduced in <xref target="RFC8808" format="default" sectionFormat="of" derivedContent="RFC8808"/>. </t>
      <figure align="left" suppress-title="false" pn="figure-1">
        <name slugifiedName="name-architectural-model-of-data">Architectural Model of Datastores</name>
        <artwork name="" type="" align="left" alt="" pn="section-4-5.1">
                             +-----------------+
                             |&lt;factory-default&gt;|
                       +-----|    (ct, ro)     |-----+
                       |     +-----------------+     |
  //"factory-reset" RPC|             |               |
                       v             |               v
               +-------------+       |         +-----------+
               | &lt;candidate&gt; |       |         | &lt;startup&gt; |
               |  (ct, rw)   |&lt;---+  |   +----&gt;| (ct, rw)  |
               +-------------+    |  |   |     +-----------+
                      |           |  v   |           |
+-----------+         |        +-----------+         |
| &lt;system&gt;  |         +-------&gt;| &lt;running&gt; |&lt;--------+
| (ct, ro)  |                  | (ct, rw)  |
+-----------+                  +-----------+
     |                              |
     |                              |
     |                              | // configuration transformations,
     +--------------+---------------+ // e.g., removal of nodes marked
                    |                 // as "inactive", expansion of
                    |                 // templates
                    v
              +------------+
              | &lt;intended&gt; |  // subject to validation
              | (ct, ro)   |
              +------------+
                     |       // changes applied, subject to
                     |       // local factors, e.g., missing
                     |       // resources, delays
 dynamic             |
 configuration       |   +-------- learned configuration
 datastores -----+   |   +-------- default configuration
                 |   |   |
                 v   v   v
             +---------------+
             | &lt;operational&gt; | &lt;-- system state
             | (ct + cf, ro) |
             +---------------+
             
ct = config true; cf = config false
rw = read-write; ro = read-only
boxes denote named datastores</artwork>
      </figure>
      <t indent="0" pn="section-4-6">Configuration in &lt;system&gt; cannot be deleted by clients (e.g., a
      list entry can never be removed from &lt;system&gt; through protocol
      operations), even though a node defined in &lt;system&gt; may be
      overridden in &lt;running&gt;. If the system initializes a value for a
      particular leaf that is overridden by the client with a different value
      in &lt;running&gt; (<xref target="modifying" format="default" sectionFormat="of" derivedContent="Section 6.3"/>), and if the node in
      &lt;running&gt; is removed at a later time, the system-initialized value
      defined in &lt;system&gt; appears in &lt;intended&gt; and may come into
      use eventually if applied successfully.</t>
      <t indent="0" pn="section-4-7">Configuration may disappear from &lt;system&gt; due to, e.g.,
      resources no longer available. In such cases, configuration for missing
      resources can still remain in &lt;running&gt; and &lt;intended&gt;, but
      it will not be applied and appear in &lt;operational&gt;. This is
      further clarified in <xref section="5.3.2" sectionFormat="of" target="RFC8342" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8342#section-5.3.2" derivedContent="RFC8342"/>.</t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-static-characteristics">Static Characteristics</name>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.1">
        <name slugifiedName="name-read-only-to-clients">Read-Only to Clients</name>
        <t indent="0" pn="section-5.1-1">The system datastore is read-only (i.e., edits towards
        &lt;system&gt; directly <bcp14>MUST</bcp14> be denied), though the client may be
        allowed to provide configuration that overrides the value of a
        system-initialized node (see <xref target="modifying" format="default" sectionFormat="of" derivedContent="Section 6.3"/>).</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.2">
        <name slugifiedName="name-no-changes-to-operational">No Changes to &lt;operational&gt;</name>
        <t indent="0" pn="section-5.2-1">This work does not change the definition of &lt;operational&gt;
        nor does it impact the contents of &lt;operational&gt;, as specified
        in <xref target="RFC8342" format="default" sectionFormat="of" derivedContent="RFC8342"/>. It clarifies origin reporting, i.e., the
        origin of nodes sourced from &lt;system&gt; is reported as "system"
        unless explicitly configured or overridden in &lt;running&gt;.
        &lt;system&gt; enables system-defined nodes to be defined like
        configuration, i.e., made visible to clients in order for being
        referenced or configurable prior to present in &lt;operational&gt;.
        "config false" nodes are out of scope; hence, existing "config false"
        nodes are not impacted by this work.</t>
      </section>
    </section>
    <section anchor="dynamic" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-dynamic-behaviors">Dynamic Behaviors</name>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-6.1">
        <name slugifiedName="name-may-change-via-software-upg">May Change via Software Upgrades or Resource Changes</name>
        <t indent="0" pn="section-6.1-1">The contents of &lt;system&gt; <bcp14>MAY</bcp14> change dynamically under various
        conditions, such as license change, software upgrade, and
        system-controlled resources change (see <xref target="conditional" format="default" sectionFormat="of" derivedContent="Section 2.2"/>).
        The updates of system configuration may be obtained through YANG
        notifications <xref target="RFC8639" format="default" sectionFormat="of" derivedContent="RFC8639"/> <xref target="RFC8641" format="default" sectionFormat="of" derivedContent="RFC8641"/> (e.g., on-change notification).</t>
        <t indent="0" pn="section-6.1-2">If system configuration changes (e.g., during a software upgrade),
        &lt;running&gt; <bcp14>SHOULD</bcp14> remain a valid configuration data tree. Any
        mechanisms to achieve this are outside the scope of this document.</t>
      </section>
      <section anchor="declare" numbered="true" toc="include" removeInRFC="false" pn="section-6.2">
        <name slugifiedName="name-referencing-system-configur">Referencing System Configuration</name>
        <t indent="0" pn="section-6.2-1">Clients may create configuration data in &lt;running&gt; that
        references nodes in &lt;system&gt;. Some implementations may define
        system nodes solely as a convenience for clients to reference. It is
        also possible for the clients to define their customized nodes for
        reference.</t>
        <t indent="0" pn="section-6.2-2"><xref target="declare-example" format="default" sectionFormat="of" derivedContent="Appendix A.1"/> provides an example of a client
        referencing system-defined nodes.</t>
      </section>
      <section anchor="modifying" numbered="true" toc="include" removeInRFC="false" pn="section-6.3">
        <name slugifiedName="name-overriding-system-configura">Overriding System Configuration</name>
        <t indent="0" pn="section-6.3-1">Although &lt;system&gt; is read-only, in some cases, a server may
        allow some parts of system configuration (e.g., a leaf's value) to be
        overridden (note the distinction between &lt;system&gt; and system
        configuration). Overriding of system configuration is achieved by the
        client writing configuration data in &lt;running&gt;, which overrides
        the values of matched configuration nodes at the corresponding level
        in &lt;system&gt;. Configurations defined in &lt;running&gt; take
        precedence over system configuration nodes in &lt;system&gt; if the
        server allows the nodes to be overridden (some implementations may
        have immutable system configuration that is identified by the server
        using an immutable metadata annotation; see <xref target="I-D.ietf-netmod-immutable-flag" format="default" sectionFormat="of" derivedContent="YANG-FLAG"/> for details), regardless of
        whether a system-instantiated value changes subsequently.</t>
        <t indent="0" pn="section-6.3-2"><xref target="modify-example" format="default" sectionFormat="of" derivedContent="Appendix A.2"/> provides an example of a client
        overriding a system-instantiated leaf's value.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-6.4">
        <name slugifiedName="name-configuring-descendant-node">Configuring Descendant Nodes of System Configuration</name>
        <t indent="0" pn="section-6.4-1">A server may also allow a client to add nodes to a list entry in
        &lt;system&gt; by writing those additional nodes in &lt;running&gt;.
        Those additional data nodes may not exist in &lt;system&gt; (i.e., an
        addition rather than an override).</t>
        <t indent="0" pn="section-6.4-2"><xref target="configure-example" format="default" sectionFormat="of" derivedContent="Appendix A.3"/> provides an example of a client
        configuring descendant nodes of a system-defined node.</t>
      </section>
    </section>
    <section anchor="system-datastore" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-the-ietf-system-datastore-m">The "ietf-system-datastore" Module</name>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-7.1">
        <name slugifiedName="name-data-model-overview">Data Model Overview</name>
        <t indent="0" pn="section-7.1-1">This YANG module defines a new YANG identity named "system", which
        uses the "ds:conventional" identity defined in <xref target="RFC8342" format="default" sectionFormat="of" derivedContent="RFC8342"/> as its base. A client can discover the system
        configuration datastore support on the server by reading the YANG
        library information from the operational state datastore.</t>
        <t indent="0" pn="section-7.1-2">The system datastore is defined as a conventional configuration
        datastore and shares a common datastore schema with other conventional
        datastores.</t>
        <t indent="0" pn="section-7.1-3">The following diagram illustrates the relationship amongst the
        "identity" statements defined in the "ietf-system-datastore" and
        "ietf-datastores" YANG modules: </t>
        <sourcecode type="yangtree" markers="false" pn="section-7.1-4">
Identities:
  +--- datastore
  |  +--- conventional
  |  |  +--- running
  |  |  +--- candidate
  |  |  +--- startup
  |  |  +--- system
  |  |  +--- intended
  |  +--- dynamic
  |  +--- operational</sourcecode>
        <t indent="0" pn="section-7.1-5">The diagram above uses syntax that is similar to but not
        defined in <xref target="RFC8340" format="default" sectionFormat="of" derivedContent="RFC8340"/>.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-7.2">
        <name slugifiedName="name-yang-module">YANG Module</name>
        <sourcecode name="ietf-system-datastore@2026-09-16.yang" type="yang" markers="true" pn="section-7.2-1">
module ietf-system-datastore {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-system-datastore";
  prefix sysds;

  import ietf-datastores {
    prefix ds;
    reference
      "RFC 8342: Network Management Datastore Architecture (NMDA)";
  }

  organization
    "IETF NETMOD (Network Modeling) Working Group";

  contact
    "WG Web:   &lt;https://datatracker.ietf.org/wg/netmod/&gt;
     WG List:  &lt;mailto:netmod@ietf.org&gt;

     Author: Qiufang Ma
             &lt;mailto:maqiufang1@huawei.com&gt;
     Author: Qin Wu
             &lt;mailto:bill.wu@huawei.com&gt;
     Author: Chong Feng
             &lt;mailto:fengchongllly@gmail.com&gt;";

  description
    "This module defines a new YANG identity that uses the
     ds:conventional identity defined in RFC 8342.

     Copyright (c) 2026 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 Revised
     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 10016
     (https://www.rfc-editor.org/info/rfc10016); see the RFC
     itself for full legal notices.";

  revision 2026-09-16 {
    description
      "Initial version.";
    reference
      "RFC 10016: System-Defined Configuration";
  }

  identity system {
    base ds:conventional;
    description
      "This read-only datastore contains the configuration
       provided by the system itself.";
  }
}</sourcecode>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-7.3">
        <name slugifiedName="name-example-usage">Example Usage</name>
        <t indent="0" pn="section-7.3-1">The following example shows how the configuration in &lt;system&gt;
        could be retrieved in a NETCONF &lt;get-data&gt; RPC operation. The
        example uses the "example-application" fictional data model defined in
        <xref target="declare-example" format="default" sectionFormat="of" derivedContent="Appendix A.1"/> and the Extensible Markup Language (XML) <xref target="W3C.XML1.0" format="default" sectionFormat="of" derivedContent="W3C.XML1.0"/> encoding.</t>
        <sourcecode type="xml" markers="false" pn="section-7.3-2">
&lt;rpc message-id="101"
     xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"&gt;
  &lt;get-data xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-nmda"
     xmlns:sysds="urn:ietf:params:xml:ns:yang:ietf-system-datastore"&gt;
    &lt;datastore&gt;sysds:system&lt;/datastore&gt;
    &lt;subtree-filter&gt;
      &lt;applications xmlns="urn:example:application"/&gt;
    &lt;/subtree-filter&gt;
  &lt;/get-data&gt;
&lt;/rpc&gt;</sourcecode>
        <t indent="0" pn="section-7.3-3">When using the RESTCONF protocol, the system configuration
        datastore can be accessed via the resource:
        {+restconf}/ds/ietf-system-datastore:system. The following example
        uses an HTTP GET method to request "applications" configuration:</t>
        <artwork name="" type="" align="left" alt="" pn="section-7.3-4">
GET /restconf/ds/ietf-system-datastore:system/\
   example-application:applications HTTP/1.1
Host: example.com
Accept: application/yang-data+xml</artwork>
      </section>
    </section>
    <section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-8.1">
        <name slugifiedName="name-the-ietf-xml-registry">The IETF XML Registry</name>
        <t indent="0" pn="section-8.1-1">IANA has registered the following XML namespace URI in
        the "ns" registry within the "IETF XML Registry" group <xref target="RFC3688" format="default" sectionFormat="of" derivedContent="RFC3688"/>:</t>
        <dl spacing="compact" newline="false" indent="3" pn="section-8.1-2">
          <dt pn="section-8.1-2.1">URI:</dt>
          <dd pn="section-8.1-2.2">urn:ietf:params:xml:ns:yang:ietf-system-datastore</dd>
          <dt pn="section-8.1-2.3">Registrant Contact:</dt>
          <dd pn="section-8.1-2.4">The IESG</dd>
          <dt pn="section-8.1-2.5">XML:</dt>
          <dd pn="section-8.1-2.6">N/A; the requested URIs are XML namespaces.</dd>
        </dl>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-8.2">
        <name slugifiedName="name-the-yang-module-names-regis">The YANG Module Names Registry</name>
        <t indent="0" pn="section-8.2-1">IANA has registered the following YANG module in the
        "YANG Module Names" registry within the "YANG Parameters" registry group. <xref target="RFC6020" format="default" sectionFormat="of" derivedContent="RFC6020"/>.</t>
        <dl spacing="compact" newline="false" indent="3" pn="section-8.2-2">
          <dt pn="section-8.2-2.1">Name:</dt>
          <dd pn="section-8.2-2.2">ietf-system-datastore</dd>
          <dt pn="section-8.2-2.3">Maintained by IANA?</dt>
          <dd pn="section-8.2-2.4">N</dd>
          <dt pn="section-8.2-2.5">Namespace:</dt>
          <dd pn="section-8.2-2.6">urn:ietf:params:xml:ns:yang:ietf-system-datastore</dd>
          <dt pn="section-8.2-2.7">Prefix:</dt>
          <dd pn="section-8.2-2.8">sysds</dd>
          <dt pn="section-8.2-2.9">Reference:</dt>
          <dd pn="section-8.2-2.10">RFC 10016</dd>
        </dl>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-9">
      <name slugifiedName="name-operational-considerations">Operational Considerations</name>
      <t indent="0" pn="section-9-1">System configuration exists regardless of whether the server
      implements &lt;system&gt; or not. The introduction of &lt;system&gt;
      provides a standardized way to expose system configuration within
      NMDA.</t>
      <t indent="0" pn="section-9-2">NMDA clients that are not aware of &lt;system&gt; will continue to
      operate correctly. They will interact only with datastores such as
      &lt;running&gt;, &lt;candidate&gt;, &lt;intended&gt;, and
      &lt;operational&gt; as before. The presence of &lt;system&gt; does not
      change the fundamental behavior for such legacy clients. Operators
      should be aware that to fully leverage the capabilities defined in this
      document, client applications need to be updated to recognize and
      interact with &lt;system&gt;.</t>
    </section>
    <section anchor="scecurity" numbered="true" toc="include" removeInRFC="false" pn="section-10">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-10.1">
        <name slugifiedName="name-considerations-for-the-ietf">Considerations for the "ietf-system-datastore" YANG Module</name>
        <t indent="0" pn="section-10.1-1">This section is modeled after the template described in <xref section="3.7.1" sectionFormat="of" target="RFC9907" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9907#section-3.7.1" derivedContent="RFC9907"/>.</t>
        <t indent="0" pn="section-10.1-2">The "ietf-system-datastore" YANG module defines a data model that
        is designed to be accessed via YANG-based management protocols, such
        as the Network Configuration Protocol (NETCONF) <xref target="RFC6241" format="default" sectionFormat="of" derivedContent="RFC6241"/> and RESTCONF <xref target="RFC8040" format="default" sectionFormat="of" derivedContent="RFC8040"/>. These YANG-based management protocols (1) have to use a secure transport layer
        and (2) have to use mutual authentication (e.g., Secure Shell (SSH) <xref target="RFC4252" format="default" sectionFormat="of" derivedContent="RFC4252"/>, TLS <xref target="RFC9846" format="default" sectionFormat="of" derivedContent="TLS1.3"/>, and QUIC <xref target="RFC9000" format="default" sectionFormat="of" derivedContent="RFC9000"/>).</t>
        <t indent="0" pn="section-10.1-3">The Network Configuration Access Control Model (NACM) <xref target="RFC8341" format="default" sectionFormat="of" derivedContent="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 indent="0" pn="section-10.1-4">The YANG module only defines an identity that uses the
        "ds:conventional" identity as its base. The module by itself does not
        expose any sensitive data nodes that are writable or that contain
        read-only state, and there are no particularly sensitive RPC or action
	operations. As such, there are no additional security
        issues related to the YANG module that need to be considered.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-10.2">
        <name slugifiedName="name-considerations-for-system-c">Considerations for System Configuration</name>
        <t indent="0" pn="section-10.2-1">The system datastore, while read-only to clients, may contain
        sensitive information such as hardware identifiers, security policies,
        and critical system resources. Read access to sensitive system nodes
        and subtrees within the datastore <bcp14>MUST</bcp14> be controlled to prevent
        unauthorized disclosure. Implementations are strongly advised to log
        all access attempts to sensitive system configuration for audit
        purposes.</t>
        <t indent="0" pn="section-10.2-2">Furthermore, while &lt;system&gt; cannot be modified directly,
        system configuration may be overridden as a merging result (<xref target="modifying" format="default" sectionFormat="of" derivedContent="Section 6.3"/>). An attacker may configure a leaf that shadows a
        sensitive node in &lt;system&gt;. Misconfiguration in &lt;running&gt;
        could lead to unintended system behavior, including security policy
        bypass and availability risks. Unauthorized modification to sensitive
        contents <bcp14>MUST</bcp14> be prevented to avoid those negative effects on the
        network.</t>
      </section>
    </section>
  </middle>
  <back>
    <displayreference target="RFC9846" to="TLS1.3"/>
    <displayreference target="I-D.ietf-netmod-immutable-flag" to="YANG-FLAG"/>
    <references pn="section-11">
      <name slugifiedName="name-references">References</name>
      <references pn="section-11.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t indent="0">In 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.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC7950" target="https://www.rfc-editor.org/info/rfc7950" quoteTitle="true" derivedAnchor="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t indent="0">YANG 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).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC7952" target="https://www.rfc-editor.org/info/rfc7952" quoteTitle="true" derivedAnchor="RFC7952">
          <front>
            <title>Defining and Using Metadata with YANG</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <date month="August" year="2016"/>
            <abstract>
              <t indent="0">This document defines a YANG extension that allows for defining metadata annotations in YANG modules. The document also specifies XML and JSON encoding of annotations and other rules for annotating instances of YANG data nodes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7952"/>
          <seriesInfo name="DOI" value="10.17487/RFC7952"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t indent="0">RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8341" target="https://www.rfc-editor.org/info/rfc8341" quoteTitle="true" derivedAnchor="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t indent="0">The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t indent="0">This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC8342" target="https://www.rfc-editor.org/info/rfc8342" quoteTitle="true" derivedAnchor="RFC8342">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="P. Shafer" initials="P." surname="Shafer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2018"/>
            <abstract>
              <t indent="0">Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8342"/>
          <seriesInfo name="DOI" value="10.17487/RFC8342"/>
        </reference>
      </references>
      <references pn="section-11.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="RFC3688" target="https://www.rfc-editor.org/info/rfc3688" quoteTitle="true" derivedAnchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t indent="0">This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC4252" target="https://www.rfc-editor.org/info/rfc4252" quoteTitle="true" derivedAnchor="RFC4252">
          <front>
            <title>The Secure Shell (SSH) Authentication Protocol</title>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t indent="0">The Secure Shell Protocol (SSH) is a protocol for secure remote login and other secure network services over an insecure network. This document describes the SSH authentication protocol framework and public key, password, and host-based client authentication methods. Additional authentication methods are described in separate documents. The SSH authentication protocol runs on top of the SSH transport layer protocol and provides a single authenticated tunnel for the SSH connection protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4252"/>
          <seriesInfo name="DOI" value="10.17487/RFC4252"/>
        </reference>
        <reference anchor="RFC6020" target="https://www.rfc-editor.org/info/rfc6020" quoteTitle="true" derivedAnchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t indent="0">YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
        <reference anchor="RFC6241" target="https://www.rfc-editor.org/info/rfc6241" quoteTitle="true" derivedAnchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t indent="0">The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC8040" target="https://www.rfc-editor.org/info/rfc8040" quoteTitle="true" derivedAnchor="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t indent="0">This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC8340" target="https://www.rfc-editor.org/info/rfc8340" quoteTitle="true" derivedAnchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t indent="0">This document captures the current syntax used in YANG module tree diagrams. The purpose of this 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.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="RFC8525" target="https://www.rfc-editor.org/info/rfc8525" quoteTitle="true" derivedAnchor="RFC8525">
          <front>
            <title>YANG Library</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2019"/>
            <abstract>
              <t indent="0">This document describes a YANG library that provides information about the YANG modules, datastores, and datastore schemas used by a network management server. Simple caching mechanisms are provided to allow clients to minimize retrieval of this information. This version of the YANG library supports the Network Management Datastore Architecture (NMDA) by listing all datastores supported by a network management server and the schema that is used by each of these datastores.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8525"/>
          <seriesInfo name="DOI" value="10.17487/RFC8525"/>
        </reference>
        <reference anchor="RFC8639" target="https://www.rfc-editor.org/info/rfc8639" quoteTitle="true" derivedAnchor="RFC8639">
          <front>
            <title>Subscription to YANG Notifications</title>
            <author fullname="E. Voit" initials="E." surname="Voit"/>
            <author fullname="A. Clemm" initials="A." surname="Clemm"/>
            <author fullname="A. Gonzalez Prieto" initials="A." surname="Gonzalez Prieto"/>
            <author fullname="E. Nilsen-Nygaard" initials="E." surname="Nilsen-Nygaard"/>
            <author fullname="A. Tripathy" initials="A." surname="Tripathy"/>
            <date month="September" year="2019"/>
            <abstract>
              <t indent="0">This document defines a YANG data model and associated mechanisms enabling subscriber-specific subscriptions to a publisher's event streams. Applying these elements allows a subscriber to request and receive a continuous, customized feed of publisher-generated information.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8639"/>
          <seriesInfo name="DOI" value="10.17487/RFC8639"/>
        </reference>
        <reference anchor="RFC8641" target="https://www.rfc-editor.org/info/rfc8641" quoteTitle="true" derivedAnchor="RFC8641">
          <front>
            <title>Subscription to YANG Notifications for Datastore Updates</title>
            <author fullname="A. Clemm" initials="A." surname="Clemm"/>
            <author fullname="E. Voit" initials="E." surname="Voit"/>
            <date month="September" year="2019"/>
            <abstract>
              <t indent="0">This document describes a mechanism that allows subscriber applications to request a continuous and customized stream of updates from a YANG datastore. Providing such visibility into updates enables new capabilities based on the remote mirroring and monitoring of configuration and operational state.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8641"/>
          <seriesInfo name="DOI" value="10.17487/RFC8641"/>
        </reference>
        <reference anchor="RFC8808" target="https://www.rfc-editor.org/info/rfc8808" quoteTitle="true" derivedAnchor="RFC8808">
          <front>
            <title>A YANG Data Model for Factory Default Settings</title>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <author fullname="B. Lengyel" initials="B." surname="Lengyel"/>
            <author fullname="Y. Niu" initials="Y." surname="Niu"/>
            <date month="August" year="2020"/>
            <abstract>
              <t indent="0">This document defines a YANG data model with the "factory-reset" RPC
to allow clients to reset a server back to its factory default
condition. It also defines an optional "factory-default" datastore to
allow clients to read the factory default configuration for the
device.

The YANG data model in this document conforms to the Network
Management Datastore Architecture (NMDA) defined in RFC 8342.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8808"/>
          <seriesInfo name="DOI" value="10.17487/RFC8808"/>
        </reference>
        <reference anchor="RFC9000" target="https://www.rfc-editor.org/info/rfc9000" quoteTitle="true" derivedAnchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t indent="0">This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC9907" target="https://www.rfc-editor.org/info/rfc9907" quoteTitle="true" derivedAnchor="RFC9907">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="March" year="2026"/>
            <abstract>
              <t indent="0">This document provides guidelines for authors and reviewers of specifications containing YANG data models, including IANA-maintained YANG modules. Recommendations and procedures are defined, which are intended to increase interoperability and usability of Network Configuration Protocol (NETCONF) and RESTCONF protocol implementations that utilize YANG modules.</t>
              <t indent="0">This document obsoletes RFC 8407; it also updates RFC 8126 by providing additional guidelines for writing the IANA considerations for RFCs that specify IANA-maintained YANG modules.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="216"/>
          <seriesInfo name="RFC" value="9907"/>
          <seriesInfo name="DOI" value="10.17487/RFC9907"/>
        </reference>
        <reference anchor="RFC9846" target="https://www.rfc-editor.org/info/rfc9846" quoteTitle="true" derivedAnchor="TLS1.3">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="July" year="2026"/>
            <abstract>
              <t indent="0">This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t indent="0">This document obsoletes RFC 8446, which specified TLS 1.3. This document obsoletes RFC 5246 (specifying TLS 1.2) and RFCs 5077, 6961, 7627, and 8422, all of which pertain to TLS 1.2 or earlier, and updates RFCs 5705 and 6066. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9846"/>
          <seriesInfo name="DOI" value="10.17487/RFC9846"/>
        </reference>
        <reference anchor="W3C.XML1.0" target="https://www.w3.org/TR/2008/REC-xml-20081126/" quoteTitle="true" derivedAnchor="W3C.XML1.0">
          <front>
            <title>Extensible Markup Language (XML) 1.0 (Fifth Edition)</title>
            <author initials="T." surname="Bray" fullname="Tim Bray" role="editor"/>
            <author initials="J." surname="Paoli" fullname="Jean Paoli" role="editor"/>
            <author initials="C.M." surname="Sperberg-McQueen" fullname="C. M. Sperberg McQueen" role="editor"/>
            <author initials="E." surname="Maler" fullname="Eve Maler" role="editor"/>
            <author initials="F." surname="Yergeau" fullname="Francois Yergeau" role="editor"/>
            <date day="26" month="November" year="2008"/>
          </front>
          <refcontent>W3C Recommendation</refcontent>
          <annotation>Latest version available at <eref brackets="angle" target="https://www.w3.org/TR/xml/"/>.</annotation>
        </reference>
        <reference anchor="I-D.ietf-netmod-immutable-flag" target="https://datatracker.ietf.org/doc/html/draft-ietf-netmod-immutable-flag-08" quoteTitle="true" derivedAnchor="YANG-FLAG">
          <front>
            <title>YANG Metadata Annotation for Immutable Flag</title>
            <author initials="Q." surname="Ma" fullname="Qiufang Ma" role="editor">
              <organization showOnFrontPage="true">Huawei</organization>
            </author>
            <author initials="Q." surname="Wu" fullname="Qin Wu">
              <organization showOnFrontPage="true">Huawei</organization>
            </author>
            <author initials="B." surname="Lengyel" fullname="Balázs Lengyel" role="editor">
              <organization showOnFrontPage="true">Ericsson</organization>
            </author>
            <author initials="H." surname="Li" fullname="Hongwei Li">
              <organization showOnFrontPage="true">HPE</organization>
            </author>
            <date month="February" day="26" year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-immutable-flag-08"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
      </references>
    </references>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-example-of-dynamic-behavior">Example of Dynamic Behaviors (Informative)</name>
      <t indent="0" pn="section-appendix.a-1">This section presents some sample data models and corresponding
      contents of various datastores with different dynamic behaviors
      described in <xref target="dynamic" format="default" sectionFormat="of" derivedContent="Section 6"/>. The XML snippets are used only
      for illustration purposes. Note that this section does not show the contents
      of &lt;intended&gt; as they are related to the configuration in
      &lt;operational&gt;, assuming the intended configuration is applied
      successfully. Also note that if the "origin" metadata annotation for
      configuration is unspecified in snippets, it is inherited from its
      parent node.</t>
      <section anchor="declare-example" numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a.1">
        <name slugifiedName="name-referencing-system-defined-">Referencing System-Defined Nodes</name>
        <t indent="0" pn="section-appendix.a.1-1">In this subsection, the following fictional module is used:</t>
        <sourcecode type="yang" markers="false" pn="section-appendix.a.1-2">
module example-application {
  yang-version 1.1;
  namespace "urn:example:application";
  prefix ex-app;

  import ietf-inet-types {
    prefix inet;
  }
  container applications {
    list application {
      key "name";
      leaf name {
        type string;
      }
      leaf app-id {
        type string;
      }
      leaf protocol {
        type enumeration {
          enum tcp;
          enum udp;
        }
        mandatory true;
      }
      leaf destination-port {
        default "0";
        type inet:port-number;
      }
      leaf description {
        type string;
      }
      container security-protection {
        presence "Indicates that security protection is enabled.";
        leaf risk-level {
          type enumeration {
            enum high;
            enum low;
          }
        }
        //additional leafs for security-specific configuration...
      }
    }
  }
}</sourcecode>
        <t indent="0" pn="section-appendix.a.1-3">A fictional Access Control List (ACL) YANG module is used as follows, which
        defines a leafref for the leaf-list "application" data node to refer
        to an existing application name.</t>
        <sourcecode type="yang" markers="false" pn="section-appendix.a.1-4">
module example-acl {
  yang-version 1.1;
  namespace "urn:example:acl";
  prefix ex-acl;

  import example-application {
    prefix ex-app;
  }

  import ietf-inet-types {
    prefix inet;
  }

  container acl {
    list acl-rule {
      key "name";
      leaf name {
        type string;
      }
      container matches {
        choice l3 {
          container ipv4 {
            leaf src-address {
              type inet:ipv4-prefix;
            }
            leaf dst-address {
              type inet:ipv4-prefix;
            }
          }
        }
        choice applications {
          leaf-list application {
            type leafref {
              path "/ex-app:applications/ex-app:application"
                 + "/ex-app:name";
            }
          }
        }
      }
      leaf packet-action {
        type enumeration {
          enum forward;
          enum drop;
          enum redirect;
        }
      }
    }
  }
}</sourcecode>
        <t indent="0" pn="section-appendix.a.1-5">The server may predefine some applications as a convenience for
        clients; these applications are immediately present system
        configuration. When the device is powered on, the system-instantiated
        application entries may be present in &lt;system&gt; as follows:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.a.1-6">
&lt;applications xmlns="urn:example:application"&gt;
  &lt;application&gt;
    &lt;name&gt;ftp&lt;/name&gt;
    &lt;app-id&gt;001&lt;/app-id&gt;
    &lt;protocol&gt;tcp&lt;/protocol&gt;
    &lt;destination-port&gt;21&lt;/destination-port&gt;
    &lt;security-protection&gt;
      &lt;risk-level&gt;low&lt;/risk-level&gt;
    &lt;/security-protection&gt;
  &lt;/application&gt;
  &lt;application&gt;
    &lt;name&gt;tftp&lt;/name&gt;
    &lt;app-id&gt;002&lt;/app-id&gt;
    &lt;protocol&gt;udp&lt;/protocol&gt;
    &lt;destination-port&gt;69&lt;/destination-port&gt;
    &lt;security-protection&gt;
      &lt;risk-level&gt;low&lt;/risk-level&gt;
    &lt;/security-protection&gt;
  &lt;/application&gt;
  &lt;application&gt;
    &lt;name&gt;smtp&lt;/name&gt;
    &lt;app-id&gt;003&lt;/app-id&gt;
    &lt;protocol&gt;tcp&lt;/protocol&gt;
    &lt;destination-port&gt;25&lt;/destination-port&gt;
    &lt;security-protection&gt;
      &lt;risk-level&gt;low&lt;/risk-level&gt;
    &lt;/security-protection&gt;
  &lt;/application&gt;
&lt;/applications&gt;</sourcecode>
        <t indent="0" pn="section-appendix.a.1-7">The client may also define customized applications. Those
        applications may be present in &lt;running&gt; as follows:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.a.1-8">
&lt;applications xmlns="urn:example:application"&gt;
  &lt;application&gt;
    &lt;name&gt;my-smtp&lt;/name&gt;
    &lt;app-id&gt;101&lt;/app-id&gt;
    &lt;protocol&gt;tcp&lt;/protocol&gt;
    &lt;destination-port&gt;2345&lt;/destination-port&gt;
    &lt;description&gt;customized smtp application&lt;/description&gt;
    &lt;security-protection&gt;
      &lt;risk-level&gt;high&lt;/risk-level&gt;
    &lt;/security-protection&gt;
  &lt;/application&gt;
  &lt;application&gt;
    &lt;name&gt;my-foo&lt;/name&gt;
    &lt;app-id&gt;102&lt;/app-id&gt;
    &lt;protocol&gt;udp&lt;/protocol&gt;
    &lt;destination-port&gt;1024&lt;/destination-port&gt;
    &lt;description&gt;customized application&lt;/description&gt;
  &lt;/application&gt;
&lt;/applications&gt;</sourcecode>
        <t indent="0" pn="section-appendix.a.1-9">If a client configures an ACL rule referencing some system-provided
        or customized applications, the configuration of the ACL rule may be shown
        as follows:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.a.1-10">
&lt;acl xmlns="urn:example:acl"&gt;
  &lt;acl-rule&gt;
    &lt;name&gt;allow-access-to-ftp-tftp&lt;/name&gt;
    &lt;matches&gt;
      &lt;ipv4&gt;
        &lt;src-address&gt;198.51.100.0/24&lt;/src-address&gt;
        &lt;dst-address&gt;192.0.2.0/24&lt;/dst-address&gt;
      &lt;/ipv4&gt;
      &lt;application&gt;ftp&lt;/application&gt;
      &lt;application&gt;tftp&lt;/application&gt;
      &lt;application&gt;my-smtp&lt;/application&gt;
    &lt;/matches&gt;
    &lt;packet-action&gt;forward&lt;/packet-action&gt;
  &lt;/acl-rule&gt;
&lt;/acl&gt;</sourcecode>
        <t indent="0" pn="section-appendix.a.1-11">As different entries of application configuration in &lt;system&gt;
        and &lt;running&gt; are merged to create &lt;intended&gt;, and there
        are no merging conflicts in the contents between &lt;system&gt; and
        &lt;running&gt;, &lt;operational&gt; might contain the configuration
        of applications with the values of origin reflecting the source of
        entries as follows:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.a.1-12">
&lt;applications xmlns="urn:example:application"
              xmlns:or="urn:ietf:params:xml:ns:yang:ietf-origin"
              or:origin="or:intended"&gt;
  &lt;application&gt;
    &lt;name&gt;my-smtp&lt;/name&gt;
    &lt;app-id&gt;101&lt;/app-id&gt;
    &lt;protocol&gt;tcp&lt;/protocol&gt;
    &lt;destination-port&gt;2345&lt;/destination-port&gt;
    &lt;description&gt;customized smtp application&lt;/description&gt;
    &lt;security-protection&gt;
      &lt;risk-level&gt;high&lt;/risk-level&gt;
    &lt;/security-protection&gt;
  &lt;/application&gt;
  &lt;application&gt;
    &lt;name&gt;my-foo&lt;/name&gt;
    &lt;app-id&gt;102&lt;/app-id&gt;
    &lt;protocol&gt;udp&lt;/protocol&gt;
    &lt;destination-port&gt;1024&lt;/destination-port&gt;
    &lt;description&gt;customized application&lt;/description&gt;
  &lt;/application&gt;
  &lt;application or:origin="or:system"&gt;
    &lt;name&gt;ftp&lt;/name&gt;
    &lt;app-id&gt;001&lt;/app-id&gt;
    &lt;protocol&gt;tcp&lt;/protocol&gt;
    &lt;destination-port&gt;21&lt;/destination-port&gt;
    &lt;security-protection&gt;
      &lt;risk-level&gt;low&lt;/risk-level&gt;
    &lt;/security-protection&gt;
  &lt;/application&gt;
  &lt;application or:origin="or:system"&gt;
    &lt;name&gt;tftp&lt;/name&gt;
    &lt;app-id&gt;002&lt;/app-id&gt;
    &lt;protocol&gt;udp&lt;/protocol&gt;
    &lt;destination-port&gt;69&lt;/destination-port&gt;
    &lt;security-protection&gt;
      &lt;risk-level&gt;low&lt;/risk-level&gt;
    &lt;/security-protection&gt;
  &lt;/application&gt;
  &lt;application or:origin="or:system"&gt;
    &lt;name&gt;smtp&lt;/name&gt;
    &lt;app-id&gt;003&lt;/app-id&gt;
    &lt;protocol&gt;tcp&lt;/protocol&gt;
    &lt;destination-port&gt;25&lt;/destination-port&gt;
    &lt;security-protection&gt;
      &lt;risk-level&gt;low&lt;/risk-level&gt;
    &lt;/security-protection&gt;
  &lt;/application&gt;
&lt;/applications&gt;</sourcecode>
      </section>
      <section anchor="modify-example" numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a.2">
        <name slugifiedName="name-modifying-a-system-instanti">Modifying a System-Instantiated Leaf's Value</name>
        <t indent="0" pn="section-appendix.a.2-1">This subsection uses the following fictional interface YANG
        module:</t>
        <sourcecode type="yang" markers="false" pn="section-appendix.a.2-2">
module example-interface {
  yang-version 1.1;
  namespace "urn:example:interface";
  prefix ex-if;

  import ietf-inet-types {
    prefix inet;
  }

  container interfaces {
    list interface {
      key "name";
      leaf name {
        type string;
      }
      leaf description {
        type string;
      }
      leaf mtu {
        type uint32;
      }
      leaf-list ip-address {
        type inet:ip-address;
      }
    }
  }
}</sourcecode>
        <t indent="0" pn="section-appendix.a.2-3">Suppose the system provides an always-present loopback interface
        (named "lo0") with an MTU value "65536", a default IPv4 address of
        "127.0.0.1", and a default IPv6 address of "::1". The configuration of
        the "lo0" interface may be present in &lt;system&gt; as follows:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.a.2-4">
&lt;interfaces xmlns="urn:example:interface"&gt;
  &lt;interface&gt;
    &lt;name&gt;lo0&lt;/name&gt;
    &lt;mtu&gt;65536&lt;/mtu&gt;
    &lt;ip-address&gt;127.0.0.1&lt;/ip-address&gt;
    &lt;ip-address&gt;::1&lt;/ip-address&gt;
  &lt;/interface&gt;
&lt;/interfaces&gt;</sourcecode>
        <t indent="0" pn="section-appendix.a.2-5">A client modifies the value of MTU to 9216 by adding the following
        configuration into &lt;running&gt;:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.a.2-6">
&lt;interfaces xmlns="urn:example:interface"&gt;
  &lt;interface&gt;
    &lt;name&gt;lo0&lt;/name&gt;
    &lt;mtu&gt;9216&lt;/mtu&gt;
  &lt;/interface&gt;
&lt;/interfaces&gt;</sourcecode>
        <t indent="0" pn="section-appendix.a.2-7">Since the MTU value provided by the client takes precedence over
        the system-provided value, and the "origin" value of configuration
        provided by the client is set to "intended", the configuration of
        interfaces that is present in &lt;operational&gt; may be as
        follows:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.a.2-8">
&lt;interfaces xmlns="urn:example:interface"
            xmlns:or="urn:ietf:params:xml:ns:yang:ietf-origin"
            or:origin="or:intended"&gt;
  &lt;interface&gt;
    &lt;name&gt;lo0&lt;/name&gt;
    &lt;mtu&gt;9216&lt;/mtu&gt;
    &lt;ip-address or:origin="or:system"&gt;127.0.0.1&lt;/ip-address&gt;
    &lt;ip-address or:origin="or:system"&gt;::1&lt;/ip-address&gt;
  &lt;/interface&gt;
&lt;/interfaces&gt;</sourcecode>
      </section>
      <section anchor="configure-example" numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a.3">
        <name slugifiedName="name-configuring-descendant-nodes">Configuring Descendant Nodes of a System-Defined Node</name>
        <t indent="0" pn="section-appendix.a.3-1">Based on the example in <xref target="modify-example" format="default" sectionFormat="of" derivedContent="Appendix A.2"/>, imagine
        the client further adds the description node of a "lo0" interface in
        &lt;running&gt; as follows:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.a.3-2">
&lt;interfaces xmlns="urn:example:interface"&gt;
  &lt;interface&gt;
    &lt;name&gt;lo0&lt;/name&gt;
    &lt;description&gt;loopback&lt;/description&gt;
  &lt;/interface&gt;
&lt;/interfaces&gt;</sourcecode>
        <t indent="0" pn="section-appendix.a.3-3">The configuration of interface "lo0" is present in
        &lt;operational&gt; as follows:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.a.3-4">
&lt;interfaces xmlns="urn:example:interface"
            xmlns:or="urn:ietf:params:xml:ns:yang:ietf-origin"
            or:origin="or:intended"&gt;
  &lt;interface&gt;
    &lt;name&gt;lo0&lt;/name&gt;
    &lt;description&gt;loopback&lt;/description&gt;
    &lt;mtu&gt;9216&lt;/mtu&gt;
    &lt;ip-address or:origin="or:system"&gt;127.0.0.1&lt;/ip-address&gt;
    &lt;ip-address or:origin="or:system"&gt;::1&lt;/ip-address&gt;
  &lt;/interface&gt;
&lt;/interfaces&gt;</sourcecode>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-appendix.b">
      <name slugifiedName="name-key-use-cases-informative">Key Use Cases (Informative)</name>
      <t indent="0" pn="section-appendix.b-1">This section updates the "Interface Example" supplied in <xref section="C.3" sectionFormat="of" target="RFC8342" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8342#appendix-C.3" derivedContent="RFC8342"/>.</t>
      <t indent="0" pn="section-appendix.b-2">This section provides several use cases related to how &lt;system&gt;
      interacts with other datastores (e.g., &lt;candidate&gt;,
      &lt;running&gt;, &lt;intended&gt;, and &lt;operational&gt;). The
      following fictional interface data model is used:</t>
      <sourcecode type="yang" markers="false" pn="section-appendix.b-3">
module example-interface-management {
  yang-version 1.1;
  namespace "urn:example:interfacemgmt";
  prefix ex-ifm;

  import ietf-inet-types {
    prefix inet;
  }

  container interfaces {
    list interface {
      key "name";
      leaf name {
        type string;
      }
      leaf type {
        type enumeration {
          enum ethernet;
          enum atm;
          enum loopback;
        }
      }
      leaf enabled {
        type boolean;
        default "true";
      }
      leaf-list ip-address {
        type inet:ip-address;
      }
      leaf speed {
        when "../type = 'ethernet'";
        type enumeration {
          enum 10Mb;
          enum 100Mb;
        }
      }
      leaf description {
        type string;
      }
    }
  }
}</sourcecode>
      <t indent="0" pn="section-appendix.b-4">For each use case, corresponding sample configuration in
      &lt;running&gt;, &lt;system&gt;, &lt;intended&gt;, and
      &lt;operational&gt; is shown. The XML snippets are used only for
      illustration purposes.</t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-appendix.b.1">
        <name slugifiedName="name-device-powers-on">Device Powers On</name>
        <t indent="0" pn="section-appendix.b.1-1">When the device is powered on, assume the system provides an
        always-present loopback interface named "lo0" that is not
        explicitly configured in &lt;running&gt;. As a result, no interface configuration
        appears in &lt;running&gt;, and the content of &lt;system&gt; is as follows:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.b.1-2">
&lt;interfaces xmlns="urn:example:interfacemgmt"&gt;
  &lt;interface&gt;
    &lt;name&gt;lo0&lt;/name&gt;
    &lt;type&gt;loopback&lt;/type&gt;
    &lt;ip-address&gt;127.0.0.1&lt;/ip-address&gt;
    &lt;ip-address&gt;::1&lt;/ip-address&gt;
    &lt;description&gt;system-defined interface&lt;/description&gt;
  &lt;/interface&gt;
&lt;/interfaces&gt;</sourcecode>
        <t indent="0" pn="section-appendix.b.1-3">In this case, the configuration of loopback interface is only
        present in &lt;system&gt;, and the configuration of interface in
        &lt;intended&gt; would be identical to the one in &lt;system&gt; shown
        above.</t>
        <t indent="0" pn="section-appendix.b.1-4">In addition, &lt;operational&gt; will show the system-provided loopback
        interface. Note that &lt;operational&gt; also includes the default
        value specified in the YANG module:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.b.1-5">
&lt;interfaces xmlns="urn:example:interfacemgmt"
            xmlns:or="urn:ietf:params:xml:ns:yang:ietf-origin"
            or:origin="or:system"&gt;
  &lt;interface&gt;
    &lt;name&gt;lo0&lt;/name&gt;
    &lt;type&gt;loopback&lt;/type&gt;
    &lt;enabled or:origin="or:default"&gt;true&lt;/enabled&gt;
    &lt;ip-address&gt;127.0.0.1&lt;/ip-address&gt;
    &lt;ip-address&gt;::1&lt;/ip-address&gt;
    &lt;description&gt;system-defined interface&lt;/description&gt;
  &lt;/interface&gt;
&lt;/interfaces&gt;</sourcecode>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-appendix.b.2">
        <name slugifiedName="name-client-commits-configuratio">Client Commits Configuration</name>
        <t indent="0" pn="section-appendix.b.2-1">If a client creates an interface "et-0/0/0" but the interface does
        not physically exist at this point, the content of &lt;running&gt; appears
        as follows:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.b.2-2">
&lt;interfaces xmlns="urn:example:interfacemgmt"&gt;
  &lt;interface&gt;
    &lt;name&gt;et-0/0/0&lt;/name&gt;
    &lt;ip-address&gt;192.168.10.10&lt;/ip-address&gt;
    &lt;description&gt;pre-provisioned interface&lt;/description&gt;
  &lt;/interface&gt;
&lt;/interfaces&gt;</sourcecode>
        <t indent="0" pn="section-appendix.b.2-3">And the content of &lt;system&gt; remains unchanged, only
        containing the "lo0" loopback interface since the interface
        "et-0/0/0" is not physically present:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.b.2-4">
&lt;interfaces xmlns="urn:example:interfacemgmt"&gt;
  &lt;interface&gt;
    &lt;name&gt;lo0&lt;/name&gt;
    &lt;type&gt;loopback&lt;/type&gt;
    &lt;ip-address&gt;127.0.0.1&lt;/ip-address&gt;
    &lt;ip-address&gt;::1&lt;/ip-address&gt;
    &lt;description&gt;system-defined interface&lt;/description&gt;
  &lt;/interface&gt;
&lt;/interfaces&gt;</sourcecode>
        <t indent="0" pn="section-appendix.b.2-5">The content of &lt;intended&gt; represents the merged data of
        &lt;system&gt; and &lt;running&gt;:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.b.2-6">
&lt;interfaces xmlns="urn:example:interfacemgmt"&gt;
  &lt;interface&gt;
    &lt;name&gt;lo0&lt;/name&gt;
    &lt;type&gt;loopback&lt;/type&gt;
    &lt;ip-address&gt;127.0.0.1&lt;/ip-address&gt;
    &lt;ip-address&gt;::1&lt;/ip-address&gt;
    &lt;description&gt;system-defined interface&lt;/description&gt;
  &lt;/interface&gt;
  &lt;interface&gt;
    &lt;name&gt;et-0/0/0&lt;/name&gt;
    &lt;ip-address&gt;192.168.10.10&lt;/ip-address&gt;
    &lt;description&gt;pre-provisioned interface&lt;/description&gt;
  &lt;/interface&gt;
&lt;/interfaces&gt;</sourcecode>
        <t indent="0" pn="section-appendix.b.2-7">Since the interface named "et-0/0/0" does not exist, the associated
        configuration is not present in &lt;operational&gt;, which appears as
        follows:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.b.2-8">
&lt;interfaces xmlns="urn:example:interfacemgmt"
            xmlns:or="urn:ietf:params:xml:ns:yang:ietf-origin"
            or:origin="or:intended"&gt;
  &lt;interface or:origin="or:system"&gt;
    &lt;name&gt;lo0&lt;/name&gt;
    &lt;type&gt;loopback&lt;/type&gt;
    &lt;enabled or:origin="or:default"&gt;true&lt;/enabled&gt;
    &lt;ip-address&gt;127.0.0.1&lt;/ip-address&gt;
    &lt;ip-address&gt;::1&lt;/ip-address&gt;
    &lt;description&gt;system-defined interface&lt;/description&gt;
  &lt;/interface&gt;
&lt;/interfaces&gt;</sourcecode>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-appendix.b.3">
        <name slugifiedName="name-operator-installs-card-into">Operator Installs Card into a Chassis</name>
        <t indent="0" pn="section-appendix.b.3-1">When the interface is installed by the operator, the system will
        detect it and generate the associated conditionally present interface
        configuration in &lt;system&gt;. The content of &lt;running&gt; remains
        unchanged:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.b.3-2">
&lt;interfaces xmlns="urn:example:interfacemgmt"&gt;
  &lt;interface&gt;
    &lt;name&gt;et-0/0/0&lt;/name&gt;
    &lt;ip-address&gt;192.168.10.10&lt;/ip-address&gt;
    &lt;description&gt;pre-provisioned interface&lt;/description&gt;
  &lt;/interface&gt;
&lt;/interfaces&gt;</sourcecode>
        <t indent="0" pn="section-appendix.b.3-3">And &lt;system&gt; might appear as follows:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.b.3-4">
&lt;interfaces xmlns="urn:example:interfacemgmt"&gt;
  &lt;interface&gt;
    &lt;name&gt;lo0&lt;/name&gt;
    &lt;type&gt;loopback&lt;/type&gt;
    &lt;ip-address&gt;127.0.0.1&lt;/ip-address&gt;
    &lt;ip-address&gt;::1&lt;/ip-address&gt;
    &lt;description&gt;system-defined interface&lt;/description&gt;
  &lt;/interface&gt;
  &lt;interface&gt;
    &lt;name&gt;et-0/0/0&lt;/name&gt;
    &lt;type&gt;ethernet&lt;/type&gt;
    &lt;description&gt;system-defined interface&lt;/description&gt;
  &lt;/interface&gt;
&lt;/interfaces&gt;</sourcecode>
        <t indent="0" pn="section-appendix.b.3-5">Then, &lt;intended&gt; contains the merged configuration of
        &lt;system&gt; and &lt;running&gt;:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.b.3-6">
&lt;interfaces xmlns="urn:example:interfacemgmt"&gt;
  &lt;interface&gt;
    &lt;name&gt;lo0&lt;/name&gt;
    &lt;type&gt;loopback&lt;/type&gt;
    &lt;ip-address&gt;127.0.0.1&lt;/ip-address&gt;
    &lt;ip-address&gt;::1&lt;/ip-address&gt;
    &lt;description&gt;system-defined interface&lt;/description&gt;
  &lt;/interface&gt;
  &lt;interface&gt;
    &lt;name&gt;et-0/0/0&lt;/name&gt;
    &lt;type&gt;ethernet&lt;/type&gt;
    &lt;ip-address&gt;192.168.10.10&lt;/ip-address&gt;
    &lt;description&gt;pre-provisioned interface&lt;/description&gt;
  &lt;/interface&gt;
&lt;/interfaces&gt;</sourcecode>
        <t indent="0" pn="section-appendix.b.3-7">And the content of &lt;operational&gt; appears as follows:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.b.3-8">
&lt;interfaces xmlns="urn:example:interfacemgmt"
            xmlns:or="urn:ietf:params:xml:ns:yang:ietf-origin"
            or:origin="or:intended"&gt;
  &lt;interface or:origin="or:system"&gt;
    &lt;name&gt;lo0&lt;/name&gt;
    &lt;type&gt;loopback&lt;/type&gt;
    &lt;enabled or:origin="or:default"&gt;true&lt;/enabled&gt;
    &lt;ip-address&gt;127.0.0.1&lt;/ip-address&gt;
    &lt;ip-address&gt;::1&lt;/ip-address&gt;
    &lt;description&gt;system-defined interface&lt;/description&gt;
  &lt;/interface&gt;
  &lt;interface&gt;
    &lt;name&gt;et-0/0/0&lt;/name&gt;
    &lt;type or:origin="or:system"&gt;ethernet&lt;/type&gt;
    &lt;enabled or:origin="or:default"&gt;true&lt;/enabled&gt;
    &lt;ip-address&gt;192.168.10.10&lt;/ip-address&gt;
    &lt;description&gt;pre-provisioned interface&lt;/description&gt;
  &lt;/interface&gt;
&lt;/interfaces&gt;</sourcecode>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-appendix.b.4">
        <name slugifiedName="name-client-further-commits-conf">Client Further Commits Configuration</name>
        <t indent="0" pn="section-appendix.b.4-1">If the client further sets the speed of interface "et-0/0/0" in
        &lt;running&gt;:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.b.4-2">
&lt;interfaces xmlns="urn:example:interfacemgmt"&gt;
  &lt;interface&gt;
    &lt;name&gt;et-0/0/0&lt;/name&gt;
    &lt;speed&gt;10Mb&lt;/speed&gt;
  &lt;/interface&gt;
&lt;/interfaces&gt;</sourcecode>
        <t indent="0" pn="section-appendix.b.4-3">The content of &lt;system&gt; remains unchanged:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.b.4-4">
&lt;interfaces xmlns="urn:example:interfacemgmt"&gt;
  &lt;interface&gt;
    &lt;name&gt;lo0&lt;/name&gt;
    &lt;type&gt;loopback&lt;/type&gt;
    &lt;ip-address&gt;127.0.0.1&lt;/ip-address&gt;
    &lt;ip-address&gt;::1&lt;/ip-address&gt;
    &lt;description&gt;system-defined interface&lt;/description&gt;
  &lt;/interface&gt;
  &lt;interface&gt;
    &lt;name&gt;et-0/0/0&lt;/name&gt;
    &lt;type&gt;ethernet&lt;/type&gt;
    &lt;description&gt;system-defined interface&lt;/description&gt;
  &lt;/interface&gt;
&lt;/interfaces&gt;</sourcecode>
        <t indent="0" pn="section-appendix.b.4-5">And the content of &lt;intended&gt;, which represents the merged
        result of &lt;running&gt; and &lt;system&gt;, is as follows:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.b.4-6">
&lt;interfaces xmlns="urn:example:interfacemgmt"&gt;
  &lt;interface&gt;
    &lt;name&gt;lo0&lt;/name&gt;
    &lt;type&gt;loopback&lt;/type&gt;
    &lt;ip-address&gt;127.0.0.1&lt;/ip-address&gt;
    &lt;ip-address&gt;::1&lt;/ip-address&gt;
    &lt;description&gt;system-defined interface&lt;/description&gt;
  &lt;/interface&gt;
  &lt;interface&gt;
    &lt;name&gt;et-0/0/0&lt;/name&gt;
    &lt;type&gt;ethernet&lt;/type&gt;
    &lt;ip-address&gt;192.168.10.10&lt;/ip-address&gt;
    &lt;speed&gt;10Mb&lt;/speed&gt;
    &lt;description&gt;pre-provisioned interface&lt;/description&gt;
  &lt;/interface&gt;
&lt;/interfaces&gt;</sourcecode>
        <t indent="0" pn="section-appendix.b.4-7">And &lt;operational&gt; would appear as follows:</t>
        <sourcecode type="xml" markers="false" pn="section-appendix.b.4-8">
&lt;interfaces xmlns="urn:example:interfacemgmt"
           xmlns:or="urn:ietf:params:xml:ns:yang:ietf-origin"
           or:origin="or:intended"&gt;
 &lt;interface or:origin="or:system"&gt;
   &lt;name&gt;lo0&lt;/name&gt;
   &lt;type&gt;loopback&lt;/type&gt;
   &lt;enabled or:origin="or:default"&gt;true&lt;/enabled&gt;
   &lt;ip-address&gt;127.0.0.1&lt;/ip-address&gt;
   &lt;ip-address&gt;::1&lt;/ip-address&gt;
   &lt;description&gt;system-defined interface&lt;/description&gt;
 &lt;/interface&gt;
 &lt;interface&gt;
   &lt;name&gt;et-0/0/0&lt;/name&gt;
   &lt;type or:origin="or:system"&gt;ethernet&lt;/type&gt;
   &lt;enabled or:origin="or:default"&gt;true&lt;/enabled&gt;
   &lt;ip-address&gt;192.168.10.10&lt;/ip-address&gt;
   &lt;speed&gt;10Mb&lt;/speed&gt;
   &lt;description&gt;pre-provisioned interface&lt;/description&gt;
 &lt;/interface&gt;
&lt;/interfaces&gt;</sourcecode>
      </section>
    </section>
    <section anchor="Acknowledgements" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.c">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.c-1">The authors would like to thank the following for discussions and
      providing input to this document: <contact fullname="Balázs Lengyel"/>,
      <contact fullname="Robert Wilton"/>, <contact fullname="Jürgen       Schönwälder"/>, <contact fullname="Andy Bierman"/>, <contact fullname="Martin Björklund"/>, <contact fullname="Mohamed Boucadair"/>,
      <contact fullname="Michal Vaško"/>, <contact fullname="Alexander       Clemm"/>, and <contact fullname="Timothy Carey"/>.</t>
    </section>
    <section numbered="false" toc="include" removeInRFC="false" pn="section-appendix.d">
      <name slugifiedName="name-contributors">Contributors</name>
      <contact fullname="Kent Watsen">
        <organization showOnFrontPage="true">Watsen Networks</organization>
        <address>
          <email>kent+ietf@watsen.net</email>
        </address>
      </contact>
      <contact fullname="Jan Lindblad">
        <organization showOnFrontPage="true">Cisco Systems</organization>
        <address>
          <email>jlindbla@cisco.com</email>
        </address>
      </contact>
      <contact fullname="Jason Sterne">
        <organization showOnFrontPage="true">Nokia</organization>
        <address>
          <email>jason.sterne@nokia.com</email>
        </address>
      </contact>
      <contact fullname="Chongfeng Xie">
        <organization showOnFrontPage="true">China Telecom</organization>
        <address>
          <postal>
            <city>Beijing</city>
            <country>China</country>
          </postal>
          <email>xiechf@chinatelecom.cn</email>
        </address>
      </contact>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.e">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Qiufang Ma" initials="Q." role="editor" surname="Ma">
        <organization showOnFrontPage="true">Huawei</organization>
        <address>
          <postal>
            <street>101 Software Avenue, Yuhua District</street>
            <city>Nanjing</city>
            <region>Jiangsu</region>
            <code>210012</code>
            <country>China</country>
          </postal>
          <email>maqiufang1@huawei.com</email>
        </address>
      </author>
      <author fullname="Qin Wu" initials="Q." surname="Wu">
        <organization showOnFrontPage="true">Huawei</organization>
        <address>
          <postal>
            <street>101 Software Avenue, Yuhua District</street>
            <city>Nanjing</city>
            <region>Jiangsu</region>
            <code>210012</code>
            <country>China</country>
          </postal>
          <email>bill.wu@huawei.com</email>
        </address>
      </author>
      <author fullname="Chong Feng" initials="C." surname="Feng">
        <address>
          <email>fengchongllly@gmail.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
